51. ๋ค์ค ์ปฌ๋ผ(Multi Column) ์๋ธ์ฟผ๋ฆฌ
: ์๋ธ์ฟผ๋ฆฌ์ ์คํ ๊ฒฐ๊ณผ๋ก ์ฌ๋ฌ ์นผ๋ผ์ ๋ฐํํ๋ค. ๋ฉ์ธ์ฟผ๋ฆฌ์ ์กฐ๊ฑด์ ์ ์ฌ๋ฌ ์นผ๋ผ์ ๋์์ ๋น๊ตํ ์ ์๋ค. ์๋ธ์ฟผ๋ฆฌ์ ๋ฉ์ธ์ฟผ๋ฆฌ์์ ๋น๊ตํ๊ณ ์ ํ๋ ์นผ๋ผ ๊ฐ์์ ์นผ๋ผ์ ์์น๊ฐ ๋์ผํด์ผ ํ๋ค.
53. SET OPERATOR
- ํฉ์งํฉ : UNION
- ๊ต์งํฉ : INTERSECTION
- ์ฐจ์งํฉ : MINUS / EXCEPT
54. ์งํฉ ์ฐ์ฐ์
์งํฉ(SET) ์ฐ์ฐ์๋ฅผ ์ฌ์ฉํ SQL์ ORDER BY ์ ์ ์ต์ข ๊ฒฐ๊ณผ๋ฅผ ์ ๋ ฌํ๋ฉฐ, ๊ฐ์ฅ ๋ง์ง๋ง ์ค์ ํ๋ฒ๋ง ์ฌ์ฉํ ์ ์๋ค.
61. ์ค๋ผํด ๊ณ์ธตํ ์ง์์์ ๋ฃจํธ ๋ ธ๋์ LEVEL ๊ฐ์ 1์ด๋ค.
+ START WITH ์ ์ ๊ณ์ธต ๊ตฌ์กฐ ์ ๊ฐ์ ์์ ์์น๋ฅผ ์ง์ ํ๋ ๊ตฌ๋ฌธ์ด๋ค. ์ฆ, ๋ฃจํธ ๋ฐ์ดํฐ๋ฅผ ์ง์ ํ๋ค. (์์ธ์ค)
+ ORDER SIBLINGS BY : ํ์ ๋ ธ๋(๋์ผ LEVEL) ์ฌ์ด์์ ์ ๋ ฌ์ ์ํํ๋ค.
63. ๊ณ์ธตํ ์ง์๋ฌธ
ํ ์ด๋ธ์ ๊ณ์ธตํ ๋ฐ์ดํฐ๊ฐ ์กด์ฌํ๋ ๊ฒฝ์ฐ ๋ฐ์ดํฐ๋ฅผ ์กฐํํ๊ธฐ ์ํด์ ๊ณ์ธตํ ์ง์(Hierarchical Query)๋ฅผ ์ฌ์ฉํ๋ค. ๊ณ์ธตํ ๋ฐ์ดํฐ๋ ๋์ผ ํ ์ด๋ธ์ ๊ณ์ธต์ ์ผ๋ก ์์์ ํ์ ๋ฐ์ดํฐ๊ฐ ํฌํจ๋ ๋ฐ์ดํฐ๋ฅผ ๋งํ๋ค. ์๋ฅผ ๋ค์ด, ์ฌ์ ํ ์ด๋ธ์์๋ ์ฌ์๋ค ์ฌ์ด์ ์์ ๊ด๊ณ(๊ด๋ฆฌ์)๊ณผ ํ์ ์ฌ์ ๊ด๊ณ๊ฐ ์กด์ฌํ๊ณ ์กฐ์ง ํ ์ด๋ธ์์๋ ์กฐ์ง๋ค ์ฌ์ด์ ์์ ์กฐ์ง๊ณผ ํ์ ์กฐ์ง ๊ด๊ณ๊ฐ ์กด์ฌํ๋ค.
+ SQL Server์์์ ๊ณ์ธตํ ์ง์๋ฌธ์ CTE(Common Table Expression)๋ฅผ ์ฌ๊ท ํธ์ถํจ์ผ๋ก์จ ๊ณ์ธต ๊ตฌ์กฐ๋ฅผ ์ ๊ฐํ๋ค.
+ SQL Server์์์ ๊ณ์ธตํ ์ง์๋ฌธ์ ์ต์ปค ๋ฉค๋ฒ๋ฅผ ์คํํ์ฌ ๊ธฐ๋ณธ ๊ฒฐ๊ณผ ์งํฉ์ ๋ง๋ค๊ณ ์ดํ ์ฌ๊ท ๋ฉค๋ฒ๋ฅผ ์ง์์ ์ผ๋ก ์คํํ๋ค.
+ ์ค๋ผํด ๊ณ์ธตํ ์ง์๋ฌธ์์ PRIOR ํค์๋๋ SELECT, WHERE ์ ์์๋ ์ฌ์ฉํ ์ ์๋ค.
+ PRIOR ์์ = ๋ถ๋ชจ : ๋ถ๋ชจ → ์์ : ์๋ฐฉํฅ
+ PRIOR ๋ถ๋ชจ = ์์ : ์์ → ๋ถ๋ชจ : ์ญ๋ฐฉํฅ
65. Natural Join
Natural Join์ ์ฌ์ฉํ๋ฉด ๊ณตํต๋ ์์ฑ์ ์ฐพ์ ๊ฐ์ ๊ฐ์ ๊ฐ๋ ํญ๋ชฉ๋ผ๋ฆฌ ๊ฒฐํฉ์์ผ์ค๋ค.
๋ง์ฝ ๊ฐ์ ๊ฐ์ ๊ฐ๋ ํญ๋ชฉ์ด ์๋ค๋ฉด ํด๋น ํญ๋ชฉ์ ์ ์ธํ๋ค.
68. ์๋ธ์ฟผ๋ฆฌ
- ์๋ธ์ฟผ๋ฆฌ๋ ๋จ์ผ ํ(Single Row) ๋๋ ๋ณต์ ํ(Multi Row) ๋น๊ต ์ฐ์ฐ์์ ํจ๊ป ์ฌ์ฉํ ์ ์๋ค.
- ์๋ธ์ฟผ๋ฆฌ๋ SELECT ์ , FROM ์ , HAVING ์ , ORDER BY ์ ๋ฑ์์ ์ฌ์ฉ์ด ๊ฐ๋ฅํ๋ค.
- ์๋ธ์ฟผ๋ฆฌ์ ๊ฒฐ๊ณผ๊ฐ ๋ณต์ ํ ๊ฒฐ๊ณผ๋ฅผ ๋ฐํํ๋ ๊ฒฝ์ฐ์๋ IN, ALL, ANY ๋ฑ์ ๋ณต์ ํ ๋น๊ต ์ฐ์ฐ์์ ์ฌ์ฉํ์ฌ์ผ ํ๋ค.
- ์ฐ๊ด(Correlated) ์๋ธ์ฟผ๋ฆฌ๋ ์๋ธ์ฟผ๋ฆฌ๊ฐ ๋ฉ์ธ์ฟผ๋ฆฌ ์นผ๋ผ์ ํฌํจํ๊ณ ์๋ ํํ์ ์๋ธ์ฟผ๋ฆฌ์ด๋ค.
- ๋ค์ค ์ปฌ๋ผ ์๋ธ์ฟผ๋ฆฌ๋ ์๋ธ์ฟผ๋ฆฌ์ ๊ฒฐ๊ณผ๋ก ์ฌ๋ฌ ๊ฐ์ ์นผ๋ผ์ด ๋ฐํ๋์ด ๋ฉ์ธ ์ฟผ๋ฆฌ์ ์กฐ๊ฑด๊ณผ ๋น๊ต๋๋๋ฐ, SQL Server์์๋ ํ์ฌ ์ง์ํ์ง ์๋ ๊ธฐ๋ฅ์ด๋ค.
69. ํจ์ ์ ๋ฆฌ
- PERCENT_RANK : ํํฐ์ ๋ณ ์๋์ฐ์์ ์ ์ผ ๋จผ์ ๋์ค๋ ๊ฒ์ 0์ผ๋ก, ์ ์ผ ๋ฆ๊ฒ ๋์ค๋ ๊ฒ์ 1๋ก ํ์ฌ, ๊ฐ์ด ์๋ ํ์ ์์๋ณ ๋ฐฑ๋ถ์จ์ ๊ตฌํ๋ ํจ์์ด๋ค.
- DENSE_RANK : ์์๋ฅผ ๊ตฌํ๋ ํจ์๋ก ๋์ผํ ์์๋ฅผ ํ๋์ ๋ฑ์๋ก ์ทจ๊ธํ๋ค.
- CUME_DIST : ํํฐ์ ๋ณ ์๋์ฐ์ ์ ์ฒด๊ฑด์์์ ํ์ฌ ํ๋ณด๋ค ์๊ฑฐ๋ ๊ฐ์ ๊ฑด์์ ๋ํ ๋์ ๋ฐฑ๋ถ์จ์ ๊ตฌํ๋ ํจ์์ด๋ค.
- RANK : ํํฐ์ ๋ด์ ORDER BY์ ์ํ ์์๋ฅผ ๊ตฌํ๋ ํจ์๋ก, ๋์ผํ ์์์ ๋ํด์๋ ๋์ผํ ์์๋ฅผ ๋ถ์ฌํ๋ค.
- RATIO_TO_REPORT : ํํฐ์ ๋ด์ ์ฃผ์ด์ง ์นผ๋ผ ๊ฐ์ ํฉ๊ณ์ ๋ํ ํ๋ณ ๋ฐฑ๋ถ์จ์ ์์์ ์ผ๋ก ๊ตฌํ๋ ํจ์์ด๋ค.
- NTILE : ํํฐ์ ๋ณ ์ ์ฒด ๊ฑด์๋ฅผ ์ฃผ์ด์ง ์ธ์๋ก N ๋ฑ๋ถํ ๊ฒฐ๊ณผ๋ฅผ ๋ฐํํ๋ค.
72. ์๋ธ์ฟผ๋ฆฌ
- ๋จ์ผ ํ ์๋ธ์ฟผ๋ฆฌ์ ๋น๊ต ์ฐ์ฐ์๋ก๋ =, <, <=, >, >=, <>๊ฐ ๋์ด์ผ ํ๋ค. IN, ALL ๋ฑ์ ๋น๊ต ์ฐ์ฐ์๋ ๋ค์ค ํ ์๋ธ์ฟผ๋ฆฌ์ ๋น๊ต์ฐ์ฐ์์ด๋ค.
- ๋จ์ผ ํ ์๋ธ์ฟผ๋ฆฌ์ ๋น๊ต์ฐ์ฐ์๋ ๋ค์ค ํ ์๋ธ์ฟผ๋ฆฌ์ ๋น๊ต ์ฐ์ฐ์๋ก ์ฌ์ฉํ ์ ์์ง๋ง, ๋ฐ๋์ ๊ฒฝ์ฐ๋ ๊ฐ๋ฅํ๋ค.
- ๋น ์ฐ๊ด ์๋ธ์ฟผ๋ฆฌ๊ฐ ์ฃผ๋ก ๋ฉ์ธ์ฟผ๋ฆฌ์ ๊ฐ์ ์ ๊ณตํ๊ธฐ ์ํ ๋ชฉ์ ์ผ๋ก ์ฌ์ฉ๋๋ค.
- ๋ฉ์ธ์ฟผ๋ฆฌ์ ๊ฒฐ๊ณผ๊ฐ ์๋ธ์ฟผ๋ฆฌ๋ก ์ ๊ณต๋ ์๋ ์๊ณ , ์๋ธ์ฟผ๋ฆฌ์ ๊ฒฐ๊ณผ๊ฐ ๋ฉ์ธ์ฟผ๋ฆฌ๋ก ์ ๊ณต๋ ์๋ ์์ผ๋ฏ๋ก ์คํ ์์๋ ์ํฉ์ ๋ฐ๋ผ ๋ฌ๋ผ์ง๋ค.
75. ๋ทฐ View ์ ์ฅ์
- ๋ ๋ฆฝ์ฑ : ํ ์ด๋ธ ๊ตฌ์กฐ๊ฐ ๋ณ๊ฒฝ๋์ด๋ ๋ทฐ๋ฅผ ์ฌ์ฉํ๋ ์์ฉ ํ๋ก๊ทธ๋จ์ ๋ณ๊ฒฝํ์ง ์์๋ ๋๋ค.
- ํธ๋ฆฌ์ฑ : ๋ณต์กํ ์ง์๋ฅผ ๋ทฐ๋ก ์์ฑํ์ฌ ๊ด๋ จ ์ง์๋ฅผ ๋จ์ํ๊ฒ ์์ฑํ ์ ์๋ค. ๋ํ ํด๋น ํํ์ SQL์ ์์ฃผ ์ฌ์ฉํ ๋ ๋ทฐ๋ฅผ ์ด์ฉํ๋ฉด ํธ๋ฆฌํ๊ฒ ์ฌ์ฉํ ์ ์๋ค.
- ๋ณด์์ฑ : ์ง์์ ๊ธ์ฌ์ ๋ณด์ ๊ฐ์ด ์จ๊ธฐ๊ณ ์ถ์ ์ ๋ณด๊ฐ ์กด์ฌํ๋ค๋ฉด, ๋ทฐ๋ฅผ ์์ฑํ ๋ ํด๋น ์นผ๋ผ์ ๋นผ๊ณ ์์ฑํ์ฌ ์ฌ์ฉ์์๊ฒ ์ ๋ณด๋ฅผ ๊ฐ์ถ ์ ์๋ค.
79. ์๋ธ์ฟผ๋ฆฌ๋ ๋จ์ผ ํ ๋๋ ๋ณต์ ํ ๋น๊ต ์ฐ์ฐ์์ ํจ๊ป ์ฌ์ฉ ๊ฐ๋ฅํ๋ค. ๋จ์ผ ํ ๋น๊ต ์ฐ์ฐ์๋ ์๋ธ์ฟผ๋ฆฌ์ ๊ฒฐ๊ณผ๊ฐ ๋ฐ๋์ 1๊ฑด ์ดํ์ฌ์ผ ํ๊ณ , ๋ณต์ ํ ๋น๊ต ์ฐ์ฐ์๋ ์๋ธ์ฟผ๋ฆฌ์ ๊ฒฐ๊ณผ ๊ฑด์์ ์๊ด์๋ค.
# ์์
SELECT EMPNO, SAL
FROM EMP
WHERE SAL >= (SELECT MAX(SAL) FROM EMP GROUP BY DEPTNO);
# -> '๋จ์ผ ํ ํ์ ์ง์์ 2๊ฐ ์ด์์ ํ์ด ๋ฆฌํด๋์์ต๋๋ค.' ์ค๋ฅ ๋ฐ์ํ๋ค.
84. ์๋์ฐ ํจ์ Window function
- PARTITION BY ์ ๊ณผ GROUP BY ์ ์ ์๋ฏธ์ ์ผ๋ก ์ ์ฌํ๋ค.
- PARTITION BY ์ ์ด ์์ผ๋ฉด ์ ์ฒด ์งํฉ์ ํ๋์ Partition์ผ๋ก ์ ์ํ ๊ฒ๊ณผ ๋์ผํ๋ค.
- ์๋์ฐ ํจ์๋ ๊ฒฐ๊ณผ์ ๋ํ ํจ์์ฒ๋ฆฌ์ด๊ธฐ ๋๋ฌธ์ ๊ฒฐ๊ณผ ๊ฑด์๋ ์ค์ง ์๋๋ค.
- ์๋์ฐ ํจ์ ์ ์ฉ ๋ฒ์๋ Partition์ ๋์ ์ ์๋ค.
90. LAG ํจ์
LAG ํจ์๋ฅผ ์ด์ฉํด ํํฐ์ ๋ณ ์๋์ฐ์์ ์ด์ ๋ช ๋ฒ์งธ ํ์ ๊ฐ์ ๊ฐ์ ธ์ฌ ์ ์๋ค. ์ดํ ๋ช ๋ฒ์งธ ํ์ ๊ฐ์ ๊ฐ์ ธ์ค๋ ๊ฒ์ LEAD ํจ์์ด๋ฉฐ, SQL Server์์๋ ์ง์ํ์ง ์๋ ํจ์์ด๋ค.
91. REVOKE ๋ฌธ์ ์ฌ์ฉํ์ฌ ๊ถํ์ ์ทจ์ํ๋ฉด ๊ถํ์ ์ทจ์๋นํ ์ฌ์ฉ์๊ฐ WITH GRANT OPTION์ ํตํด์ ๋ค๋ฅธ ์ฌ์ฉ์์๊ฒ ํ๊ฐํ๋ ๊ถํ๋ค๋ ๋ชจ๋ ์ฐ์์ ์ผ๋ก ์ทจ์๋๋ค.
'๐ ์๊ฒฉ์ฆ > SQLD' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[SQLD] 37ํ ๊ธฐ์ถ ๋ฌธ์ ํ์ด (1) | 2024.03.01 |
---|---|
[๋ ธ๋์ด] ์ค๋ต | ๊ณผ๋ชฉ 2 | SQL ๊ธฐ๋ณธ ๋ฐ ํ์ฉ 99-126 (1) | 2024.02.24 |
[๋ ธ๋์ด] ์ค๋ต | ๊ณผ๋ชฉ 2 | SQL ๊ธฐ๋ณธ ๋ฐ ํ์ฉ 1-50 (0) | 2024.02.18 |
[๋ ธ๋์ด] ์ค๋ต | ๊ณผ๋ชฉ 1 | ๋ฐ์ดํฐ ๋ชจ๋ธ๊ณผ SQL 34-50 (1) | 2024.02.17 |
[๋ ธ๋์ด] ์ค๋ต | ๊ณผ๋ชฉ 1 | ๋ฐ์ดํฐ ๋ชจ๋ธ๋ง์ ์ดํด 1-33 (1) | 2024.02.17 |