
📗서브쿼리: 하나의 SQL문에 포함되어 있는 내부 SQL문
※ SELECT절, FROM절, WHERE절, HAVING절, ORDER BY절, INSERT문의 VALUES절, UPDATE문의 SET절에서 사용 가능
<서브쿼리의 유형 >
▸ 실행 결과에 따른 서브쿼리
( 1 ) 단일행 서브쿼리
- 실행 결과가 1건 이하인 서브쿼리
- 단일 행 비교 연산자와 함께 사용되며, =, <, <=, >, >=, <> 사용
( 2 ) 다중행 서브쿼리
- 실행 결과로 다수의 로우를 반환하는 서브쿼리
✅ 다중 행 비교 연산자
1 ) IN : 서브쿼리 결과에 부분적으로 포함되는 조건
2 ) ALL : 비교 연산 수행 시 서브 쿼리 결과와 모든 값을 만족하는 조건
3 ) ANY : 비교 연산 수행 시 서브 쿼리 결과의 임의 값을 만족하는 조건
4 ) EXISTS : 서브 쿼리 결과를 만족하는 값이 있는지 확인하는 조건
( 3 ) 다중컬럼 서브쿼리
▸ 메인쿼리 연관성
( 1 ) 연관 서브쿼리
▸ SQL 위치에 따른 서브쿼리
( 1 ) 스칼라 서브쿼리
- SELECT절에서 주로 사용하는 서브쿼리
- 1 ROW, 1 COLUMN만을 반환
( 2 ) 인라인 뷰
📗뷰
: 하나 이상의 테이블에서 사용자에게 데이터를 보여주기 위해 재정의한 가상테이블
※ 테이블은 실제 데이터를 가지고 있지만 뷰는 실제 데이터를 가지지 않는다.
<뷰의 특징>
- 독립성 : 테이블 구조가 변경되어도 뷰를 재정의하면 되기 때문에, 애플리케이션을 변경할 필요가 없음
- 편리성 : 뷰를 사용하면 복잡한 SQL문을 단순한 형태로 변환 가능
- 보안성 : 민감한 정보를 제외하여 뷰를 정의하면 보안이 강화됨