전부 서브쿼리 가능
SELECT
FROM
WHERE
GROUP BY -> 서브쿼리 불가
HAVING
ORDER BY
서브쿼리 특징
- 반드시 괄호안에 있어야 함
- GROUP BY 절을 제외한 모든 절에 사용가능
- INSERT, UPDATE, DELETE문에도 사용가능
서브쿼리에는 세미콜론을 붙이지 않아도 됩니다
세미콜론 ; 은
전체 메인쿼리가 끝난 마지막에만 붙일수있음
SELECT, 서브쿼리 ( 스칼라 서브쿼리)
SELECT절의 서브쿼리는
반드시 결과값이 하나의 값!!
SELECT number, name, (SELECT height FROM ability WHERE number=25) AS height
FROM mypokemon
WHERE name='pikachu';
FROM 서브쿼리(인라인뷰 서브쿼리)
인라인 뷰 서브쿼리
- 반드시 결과값이 하나의 테이블
- 서브쿼리로 만든 테이블은 반드시 별명!
SELECT number, h_rank
FROM ( SELECT number, RANK() OVER(ORDER BY height DESC) AS h_rank FROM ability) AS t1
WHERE h_rank=3 ;
WHERE 서브쿼리 (중첩 서브쿼리)
중첩 서브쿼리
- 반드시 결과값이 하나의 컬럼 (EXISTS 제외)
- 하나의 컬럼에는 여러개의 값 존재 가능
- 연산자와 함께 사용
- WHERE 컬럼 연산자 서브쿼리 형식
SELECT
FROM
WHERE 컬럼 연산자 서브쿼리
비교연산자 사용
=, != < >
비교 연산자만 사용시 WHERE절의 서브쿼리는 반드시 결과값이 하나의 값이어야함
주요연산자
IN, ALL, ANY, EXISTS
주요 연산자 사용시 WHERE절의 서브쿼리는 반드시 결과값이 하나의 컬럼 이여야 합니다
단, EXISTS는 단독으로 사용하며, 결과값이 여러 컬럼이어도 됨
'SQL' 카테고리의 다른 글
서브쿼리 예제 (0) | 2022.06.27 |
---|---|
RANK, DENSE_RANK, ROW_NUMBER (0) | 2022.06.27 |
UNION, UNION ALL, 교집합 , 차집합 (0) | 2022.06.27 |
JOIN 실습 (0) | 2022.06.27 |
LEFT JOIN, INNER JOIN , 차집합 (0) | 2022.06.27 |