[IN]
-조건의 범위를 지정, 값은 콤마로 구분하야 묶으며, 이 값 중 하나 이상과 일치하면 조건에 맞는것으로 판단
ex)
Select prod_name, prod_price
from Products
Where vend_id IN ('d111', 'b111')
order by prod_name;
=> Products 테이블에 vend_id가 'd111' 또는 'b111'인 Row의 prod_name과 prod_price를 prod_name으로 정렬하여 Return
SELECT COUNT(*) AS NUM_ITEMS,
MIN(PROD_PRICE) AS PRICE_MIN,
MAX(PROD_PRICE) AS PRICE_MAX,
AVG(PROD_PRICE) AS PRICE_AVG,
FROM PRODUCTS;
[GROUP BY]
SELECT VEND_ID, COUNT(*) AS NUM_PRODS
FROM PRODUCTS
GROUP BY VEND_ID;
[HAVING]
- GROUP BY 의 조건절. GROUP BY용 WHERE 이라고 생각하면 됨.
SELECT VEND_ID, COUNT(*) AS NUM_PRODS
FROM PRODUCTS
GROUP BY VEND_ID
HAVING COUNT(*) > 2;
WHERE은 그룹화 전에 필터링, HAVING은 그룹화 후 필터링
[2중쿼리]
SELECT CUST_ID
FROM ORDERS
WHERE ORDER_NUM
IN (SELECT ORDER_NUM
FROM ORDERITEMS
WHERE PROD_ID = 'AA1');
[조인]
SELECT VEND_NAME, PROD_NAME, PROD_PRICE
FROM VENDERS, PRODUCTS
WHERE VENDORS.VEND_ID = PRODUCTS.VEND_ID;
-내부조인
SELECT VEND_NAME, PROD_NAME, PROD_PRICE
FROM VENDORS INNER JOIN PRODUCTS
ON VENDORS.VEND_ID = PRODUCTS.VEND_ID
ON 은 JOIN 사용시 WHERE 이라고 생각하면 됨.
INNER JOIN 은 조건이 맞는 COLUMN만 표기를 한다면, OUTER JOIN은 LEFT OUTER JOIN 이나 RIGHT OUTER JOIN 이냐에 따라서
LEFT인 경우 왼쪽 테이블의 모든 정보 + 조건 정보, RIGHT인 경우 조건정보 + 오른쪽 테이블의 모든 정보 식으로 표현된다.
LEFT : *=
RIGHT : =*
SELECT CUSTOERS.CUST_ID, ORDERS.ORDER_NUM
FROM CUSTOMERS, ORDERS
WHERE CUSTOMERS.CUST_ID *= ORDER.CUST_ID;
[UNION]
SQL 쿼리를 결합하는데 사용
SELECT CUST_NAME, CUST_CONTACT, CUST_EMAIL
FROM CUSTOMERS
WHERE CUST_STATE IN ('IL','IN','MI');
SELECT CUST_NAME, CUST_CONTACT, CUST_EMAIL
FROM CUSTOMERS
WHERE CUST_NAME = 'FUN4ALL';
==>
SELECT CUST_NAME, CUST_CONTACT, CUST_EMAIL
FROM CUSTOMERS
WHERE CUST_STATE IN ('IL','IN','MI')
UNION
SELECT CUST_NAME, CUST_CONTACT, CUST_EMAIL
FROM CUSTOMERS
WHERE CUST_NAME = 'FUN4ALL';
UNION 사용시 중복결과도 모두 표현하고 싶을 경우 UNION 대신 UNION ALL 을 사용하면 된다.
[insert]
insert into Customers (cust_id,
cust_name,
cust_address,
cust_city,
cust_state,
cust_zip)
values('100006',
'Toy land',
'123 andy',
'new york',
'ny',
'11111');
'DB > MSSQL' 카테고리의 다른 글
[MSSQL] For 문으로 데이터 넣기 (0) | 2017.10.24 |
---|---|
외부 접속 허용 (0) | 2017.10.23 |
Try Catch 예제 (0) | 2017.09.05 |
오전오후 -> datetime 변환 (0) | 2017.03.28 |
index 방법 (0) | 2017.02.23 |