1일차

|

주요내용 : DB Column Data Type

/* 주문된 상품 중에 가격이 5$이상이고 10%미만인 주문번호를 오름차순으로 추출 */
SELECT order_num
FROM Orderitems
Where item_price >= 5
AND item_price < 10;

/* 제품 중에 제조사가 ‘DLL01’이 아닌 제품명을 내림차순으로 추출*/
SELECT prod_name
FROM products
WHERE vend_id != 'DLL01' ORDER by prod_name DESC;

/*  IN 연산자 사용 // 제조업체가 DLL01과 BRS01인 모든 제품을 가져온다
NOT IN 이라고도 표현 가능.*/
SELECT prod_name, prod_price
FROM Products
WHERE vend_id IN('DLL01', 'BRS01')
ORDER By prod_name;

/* IN와 OR 연산자는 동일한 기능을 수행
OR보다 IN이 좋음.*/
SELECT prod_name, prod_price
FROM Products
WHERE vend_id = 'DLL01' OR vend_id = 'BSR01'
ORDER By prod_name;

/*NOT연산자 사용
DLL01 제조업체 이외에서 만든 모든 제품을 가져온다.*/
SELECT prod_name, prod_price
FROM Products
WHERE vend_id <> 'DLL01'
ORDER by Prod_name;

/*고객명이 ‘Kids Place’거나 ‘Village Toys’인 고객중에 사는 도시가 ‘Detroit’가 아닌 고객명 추출*/
SELECT cust_name
FROM CUSTOMERS
WHERE cust_name IN('Kids Place', 'Village Toys')
AND cust_city <> 'Detroit';

/* 제조업체명이 ‘Bear Emporium’ 거나 ‘Jouets et ours’인 제조업체 중에 주정보가 없는 제조업체명을 내림차순으로 추출 */
SELECT vend_name
FROM VENDORS
WHERE vend_name In('Bear Empourium', 'Jouets et ours')
AND vend_state is null;

/* 주문상품 중에 제품번호가 ‘BR03’ 거나 ‘BNBG01’이고 주문수량이 100개 이상인 주문번호를 오름차순으로 추출 */
SELECT prod_id, order_num, quantity
FROM Orderitems
WHERE prod_id in('BR03', 'BNBG01')
AND quantity >100 Order by order_num ASC;

/* 와일드카드를 사용한 필터링: 값의 일부가 일치하는 경우를 검색하는데 사용되는 특별한 문자 
 Fish라는 단어로 시작하는 모든 제품을 검색*/
SELECT prod_name, prod_price
FROM Products
WHERE prod_name LIKE 'Fish%';

/* bean bag라는 문구가 들어간 모든 제품을 검색 */
SELECT prod_name, prod_price
FROM Products
WHERE prod_name LIKE '%bean bag%';

/*F로 시작하고 y로 끝나는 모든 제품을 검색*/
SELECT prod_name, prod_price
FROM Products
WHERE prod_name LIKE '**'||RTRIM('F%y')||'**';

/* _ 는 단하나의 문자에 대해 아무문자나 허용하는 검색
언더바가 두개임.
앞에 어떤 두문장이 있음.
세문장은 틀린거임.*/
SELECT prod_id, prod_name
FROM Products
WHERE prod_name LIKE '__inch teddy bear';

/*고급필터링
1번
고객의 이름이 ‘Fun’로 시작되고 ‘M’로 시작되는 도시에 사는 고객명과 주소를 고객명을 내림차순으로 추출 
*/
SELECT cust_name, cust_address
From CUSTOMERS
WHERE cust_name LIKE 'Fun%'
AND cust_city LIKE 'M%'
ORDER by cust_name DESC;

/*2번
제품번호가 ‘B’로 시작되고 ‘1’로 끝나는 제품명과 제조사ID 그리고 제품가격을 제품가격 오름차순으로 추출 
*/
SELECT prod_id, vend_id, prod_price
FROM Products
WHERE prod_id LIKE 'B%1'
ORDER by prod_price ASC;

/*3번
 공급업체ID가 ‘D’로 시작되고 공급업체 시도 ‘D’로 시작하는 공급업체명과 공급업체주소를 공급업체명 오름차순으로 추출 
*/
SELECT vend_name, vend_address
FROM VENDORS
WHERE vend_id LIKE 'D%'
AND VEND_city LIKE 'D%'
ORDER by vend_name ASC;

/*4번
주문상품중에 제품번호ID에 ‘BG’가 포함되고 주문수량이 100개인 주문번호와 주문단가를 주문단가 오름차순으로 추출
*/
SELECT order_num, item_price
FROM orderitems
WHERE prod_id LIKE '%BG%'
AND quantity = 100 ORDER by item_price ASC;

/*필드의 결합*/
SELECT vend_name || '('||vend_country ||')'
FROM vendors
ORDER by vend_name;

/*공백의 제거*/
SELECT vend_name ||'('|| RTRIM(vend_country)||')'
FROM Vendors
ORDER by vend_name;

/*별칭 사용*/
SELECT vend_name ||'('|| RTRIM(vend_country)||')' vend_title
FROM vendors
ORDER by vend_name;

/*수학적계산*/
SELECT prod_id, quantity, item_price, quantity*item_price expanded_price
FROM OrderItems
WHERE order_num = 20008;

'Bitcamp > BITCAMP - SQL' 카테고리의 다른 글

6일차  (0) 2019.07.31
5일차  (0) 2019.07.30
4일차  (0) 2019.07.29
3일차  (0) 2019.07.26
2일차  (0) 2019.07.25
And