본문 바로가기
CS/DB

서브쿼리

by 넬준 2021. 12. 3.

SQL 명령문 안에 지정하는, 하부 SELECT 명령으로 괄호로 묶어서 지정한다!

 

일반적인 4가지 패턴

1. 햐나의 값 반환

 

MIN(a)
10

이 경우 '스칼라 값을 반환한다.'고 한다.

만일 = 연산자를 사용하여 비교할 경우에는 스칼라 서브쿼리여야 한다.

 

2. 하나의 열, 여러개의 행

 

a
1
2
3

 

3. 하나의 행, 여러개의 열

 

MIN(a) MAX(b) COUNT(c) AVG(d)
12 40 70 8

 

4. 여러 행, 열

 

no a b
1 45 5
2 78 25

 

WHERE 구에서 주로 사용하고 SELECT 구, FROM 구, INSERT 구 등 다양한 곳에서 쓰일 수 있다.

 

INSERT 명령과 서브쿼리

INSERT 명령에서는

1. VALUES 구의 일부로 서브쿼리를 사용하는 경우와

2. VALUES 구 대신 SELECT 명령을 사용하는 경우가 있다.

 

그 중 2번 경우를 INSERT SELECT라 부르기도 한다.

 

INSERT INTO table SELECT 1, 2;

 

VALUES 구 대신 SELECT 명령을 사용했다.  이는

 

INSERT INTO table VALUES(1, 2);

 

경우와 같다.

 

SELECT 명령이 반환하는 열 수와 자료형이 INSERT할 테이블과 일치하면 된다!

 

INSERT SELECT는 SELECT로 반환하는 결과를 INTO 뒤 테이블에 전부 추가하는 명령이다.

그래서 데이터 복사나 이동 시에 자주 사용한다.

 

열 구성이 같은 테이블 사이에선 INSERT SELECT 명령으로 행을 통째로 복사할 수 있다.

 

INSERT INTO table1 SELECT * FROM table2;

 

'CS > DB' 카테고리의 다른 글

데이터베이스 계층 구조  (0) 2021.12.04
IN / EXISTS / 상관 서브쿼리  (0) 2021.12.04
그룹화 - GROUP BY  (0) 2021.12.03
집계함수 - COUNT / SUM / AVG / MIN / MAX  (0) 2021.12.03
데이터 추가, 갱신, 삭제 - INSERT / UPDATE / DELETE  (0) 2021.12.03

댓글