검색
1. SELECT
데이터를 검색하는 기본 문장. 질의어라고 부름.
(필수)
SELECT [ALL * | DISTINCT] 속성이름(들)
FROM 테이블 이름(들)
··········································································
(선택)
WHERE 검색 조건(들)
GROUP BY 속성이름
HAVING 검색조건(들)
ORDER BY 속성이름 [ASC | DESC]
*WHERE의 조건들
≫ 비교 : =,<>,<,<=,>= (price 20000)
≫ 범위 : BETWWEEN (price BETWEEN 10000 AND 20000)
≫ 집합 : IN, NOT IN (price IN (10000,20000,30000)
≫ 패턴 : LIKE (bookname LIKE '축구의 역사') (bookname LIKE '%축구%') (bookname LIKE '_구%')
≫ NULL : IS NULL, IS NOT NILL (price IS NULL)
≫ 복합조건 : AND, OR, NOT ((price < 20000) AND (bookname LIKE '축구의 역사')
*ORDER BY (도서를 이름순으로 보고 싶다.)
≫ 오름차순은 ASC, 내림차순은 DESC 사용. (ORDER BY price DESC, publisher ASC;)
*GROUP BY (도서 판매액의 합계를 알고 싶다.)
≫ SUM
≫ AVG
≫ MIN
≫ MAX
≫ COUNT (*)
GROUP BY (어느 고객이 얼마나 주문했는지 알고싶다.)
*HAVING (GROUP BY에 조건을 걸어주는 역할)
≫ 항상 WHERE절 뒤에 나와야 한다.
≫ 항상 GROUP BY절과 함께 사용한다.
≫ 검색 조건에는 집계함수가 와야한다. (SUM,AVG,MIN,MAX,COUNT)
*집합 연산(고객 이름의 합집합을 구하고 싶다.)
예문 : 대한민국에 거주하는 고객의 이름과 도서를 주문한 고객의 이름을 보이시오.
≫ SELECT name
FROM Customer
WHERE address LIKE '대한민국%'
UNION
SELECT name
FROM Customer
WHERE custid IN (SELECT custid FROM Orders);
≫ UNION은 합집합이면서 중복 제외, UNION ALL은 합집합이면서 중복 포함.
*EXISTS (주문이 있는 고객을 알고싶다.)
≫ 조건에 맞는 투플이 존재하면 결과에 포함시킨다.
≫ NOT EXISTS는 부속질의문의 모든 행이 조건에 만족하지 않을 때만 참이다.
예문 : 주문이 있는 고객의 이름과 주소를 보이시오.
≫ SELECT name, address
FROM Customer cs
WHERE EXISTS (SELECT *
FROM Orders od
WHERE cs.sustid = od.custid);
'Programming > Database' 카테고리의 다른 글
관계 데이터 모델 (0) | 2022.11.07 |
---|