[ 목차 ]
1. 서브쿼리
2. 서브쿼리의 종류
3. 다중행 연산자 ALL
4. 다중행 연산자 ANY
5. 다중행 연산자 IN/EXISTS
6. 집합연산 UNION
7. 집합연산 UNION ALL
8. 집합연산 INTERSECT
9. MINUS/EXCEPT
1. 서브쿼리
1) 쿼리문 내에 또 다른 쿼리문이 있는 형태
2) 서브쿼리는 메인쿼리에 포함되는 관계
3) ( )를 사용해 감싸는 형태
4) ORDER BY 사용 불가
5) 사용 가능 위치 : SELECT, FROM, WHERE, HAVING, ORDER BY, VALUES(INSERT), SET(UPDATE)
2. 서브쿼리의 종류
1) 단일형 서브쿼리
1] 결과가 레코드 하나인 서브쿼리
2] 일반 연산자 사용
2) 다중행 서브쿼리
1] 결과가 레코드 여러 개인 서브쿼리
2] 다중행 연산자(IN, ALL, ANY, EXISTS) 사용
3)다중컬럼 서브쿼리
1] 결과가 컬럼 여러 개인 서브쿼리
3. 다중행 연산자 ALL
1) 여러 개의 레코드의 AND 효과
2) 서브 쿼리 결과 중 가장 큰 값보다 더 큰 값이 나와야 함
4. 다중행 연산자 ANY
1) 여러 개의 레코드의 OR 효과
2) 서브 쿼리 결과 중 제일 작은 값보다 더 큰 값이 나와야 함
5. 다중행 연산자 IN/EXISTS
1) 결과값 중에 있는 것 중에서의 의미
2) IN은 전체 레코드를 스캔하지만 EXISTS는 존재여부만 확인만하고 스캔하지않기에 속도가 더 빠름
3) 존재할 경우 TRUE, 존재하지 않으면 FALSE 반환
6. 집합연산 UNION
select 쿼리1 union select 쿼리2 union ...
1) 두 쿼리의 결과값을 합쳐서 리턴, 합집합
2) 두 쿼리의 결과 형식이 동일해야 함
3) 기본적으로 distinct 적용
4) 다른 테이블이라도 결과값의 형식만 일치하면 됨
7. 집합연산 UNION ALL
select 쿼리1 union all select 쿼리2 union ...
1) 중복을 허용
8. 집합연산 INTERSECT
selet 쿼리1 intersect select 쿼리2 ...
1) 두 쿼리의 결과값 중 공통값을 찾아서 리턴, 교집합
2) 두 쿼리의 결과 형식이 동일해야 함
3) 기본적으로 distinct 적용
4) 다른 테이블이라도 결과값의 형식만 일치하면 됨
9. MINUS/EXCEPT
selet 쿼리1 minus select 쿼리2 ...
1) 쿼리1 결과값에서 쿼리2 결과갑을 빼서 리턴
2) MySQL에서는 지원하지 않음
'T아카데미 > 데이터베이스' 카테고리의 다른 글
11강. SQL(DDL)2 (0) | 2020.03.23 |
---|---|
10강. SQL(DDL)1 (0) | 2020.03.23 |
8강. SQL(DML)6 (0) | 2020.03.20 |
7강. SQL(DML)5 (0) | 2020.03.20 |
6강. SQL(DML)4 (0) | 2020.03.20 |