개발 공부 & 정리
[SQL첫걸음] 23강 서브쿼리 본문
- SELECT, WHERE, FROM, SET구에서 주로 사용.
(SELECT 명령)
- 서브쿼리 먼저 실행. MySQL은 데이터 추가/갱신시 동일한 테이블 사용할 수 없으므로 한번 더 감싸야함.
- 종류 - 스칼라 값, 1xN, Nx1, NxN
- 스칼라 값 : 하나의 값, 상수. = 연산자로 비교가능
DELETE FROM [table] WHERE a = SELECT a FROM(SELECT MIN(a) from [subtable]));
(SELECT MIN(a) from [subtable]) ->스칼라 서브쿼리:집계함수를 사용해 결과를 조건식에서 사용 가능.
- SELECT 구
SELECT
(SELECT COUNT(*)FROM [table1])
(SELECT COUNT(*)FROM [table2]) (if Oracle FROM DUAL)
-> MySQL 생략 가능. Oracle FROM DUAL 지정(System에서 DB에 기본 작성하는 테이블)
- SET구 → 스칼라 값. →UPDATE [table] SET a= (subQuery)
- 반면 FROM구 스칼라, 테이블 모두 가능 (Nested 구조 -중첩구조) Alias 붙여 사용
SELECT * FROM
(SELECT * FROM [table] ORDER BY a ) sq
WHERE [condition]
->Oracle에서도 정렬된 테이블의 상위 n건조회 가능
- INSERT :
- VALUES에 스칼라 서브쿼리 (값 지정) 자료형 일치해야함.
- INSERT INTO [targetTable] (subQuery)
열 수와 자료형이 맞으면 지정한 테이블 전부 추가. (행 복사 가능)
+클라이언트 변수
IN MySQL
set @valName = (SELECT MIN(a) FROM [table])
DELETE FROM [table] WHERE a = @a;
'공부 > DB' 카테고리의 다른 글
[SQL첫걸음] 25강- 데이터베이스 객체 (0) | 2022.06.15 |
---|---|
[SQL첫걸음] 24강 상관 서브쿼리 (0) | 2022.06.15 |
[SQL첫걸음] 22강 GROUP BY (0) | 2022.06.15 |
[SQL첫걸음] 21강 COUNT 이외의 집계함수 (0) | 2022.06.15 |
[SQL첫걸음] 20강 행 개수 구하기 - COUNT (0) | 2022.06.15 |
Comments