서브쿼리
SELECT
FROM
WHERE
GROUP BY
HAVING
ORDER BY
- Scalar 서브쿼리: 한 행, 한 컬럼만 반환하는 서브쿼리
- Inline View: SQL 문이 실행될 때만 임시적으로 생성되는 동적 뷰이기 때문에 데이터베이스에 해당 정보가 저장되지 않음
- 다중 컬럼 서브 쿼리: 결과로 여러 컬럼이 반환되어 비교하고자하는 메인쿼리에서 컬럼 수와 위치가 동일해야 함. SQL Server는 미지원
- 연관 서브쿼리: 서브쿼리가 메인 쿼리 컬럼을 포함
- 비연관 서브쿼리: 주로 메인쿼리에 값을 제공하기 위한 목적으로 사용
- 메인 쿼리 데이터마다 하나하나 서브쿼리 전체를 수행
- 단일행 서브쿼리 비교 연산자:
=
, <
, <=
, >
, >=
, <>
- 다중행 서브쿼리 비교 연산자:
IN
, ALL
, ANY
, SOME
, EXIST
exist
: 모든 문자 사용 가능. 존재한다면 True. 존재하지 않으면(0 rows) False
VIEW
- 정의만 가지고 있음. 실행 시점에 질의를 재적성하여 수행. 저장공간이 적게 필요함
- 독립성: 기존 테이블의 구조가 변경되면 뷰도 함께 변경되므로 따로 업데이트 필요 없음
- 편리성: 계속 테이블을 조작할 필요 없음
- 보안성: 원하는 정보만 드러낼 수 있음. 숨길 수 있음
- 실제 데이터를 저장하는 뷰를 생성하는 기능을 지원하는 DBMS도 있음