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 |
댓글