본문 바로가기
IT/MSSQL

MSSQL 서브쿼리(SubQuery) 사용법 (예제 포함)

by 베베야 2021. 2. 19.
728x90

오늘은 MSSQL 서브 쿼리(SubQuery) 사용법에 대해서 알아보고
추가로 이해를 돕기 위한 예제까지 다루어 보도록 하겠습니다.

목차
1.MSSQL 서브쿼리(SubQuery) 란?
2.MSSQL 서브쿼리(SubQuery) 문법
3.MSSQL 서브쿼리(SubQuery) 사용법


1.MSSQL 서브쿼리(SubQuery) 란?
하나의 쿼리문 안에 포함되어 있는 또 하나의 쿼리문을 말합니다.
보통 각각의 테이블은 데이터베이스에 접근하는 속도를 향상하기 위해서 
하나의 테이블에 정보를 다 넣지 않고 다른 테이블과 관계를 맺어 만들어집니다.


그러므로 다른 테이블에 있는 정보들을 가져와서 사용하고자 할 때, 서브 쿼리가 필요합니다.
간단하게 쿼리문안에 쿼리문을 또 쓰는 방식입니다.


[주의사항]
서브쿼리 사용 시에는 괄호를 사용해야 한다.
정렬을 하는 order by절에는 사용이 불가하다.
연산자 오른쪽에 써야한다.

2.MSSQL 서브쿼리(SubQuery) 문법
#서브 쿼리를 이용한 조회하기
SELECT 
    (SELECT COUNT(*) FROM 테이블명 1) AS t1,
    (SELECT COUNT(*) FROM 테이블명2) AS t2;
FROM 테이블명

#서브쿼리를 이용한 업데이트
UPDATE 테이블명 SET 열명 = (SELECT MAX(열명) FROM 테이블명);


#서브 쿼리를 이용한 인설트
INSERT INTO 테이블명 VALUES (
    (SELECT COUNT(*) FROM 테이블명 1),
    (SELECT COUNT(*) FROM 테이블명2));

#'열명'에 해당하는 값중 가장 큰 값을 삭제하는 쿼리
DELETE FROM 테이블명 
WHERE 열명 = (SELECT max(열명) FROM 테이블명));

3.MSSQL 서브쿼리(SubQuery) 사용법
#서브 쿼리를 이용한 조회하기(select 절)
SELECT절에서 서브 쿼리를 사용할 경우 서브 쿼리의 결과값은 하나만 출력되어야 한다.
SELECT
name,
age,
(SELECT max(age) FROM bebeya01) AS 
FROM bebeya02

#서브쿼리를 이용한 조회하기(from 절)
From에 테이블 대신 서브 쿼리를 사용하면 서브 쿼리에서 조회된 값을 테이블처럼 사용이 가능합니다.
SELECT
name,
age
FROM
(SELECT * FROM  bebeya01)

#서브쿼리를 이용한 조회하기(where 절)
SELECT
name,
age
FROM bebeya01
WHERE age = (select max(age) from bebeya02)

MSSQL 서브 쿼리(SubQuery) 사용법에 대한 포스팅을 마치겠습니다.

반응형
그리드형

댓글