[SQL] Sub Query & View

hyunsooSong·2022년 5월 24일
0

SQL

목록 보기
6/14
post-thumbnail

🌆 Sub Query & View

1. 반환되는 데이터 형태에 따른 서브 쿼리 분류

✅ 'Multi Column 서브쿼리'는 SQL Server에서 지원하지 않는 기능이다.

  • Single Row 서브쿼리 : 서브 쿼리 실행 결과가 항상 1건 이하인 서브쿼리를 말한다. (단일 행 비교 연산자와 함께 사용된다.)
    - 단일 행 비교 연산자 : =, <, <=, >, >=, <>

  • Multi Row 서브쿼리 : 서브 쿼리 실행 결과가 여러 건인 서브쿼리를 말한다. (다중 행 비교 연산자와 함께 사용된다.)
    - 다중 행 비교 연산자 : IN, ALL, ANY, SOME, EXISTS

  • Multi Column 서브쿼리 : 서브 쿼리 실행 결과가 여러 컬럼을 반환한다. 메인쿼리의 조건절에 여러 컬럼 동시 비교할 수 있다.
    (서브쿼리와 메인쿼리에서 비교하고자 하는 컬럼 개수와 컬럼의 위치가 동일해야 한다.)


2. 서브쿼리 사용 시 주의사항

✅ 서브쿼리에서는 ORDER BY 사용 불가.

  • ORDER BY절은 SELECT절에서 오직 1개만 올 수 있기 때문에 ORDER BY를 사용하려면 메인쿼리의 마지막 문장에 위치해야 한다.

3. View란?

✅ 뷰는 하나 이상의 테이블 에서 원하는 모든 데이터를 선택하여, 그들을 사용자 정의하여 나타낸 것이다.

  • 뷰는 단지 정의만을 가지고 있으며, 실행 시점에 질의를 재작성하여 수행한다.

  • 실제 데이터를 저장하고 있는 뷰를 생성하는 기능을 지원하는 DBMS도 존재한다.

✅ View의 장점

  • 독립성 : 테이블 구조가 변경 되어도 뷰를 사용하는 응용 프로그램은 변경하지 않아도 된다.

  • 편리성 : 복잡한 질의를 뷰로 생성함으로써 관련 질의를 단순하게 작성할 수 있다. 또한 해당 형태의 SQL문을 자주 사용할 때 뷰를 이용하면 편리하게 사용할 수 있다.

  • 보안성 : 숨기고 싶은 정보가 존재한다면, 뷰를 생성할 때 해당 컬럼을 빼고 생성함으로써 뷰를 보는 사용자에게 정보를 감출 수 있다.


4. From 절의 서브쿼리, Inline View (or 동적 뷰)

✅ From 절에서 사용되는 서브쿼리를 '인라인 뷰'라고 한다.

  • 서브쿼리의 결과가 마치 실행 시에 동적으로 생성된 테이블인 것처럼 사용할 수 있다.

  • 인라인 뷰는 sql문이 실행될 때만 임시적으로 생성되는 동적인 뷰이기 때문에 DB에 정보가 저장되지 않는다.

SELECT A.id, B.id
FROM TBL1 A, (SELECT id FROM TBL2) B;


+ 👀 틈새 지식

💡 HAVIND절은 GROUP BY 및 집계함수 없이도 사용이 가능하다..!

💡 비연관 서브쿼리의 목적은 메인쿼리에 값을 제공하기 위함이다.

profile
🥕 개발 공부 중 🥕

0개의 댓글