[손에 잡히는 10분 SQL - 벤 포터 지음, 박남혜 옮김] 책의 학습 후 정리자료입니다.
SELECT prod_id, prod_price, prod_name
FROM Products
WHERE vend_id = 'DLL01' AND prod_price <= 4;
Products
테이블에서 vned_id
가 DLL01
과 일치하고, prod_price
의 값이 4보다 작은 레코드의 prod_id
, prod_price
, prod_name
속성을 출력한 결과이다.SELECT prod_name, prod_price
FROM Products
WHERE vend_id = 'DLL01' OR vend_id = 'BRS01';
Products
테이블에서 vned_id
가 DLL01
과 일치하거나, BRS01
과 일치 레코드의 prod_name
, prod_price
속성을 출력한 결과이다.AND > OR
vend_id
가 DLL01
혹은 BRS01
이면서 prod_price
의 값이 10
이상인 레코드를 호출한다면 아래와 같이 SQL 문을 작성해야 한다.SELECT prod_name, prod_price
FROM Products
WHERE (vend_id = 'DLL01' OR vend_id = 'BRS01')
AND prod_price >= 10;
(vend_id = 'DLL01' OR vend_id = 'BRS01')
를 괄호로 묶은 이유는 우선순위가 OR 보다 AND가 더 높기 때문에 OR 연산자를 먼저 실행하기 위해서 괄호를 통해 우선순위를 높인 것이다.SELECT prod_name, prod_price
FROM Products
WHERE vend_id IN ('DLL01', 'BRS01')
ORDER BY prod_name;
Products
테이블에서 vned_id
가 DLL01
과 일치하거나, BRS01
과 일치 레코드의 prod_name
, prod_price
속성을 출력한 결과이다.SELECT prod_name
FROM Products
WHERE not vend_id = 'DLL01'
ORDER BY prod_name;
Products
테이블에서 vned_id
가 DLL01
과 일치하지 않는 레코드를 prod_name
을 기준으로 오름차순으로 정렬한 prod_name
속성을 출력한 결과이다.Vendors
테이블에서 캘리포니아에 있는 판매처의 이름(vend_name
)을 가져오는 SQL 문을 작성하라(이를 처리하려면 국가(USA)와 주(CA)를 모두 봐야 한다. 미국 외에도 캘리포니아라는 지명이 존재하기 때문이다). 문자열이 일치하는지 여부로 필터링을 해야 한다는게 힌트다.SELECT vend_name
FROM Vendors
WHERE vend_country = 'USA' and vend_state = 'CA';
BR01
, BR02
, BR03
항목이 최소 100개 이상인 모든 주문 목록을 찾는 SQL 문을 작성하라. OrderItems
테이블에서 제품 ID(prod_id
)와 수량으로 필터링하여 제품 번호(order_num
), 제품 ID, 수량을 반환하도록 하자. 한 가지 힌트는 필터를 작성할 때 계산 순서에 특별히 주의를 기울여야 한다.SELECT order_num, prod_id, quantity
FROM OrderItems
WHERE prod_id IN ('BR01', 'BR02', 'BR03')
AND quantity >= 100;
Products
테이블에서 가격이 3
과 6
사이인 모든 제품의 제품명(prod_name
)과 제품 가격(prod_price
)을 가져오는 SQL 문을 작성하라. AND를 꼭 사용하고 결과는 가격순으로 정렬하라.SELECT prod_name, prod_price
FROM Products
WHERE prod_price BETWEEN 3 AND 6
ORDER BY prod_price;
SELECT vend_name
FROM Vendors
ORDER BY vend_name
WHERE vend_country = 'USA' AND vend_state = 'CA';
SELECT vend_name
FROM Vendors
WHERE vend_country = 'USA' AND vend_state = 'CA';
ORDER BY vend_name