- Today
- Total
- BFS
- dp
- Graph
- leetcode
- database
- ์๋ฐ
- ๋ค์ต์คํธ๋ผ
- ๊ทธ๋ฆฌ๋
- MST
- ์์์ ๋ ฌ
- ์ธํด
- CS
- java
- ํ๋ก๊ทธ๋๋จธ์ค
- ์๋ฐ์์ ์
- ์๋ฃ๊ตฌ์กฐ
- pytorch
- spring
- ๊ตฌํ
- tree
- array
- PS
- ์กธ์ ์ํ
- ๋ฐ์ดํฐ๋ฒ ์ด์ค
- ๋ฒจ๋งํฌ๋
- ๋ฌธ๋ฒ
- ๋ฐฑ์๋
- OOP
- Algorithm
- ๋ฐฑ์ค
Partially Committed
[DB] Correlation subquery ์ ์คํ ์์ ๋ณธ๋ฌธ
[DB] Correlation subquery ์ ์คํ ์์
WonderJay 2023. 3. 30. 21:17Q.
select course_id
from section as S
where semester = ’Fall’ and year= 2017 and
exists (select *
from section as T
where semester = ’Spring’ and year= 2018 and S.course_id= T.course_id);
Correlation subquery๋ ๋ณธ๋ฌธ(๋ฐ๊นฅ ์ง์)๊ฐ ๋จผ์ ์คํ๋๊ณ , ํ์ ์ง์๊ฐ ์คํ๋๊ณ ๋ค์ ํ์ ์ง์์ ๊ฒฐ๊ณผ๊ฐ์ด ๋ฐ๊นฅ ์ง์์์ exists๋ก ํ๊ฐ๋๋ ์์๋ก ์งํ๋๋์? ๋ง์ฝ ๊ทธ๋ ๋ค๋ฉด, 2017๋ ๊ฐ์์ ์ด๋ฆฐ ๊ณผ๋ชฉ์ด n๊ฐ๊ฐ ์์ผ๋ฉด ํ์ ์ง์๊ฐ n๋ฒ๋งํผ ๋ฐ๋ณต๋๋ฉด์ exists ๊ฒฐ๊ณผ true์ด๋ฉด ๊ทธ course_id๊ฐ ๊ฒฐ๊ณผ์ ์ถ๊ฐ๋๋ ๋ฐฉ์์ด ๋ง๋์?
A.
Correlation subquery ๊ฐ์ ๊ฒฝ์ฐ์๋ (1) Main query ๋ฅผ ๋จผ์ ์คํํ๊ณ , (2) ์ด๋ ์ฝ์ด๋ค์ธ ๊ฐ์ ์ด์ฉํ์ฌ Subquery ์์ ์ด์ฉํด์ ์ป์ ๊ฒฐ๊ณผ๊ฐ์ (3) Main query ์์ ์ด์ฉํ๋ ๊ตฌ์กฐ๋ฅผ ๊ฐ์ง๋๋ค.
select course_id
from section as S
where semester = ’Fall’ and year= 2017 and
exists (select *
from section as T
where semester = ’Spring’ and year= 2018 and S.course_id = T.course_id);
์ SQL ๋ฌธ์ ๊ฒฝ์ฐ์๋ ๋ฉ์ธ์ฟผ๋ฆฌ์์ ์ป์ ๊ฐ์ ์ด์ฉํ์ฌ ์๋ธ์ฟผ๋ฆฌ๋ฅผ ์คํ์์ผ์ ๊ฐ์ ์ป์ด๋ด๊ณ ์ด๋ฅผ ๋ค์ ๋ฉ์ธ์ฟผ๋ฆฌ์์์ฌ์ฉํ๋, ์ฆ ๋ฉ์ธ์ฟผ๋ฆฌ์ ์๋ธ์ฟผ๋ฆฌ๊ฐ ์๋ก ์ฐธ์กฐํ๋ Correlation subquery ์ ๋๋ค.
1. ๋ฉ์ธ ์ฟผ๋ฆฌ๋ฅผ ์คํํด์ ๊ฐ์ ์ป์
2. ๊ทธ ๊ฐ์ ์ด์ฉํด์ด ์๋ธ ์ฟผ๋ฆฌ๋ฅผ ์คํ์ํด.
3. ์ด๋ก๋ถํฐ ์ป์ ๊ฐ์ผ๋ก ๋ฉ์ธ ์ฟผ๋ฆฌ์ where clause ์ ์กฐ๊ฑด์ ๋ง์กฑํ๋์ง ํ๊ฐํ์ฌ, ํด๋น ๊ฒฐ๊ณผ๊ฐ์ ์ถ์ถํ ์ง ๋ง์ง๋ฅผ ๊ฒฐ์ .
4. ์ ๊ณผ์ ์ ๋ฐ๋ณตํจ. (๋ฉ์ธ ์ฟผ๋ฆฌ์์ ์กด์ฌํ๋ ๊ฐ ๋งํผ)
๊ทธ๋ฌ๋ฏ๋ก 2017 ๋ ๊ฐ์์ ์ด๋ฆฐ ๊ณผ๋ชฉ์ด n ๊ฐ๊ฐ ์๋ ์ํฉ์ด๋ผ๋ฉด
๋ฉ์ธ์ฟผ๋ฆฌ์์ ์ป์ ๊ฐ์ด n ๊ฐ์ธ ๊ฒ์ด๊ณ ,
๊ทธ ๊ฐ์ ์ด์ฉํด์ ์๋ธ์ฟผ๋ฆฌ๋ฅผ ์คํํด์ผ ํ๋ ์ํฉ์ด๋ฏ๋ก,
์๋ธ์ฟผ๋ฆฌ๊ฐ n ๋ฒ ๋ฐ๋ณต์ ์ผ๋ก ์คํ๋๋ฉด์
๋ฉ์ธ์ฟผ๋ฆฌ์ where ์ exist ์ ๋ฐ๋ผ์ ๋ฐ์ดํฐ๊ฐ ์ถ์ถ๋๋ค๊ณ ํ ์ ์์ ๊ฒ ๊ฐ์ต๋๋ค.
'๐ป Study ! > Database System' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
Natural Join ์ ์ํ์ฑ? (03/22) (0) | 2023.03.22 |
---|---|
[#07] Normalization (0) | 2022.07.18 |
[#06] Database Design Using the E-R Model (0) | 2022.07.18 |
[#01] Introduction (0) | 2022.07.06 |