본문 바로가기
[자격증] SQLD(SQL개발자)/↘ SQL 기본 및 활용

[ SQLD ] SQL 활용 - 4. 서브쿼리 (Subquery)

by 승큐리티 2020. 5. 29.


[ SQLD ] 

2. SQL 활용

 2-4. 서브쿼리 (Subquery)



1. 서브쿼리 (Subquery)
메인 쿼리문 안에 또 다른 쿼리문이 있는 것으로 서브쿼리라고 부른다.
FROM구에 SELECT문을 쓸 때는 "인라인 뷰" 라고 부른다.
예를들어 한식집에서 메뉴와 음식가게의 평균적인 가격을 보고싶을때 사용한다.

SELECT 음식명, 음식가격 ,
 (SELECT AVG(음식가격) FROM 한식)
  FROM 한식;

SELECT 메인쿼리 안 SELECT 서브쿼리를 사용했다.
빨간네모가 서브쿼리이다.


2. 단일 행 서브 쿼리
서브쿼리가 비교 연산자(=, <, <=, >, >=, <>)와 함께 사용할 때 결과 건수가 반드시 1건만 조회


3. 다중 행 서브 쿼리
서브쿼리가 비교 연산자(IN, ALL, ANY, EXISTS)와 함께 사용할 때 결과 건수가 2건 이상 조회

IN (서브쿼리) : 서브쿼리 결과 중 하나만 동일하면 참 (OR조건)
ALL (서브쿼리) : 서브쿼리 결과가 메인쿼리 조건문에 전부 일치하면 참
ANY (서브쿼리) : 서브쿼리 결과가 메인쿼리 조건문에 하나라도 일치하면 참
EXISTS (서브쿼리) : 서브쿼리의 결과가 하나라도 있다면 참 아무것도 없다면 거짓

서브쿼리 EXISTS 결과 값이 하나라도 만족하지 않으면 메인쿼리 수행 X
하나라도 만족한다면 메인쿼리 수행


4. 연관 서브쿼리 (Correlated Subquery)
서브쿼리 내에 메인쿼리 칼럼이 사용된 서브쿼리


5. 스칼라 서브쿼리 (Scala Subquery)
반드시 한 행, 한 칼럼(1 Row 1 Column)만을 반환하는 서브쿼리


6. VIEW (뷰) 생성, 삭제

VIEW : 존재하는 테이블을 참조해서 만드는 가상의 테이블로 실제 데이터가 존재하지 않는다.
독립성 - 테이블 구조가 변경되어도 뷰는 변경되지 않는다.
편리성 - 질의문 단순화, 데이터 관리 간단
보안성 - 보여주고 싶은 데이터만 보여준다

하지만, 구조를 바꾸지 못하고 삽입,삭제,수정 기능이 없다 또한 자신만의 인덱스를 가질 수 없다.

생성 명령어 : CREATE VIEW 뷰명 AS SELECT 칼럼명 FROM 테이블명;
조회 명령어 : SELECT 칼럼명 FROM 뷰명;
삭제 명령어 : DROP VIEW 뷰명;


 

댓글