2024 동계 모각코
모각코 6주차
jinjuhan
2025. 2. 16. 22:56
SQL
IN 연산자
연산자 IN를 사용하면 WHERE절에 여러 개의 값을 지정
SELECT * FROM Customers
WHERE Country IN ('Germany', 'France', 'UK');
'독일', '프랑스' 또는 '영국'의 모든 고객을 반환
SELECT * FROM Customers
WHERE Country NOT IN ('Germany', 'France', 'UK');
'독일', '프랑스', '영국'이 아닌 모든 고객을 반환
(선택)
SELECT * FROM Customers
WHERE CustomerID IN (SELECT CustomerID FROM Orders);
Orders 테이블 에 주문이 있는 모든 고객을 반환
SELECT * FROM Customers
WHERE CustomerID NOT IN (SELECT CustomerID FROM Orders);
Orders 테이블 에 주문을 하지 않은 모든 고객을 반환
BETWEEN 연산자
주어진 범위 내에서 값을 선택
SELECT * FROM Products
WHERE Price BETWEEN 10 AND 20;
가격이 10~20 사이인 모든 제품을 선택
SELECT * FROM Products
WHERE Price NOT BETWEEN 10 AND 20;
SELECT * FROM Products
WHERE Price BETWEEN 10 AND 20
AND CategoryID IN (1,2,3);
가격이 10~20 사이인 모든 제품을 선택합니다. 또한 CategoryID는 1, 2 또는 3이어야 함.
SELECT * FROM Products
WHERE ProductName BETWEEN 'Carnarvon Tigers' AND 'Mozzarella di Giovanni'
ORDER BY ProductName;
Carnarvon Tigers와 Mozzarella di Giovanni 사이의 ProductName이 알파벳순으로 있는 모든 제품을 선택
날짜 사이
SELECT * FROM Orders
WHERE OrderDate BETWEEN #07/01/1996# AND #07/31/1996#;
'01-July-1996'과 '31-July-1996' 사이의 OrderDate를 갖는 모든 주문을 선택
SQL 별칭
SQL 별칭은 테이블이나 테이블의 열에 임시 이름을 지정하는 데 사용
종종 열 이름을 더 읽기 쉽게 만드는 데 사용
해당 쿼리가 지속되는 동안만 존재
AS 키워드를 사용하여 생성
SELECT CustomerID AS ID
FROM Customers;
AS는 선택사항
SELECT CustomerID ID
FROM Customers;
실제로 대부분의 데이터베이스 언어에서는 AS 키워드를 건너뛰어도 동일한 결과
공백 문자와 함꼐 별칭 사용
SELECT ProductName AS [My Great Products]
FROM Products;
SELECT ProductName AS "My Great Products"
FROM Products;
참고: 일부 데이터베이스 시스템에서는 [ ]와 ""를 모두 허용하고, 일부는 둘 중 하나만 허용
열 연결
SELECT CustomerName, Address + ', ' + PostalCode + ' ' + City + ', ' + Country AS Address
FROM Customers;
4개의 열(주소, 우편번호, 도시 및 국가)을 결합하는 "주소"라는 별칭을 생성
MySQL 예제
SELECT CustomerName, CONCAT(Address,', ',PostalCode,', ',City,', ',Country) AS Address
FROM Customers;
백준 - 스택
12605
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int N = sc.nextInt();
sc.nextLine();
for(int i=0;i<N;i++) {
String str = sc.nextLine();
StringTokenizer st = new StringTokenizer(str," ");
Stack stack = new Stack<>();
System.out.print("Case #"+(i+1)+": ");
while(st.hasMoreTokens())
stack.push(st.nextToken());
while(!stack.empty())
System.out.print(stack.pop()+" ");
System.out.println();
}
}
}