메인 쿼리(OUTER QUERY) + 서브 쿼리(INNER QUERY)
<쿼리의 핵심 키워드 6가지>
SELECT FROM WHERE GROUP BY HAVING ORDER BY
💡 GROUP BY 제외한 나머지 핵심 키워드에 서브 쿼리 적용 가능
- 서브 쿼리 : 하나의 쿼리 내에 포함된 또 하나의 쿼리
- 서브 쿼리는 괄호 안에 있어야 함
- INSERT, UPDATE, DELETE에도 적용 가능
- 서브 쿼리에는 ; (세미 콜론)을 붙이지 않아도 됨
SELECT절의 서브 쿼리 (스칼라 서브 쿼리)
- 반드시 결과값이 하나의 값이어야 함
SELECT [칼럼 이름]
(
SELECT
FROM
WHERE
)
FROM [테이블 이름] WHERE 조건식;
FROM절의 서브 쿼리 (인라인 뷰 서브쿼리)
- 반드시 결과값이 하나의 테이블이어야 함
- 반드시 서브쿼리로 만든 테이블은 별명을 가져야 함
SELECT [칼럼 이름]
FROM
(
SELECT
FROM
WHERE
) AS [테이블 별명]
WHERE 조건식;
FROM절의 서브 쿼리 (중첩 서브쿼리)
- 반드시 결과값이 하나의 칼럼이어야 함 (EXISTS 제외)
- 하나의 칼럼에는 여러 개의 값이 존재할 수 O
- 연산자와 함께 사용합니다
- WHERE [칼럼 이름] [연산자] [서브 쿼리] 형식
SELECT [칼럼 이름]
FROM [테이블 이름]
WHERE [칼럼 이름] [연산자]
(
SELECT
FROM
WHERE
);
| 비교 연산자 | = != > >= < <= |
| 주요 연산자 | IN ALL ANY EXISTS ⇒ TRUE or FALSE 반환 *EXISTS는 연산자 없이 단독으로 사용, 결과값이 여러 칼럼이어도 OK |
ALL
< (작다) : 서브 쿼리의 최솟값보다 작은지
> (크다) : 서브 쿼리의 최댓값보다 큰지
ANY
< (작다) : 서브 쿼리의 최댓값보다 작은지
> (크다) : 서브 쿼리의 최솟값보다 큰지
'What I study > mysql' 카테고리의 다른 글
| [MYSQL] 여러 테이블을 한번에 다루기 (0) | 2023.01.09 |
|---|---|
| [MYSQL] 규칙 만들기 (0) | 2023.01.05 |
| [MYSQL] 데이터 그룹화하기 (0) | 2023.01.03 |
| [MYSQL] 원하는 데이터 만들기 (0) | 2023.01.02 |
| [MYSQL] 조건에 맞는 데이터 가져오기 (WHERE) (0) | 2023.01.02 |