주케터의 메모장

[SQLD] 비전공자의 SQLD 공부 서브쿼리란 무엇일까?(스칼라,인라인,중첩) 참고 인강 有 본문

TEST/SQLD

[SQLD] 비전공자의 SQLD 공부 서브쿼리란 무엇일까?(스칼라,인라인,중첩) 참고 인강 有

JOOKETER 2023. 8. 17. 12:07
320x100

안녕하세요

주케터입니다 :)

 

벌써 8월 중순이네요!

시간이 참 빠른 것 같네요.

 

 

오늘은 서브쿼리(Subquery)에 대해 간단하게 알아보려고 합니다!


서브쿼리란?

하나의 쿼리안에 존재하는 또 다른 쿼리입니다!

메인 주인공과 서브 남주,여주가 있듯이

메인 쿼리 안에 들어있는 서브 쿼리인 것이죠!

출처: SQLD 과외 노트

 

아기를 잉태한 엄마의 모습을 생각하면 이해가 쉬울 것 같아요.

엄마를 메인 쿼리, 아이를 서브 쿼리로 부릅니다.

 

서브쿼리는 위치에 따라 다음과 같이 나눌 수 있습니다.

하기의 내용은 중요하니 꼭 암기하세요!

 

SELECT 절 등 스칼라 서브쿼리(Scalar Subquery)
FROM  절 등 인라인 뷰(Inline View)
WHERE 절, HAVING 절 등 중첩 서브쿼리(Nested Subquery)

1. 스칼라 서브쿼리

 

주로 SELECT 절에 위치하지만 컬럼이 올 수 있는 대부분의 위치에 사용이 가능하다.

컬럼 대신 사용되므로, 반드시 하나의 값만을 반환해야 하며 그렇지 않은 경우

에러를 발생시킨다.

 

문제 예시

Q. 스칼라 서브쿼리가 위치할 수 있는 곳이 아닌 것은?

1) SELECT 절

2) UPDATE 문의 SET 절

3) ORDER BY 절

4) FROM 절

 

정답은 뭘까요~?

더보기

바로 4번 from절입니다. 여기는 인라인 뷰가 위치할 수 있죠?

 

2. 인라인 뷰

FROM 절 등 테이블 명이 올 수 있는 위치에 사용이 가능다.

 

3. 중첩 서브쿼리

(1) WHERE절과 HAVING절에 사용이 가능하며, 중첩 서브쿼리는 메인 쿼리와의 관계에 따라

두가지로 나눌 수 있다.

 

비연관 서브쿼리: 서브쿼리 내 메인 쿼리 칼럼 X 메인쿼리와 관계를 맺고있지 X
연관 서브쿼리: 서브쿼리 내 메인 쿼리 컬럼 존재 메인쿼리와 관계 O

(2) 중첩 서브쿼리는 데이터 형태에 따라 다음과 같이 나눌 수 있다.

하기의 내용도 중요하니 꼭 암기하세요!

단일 행 서브쿼리 - 서브쿼리가 1건 이하의 데이터를 반환
- 단일 행 비교 연산자와 함께 사용
EX) =,<,>,<=,>=,<>
다중 행 서브쿼리 -서브쿼리가 여러 건의 데이터를 반환
- 다중행 비교 연산자와 함께 사용
EX) IN, ALL, ANY, SOME, EXISTS
다중 컬럼 서브쿼리 서브쿼리가 여러 컬럼의 데이터를 반환

 

예시 문제

Q. 다음 중 서브쿼리에 대한 설명으로 옳지 않은 것은 무엇인가?

1) 서브쿼리에는 반드시 메인 쿼리의 컬럼이 포함되어야 한다.

2) 서브쿼리는 ORDER BY 절, INSERT 문의 VALUE 절 등에 사용이 가능하다.

3) 다중행 서브쿼리의 경우 '=' 조건과 함께 사용될 수 없다.

4) 다중 컬럼 서브쿼리의 경우 IN절과 함께 사용할 수 없다.

 

 

정답은 뭘까요?

더보기

답은 바로  1번!이죠 

포함된걸 연관 서브쿼리, 포함되지 않은 걸 비연관 서브쿼리라고 하죠 :)

 

자, 오늘 간단하게 서브쿼리에 대해 공부해 보았는데요

어떠신가요? 저는 비전공자로 머리가 아프지만 하나 하나 인강도 듣고

문제도 풀면서 공부하고 있습니다.

 

참고하실만한 인강도 함께 올려드려용

https://youtu.be/oc-ya1MpK5c

 

모두 힘내보아요!

 

그럼 안녕!

 

728x90