2. ๋ฐ์ดํฐ ๋ชจ๋ธ๋ง
- ๊ฐ๋ ์ ๋ชจ๋ธ๋ง : ๊ฐ์ฒด์ ๊ฐ์ฒด๋ค ๊ฐ์ ๊ด๊ณ์์ ER๋ค์ด์ด๊ทธ๋จ์ ๋ง๋๋ ๊ณผ์
- ๋ ผ๋ฆฌ์ ๋ชจ๋ธ๋ง : ER๋ค์ด์ด๊ทธ๋จ์ ์ฌ์ฉํ์ฌ ๊ด๊ณ ์คํค๋ง ๋ชจ๋ธ์ ๋ง๋๋ ๊ณผ์
- ๋ฌผ๋ฆฌ์ ๋ชจ๋ธ๋ง : ๊ด๊ณ ์คํค๋ง ๋ชจ๋ธ์ ๋ฌผ๋ฆฌ์ ๊ตฌ์กฐ๋ฅผ ์ ์ํ๊ณ ๊ตฌํํ๋ ๊ณผ์
6. ๊ธฐ๋ณธํค ์์ฑ์ ์ํฐํฐ๋ฅผ ์๋ณํ ์ ์๋ ์์ฑ์ด๊ณ , ์ธ๋ํค ์์ฑ์ ๋ค๋ฅธ ์ํฐํฐ์ ๊ด๊ณ์ ํฌํจ๋๋ ์์ฑ์ด๋ค. ๋ค๋ฅธ ์ํฐํฐ์ ๊ด๊ณ์ ํฌํจ๋์ง ์๋ ์์ฑ์ ์ผ๋ฐ ์์ฑ์ด๋ผ๊ณ ํ๋ค.
9. ERD ํ๊ธฐ๋ฒ
ERD ํ๊ธฐ๋ฒ ์ค IE ํ๊ธฐ๋ฒ์ ๊ด๊ณ์ 1:N ๊ด๊ณ์์ N์ชฝ์ ์๋ฐ์ ํ์ํ๊ณ ์ ํ, ํ์ ์ฐธ์ฌ๊ด๊ณ์์ ์ ํ ์ฐธ์ฌ(or)์ O, ํ์ ์ฐธ์ฌ์ | ๋ก ํ์ํ๋ค.
10. ์๋ณ์์ ํน์ง
- ์ ์ผ์ฑ : ์ฃผ์๋ณ์์ ์ํด ์ํฐํฐ๋ด์ ๋ชจ๋ ์ธ์คํด์ค๋ค์ด ์ ์ผํ๊ฒ ๊ตฌ๋ถ๋์ด์ผ ํจ
- ์ต์์ฑ : ์ฃผ์๋ณ์๋ฅผ ๊ตฌ์ฑํ๋ ์์ฑ์ ์๋ ์ ์ผ์ฑ์ ๋ง์กฑํ๋ ์ต์์ ์๊ฐ ๋์ด์ผ ํจ
- ๋ถ๋ณ์ฑ : ์ง์ ๋ ์ฃผ์๋ณ์ ๊ฐ์ ์์ฃผ ๋ณํ์ง ์๋ ๊ฒ์ด์ด์ผ ํจ
- ์กด์ฌ์ฑ : ์ฃผ์๋ณ์๊ฐ ์ง์ ์ด ๋๋ฉด ๋ฐ๋์ ๊ฐ์ด ๋ค์ด์์ผ ํจ (NOT NULL)
12. ๋์ฉ๋ ๋ฐ์ดํฐ๋ฅผ ์กฐ์ธํ ๋ ํํ ํ ์ด๋ธ์ ์ธ๋ฑ์ค๊ฐ ์์ผ๋ฉด Nested Loop Join์ ์ฌ์ฉํ๋ฉด ์ ๋๋ค. ๋ฌผ๋ก ์ตํฐ๋ง์ด์ ๊ฐ ์ด๋ฐ ๊ฒฝ์ฐ์ ์๋์ผ๋ก Nested Loop Join์ผ๋ก ์คํํ์ง ์๊ณ Hash Join ํน์ Sort Merge, Full Scan์ ์ฌ์ฉํ๋ค.
20. ๋ค์ ์ฟผ๋ฆฌ์ ๊ฒฐ๊ณผ๊ฐ?
SELECT NVL(COUNT(*), 9999) FROM TABLE WHERE 1=2;
WHERE 1=2 : ๊ณต์งํฉ์ด๋ผ๋ ๋ป (False)
NVL : COUNT(*) IS NULL ์ด๋ฉด 9999, COUNT(*) IS NOT NULL ์ด๋ฉด COUNT(*) ๋ฐํ
๊ทธ๋ฌ๋ ๊ณต์งํฉ์ด๋ฏ๋ก COUNT(*) = 0
๋ฐ๋ผ์ 0์ ์ถ๋ ฅํ๋ค.
* WHERE 1=1 : TRUE
* WHERE 1=2 : FALSE
22. PL/SQL์ ์ ์ฐจํ ์ธ์ด๋ก PL/SQL ๋ด๋ถ์์ ํ ์ด๋ธ์ ์์ฑํ ์ ์๋ค.
PL/SQL ๋ด๋ถ์์ ํ ์ด๋ธ์ ์์ฑํ๋ ์ด์ ๋ ์์ ํ ์ด๋ธ๋ก ์ ๊น ์ฌ์ฉํ๊ธฐ ์ํ ์ฉ๋๊ฐ ๋ง๋ค.
* PL/SQL ๊ตฌ์กฐ
- ๊ธฐ๋ณธ์ ์ผ๋ก BLOCK ๊ตฌ์กฐ๋ก ๋์ด์๋ค. BLOCK ์์๋ ๊ธฐ๋ณธ์ ์ผ๋ก DECLARE, BEGIN, EXCEPTION์ผ๋ก ๊ตฌ์ฑ๋์ด ์์ผ๋ฉฐ ๋ง์ง๋ง์๋ END๋ก BLOCK์ ๋์ ํํํ๋ค.
- DECLARE : ์ ์ธ๋ถ๋ผ๊ณ ํ๋ฉฐ BEGINE ~ END์์ ์ฌ์ฉํ ๋ณ์(์์)์ ๋ํ์ฌ ์ ์ํ๋ ๋ถ๋ถ์ด๋ค. ์ ์ํ ๊ฒ ์๋ค๋ฉด ์๋ต ๊ฐ๋ฅํ๋ค.
- BEGIN : ์คํ ๋ถ๋ผ๊ณ ํ๋ฉฐ ์ฒ๋ฆฌํ๊ณ ์ ํ๋ SQL๋ฌธ๊ณผ ํ์ํ ๋ก์ง์ ๊ธฐ์ ํ๋ ๋ถ๋ถ์ด๋ค.
- EXCEPTION : ์์ธ์ฒ๋ฆฌ ๋ถ๋ผ๊ณ ํ๋ฉฐ ์คํ ๋์ค์ ์๋ฌ๊ฐ ๋ฐ์ํ ๊ฒฝ์ฐ์ ์๋ฌ๋ฅผ ์ฒ๋ฆฌํ๋ ๋ก์ง์ ๊ธฐ์ ํ๋ ๋ถ๋ถ์ด๋ค. ์๋ต๊ฐ๋ฅํ๋ค.
28. ์ธ๋ฑ์ค์ ๋ํด์ ์ฐ์ฐ์ ํ๋ฉด ์ธ๋ฑ์ค๊ฐ ๋ณํ์ด ๋๋ฏ๋ก ์ธ๋ฑ์ค๋ฅผ ์ฌ์ฉํ ์๊ฐ ์๋ค.
29. ๋ถ์ฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค
- ์ฅ์ : ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ ๋ขฐ์ฑ๊ณผ ๊ฐ์ฉ์ฑ์ด ๋๋ค. ๋ถ์ฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค๊ฐ ๋ณ๋ ฌ ์ฒ๋ฆฌ๋ฅผ ์ํํ๊ธฐ ๋๋ฌธ์ ๋น ๋ฅธ ์๋ต์ด ๊ฐ๋ฅํ๋ค. ๋ถ์ฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ถ๊ฐํ์ฌ ์์คํ ์ฉ๋ ํ์ฅ์ด ์ฝ๋ค.
- ๋จ์ : ๋ฐ์ดํฐ๋ฒ ์ด์ค๊ฐ ์ฌ๋ฌ ๋คํธ์ํฌ๋ฅผ ํตํด์ ๋ถ๋ฆฌ๋์ด ์๊ธฐ ๋๋ฌธ์ ๊ด๋ฆฌ์ ํต์ ๊ฐ ์ด๋ ต๋ค. ๋ณด์๊ด๋ฆฌ๊ฐ ์ด๋ ต๋ค. ๋ฐ์ดํฐ ๋ฌด๊ฒฐ์ฑ ๊ด๋ฆฌ๊ฐ ์ด๋ ต๋ค. ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ค๊ณ๊ฐ ๋ณต์กํ๋ค.
34. ์ฐ์ฐ์ ์ฐ์ ์์
์ฐ์ ์์ | ์ฐ์ฐ์ |
1 | ์ฐ์ ์ฐ์ฐ์ (*, /, +, -) |
2 | ์ฐ๊ฒฐ ์ฐ์ฐ์ (||) |
3 | ๋น๊ต ์ฐ์ฐ์ (<, >, <=, >=, <>, =) |
4 | IS NULL, LIKE, IN |
5 | BETWEEN |
6 | NOT ์ฐ์ฐ์ |
7 | AND ์ฐ์ฐ์ |
8 | OR ์ฐ์ฐ์ |
35. SELF JOIN
๋์ผํ ํ ์ด๋ธ์์ ๋ฐ์ํ๋ ์กฐ์ธ์ ์๋ฏธํ๋ฉฐ, FROM ์ ์ ๋์ผํ ํ ์ด๋ธ๋ช ์ด ๋ ๋ฒ ์ด์ ๋ํ๋๋ค. ๊ทธ๋ฆฌ๊ณ SELF JOIN์ ํ๊ธฐ ์ํด์ ๋์ผํ ํ ์ด๋ธ์ ๋ ๋ฒ ์ด์ ์ฌ์ฉํ๋ฏ๋ก FROM ์ ์ ๋ณ์นญ(Alias)์ ์ฌ์ฉํด์ผ ํ๋ค.
42. SQL ์คํ ์์
- FROM ์ ์์ ํ ์ด๋ธ์ ๋ชฉ๋ก์ ๊ฐ์ ธ์จ๋ค.
- WHERE ์ ์์ ๊ฒ์ ์กฐ๊ฑด์ ์ผ์นํ์ง ์๋ ํ์ ์ ์ธํ๋ค.
- GROUP BY ์ ์ ๋ช ์๋ ํ์ ๊ฐ์ ๊ทธ๋ฃนํํ๋ค.
- HAVING ์ ์ GROUP BY ์ ๋ก ๊ทธ๋ฃนํ๋ ๋ฐ์ดํฐ๋ฅผ ๋์์ผ๋ก ์กฐ๊ฑด์ ์ ์ํ๋ค.
- SELECT ์ ์์ ๋ช ์ํ ์นผ๋ผ๋ค์ ์กฐํํ๋ค.
- ORDER BY ์ ์์ ๋ช ์ํ ์นผ๋ผ๊ฐ์ ๊ธฐ์ค์ผ๋ก ์ ๋ ฌํ ํ ์ถ๋ ฅํ๋ค.
43. ์์ ๊ด๊ณ ์ฐ์ฐ์
- SELECT ( σ )
- PROJECT ( π )
- JOIN ( โ )
- DIVISION ( ÷ )
50. CROSS JOIN
CROSS JOIN์ ๊ฒฐ๊ณผ ๊ฐ์๋ ๋ ํ ์ด๋ธ์ ํ์ ๊ฐ์๋ฅผ ๊ณฑํ ๊ฐ์๊ฐ ๋๋ค.
CROSS JOIN์ ์ํธ ์กฐ์ธ์ด๋ผ๊ณ ๋ ๋ถ๋ฆฌ๋ฉฐ, ํ ์ชฝ ํ ์ด๋ธ์ ๋ชจ๋ ํ๋ค๊ณผ ๋ค๋ฅธ ํ ์ด๋ธ์ ๋ชจ๋ ํ์ ์กฐ์ธ์ํค๋ ๊ธฐ๋ฅ์ ํ๋ค. ์ด๋ฌํ CROSS JOIN์ ์นดํ ์์ ๊ณฑ(Cartesian Product)๋ผ๊ณ ๋ ํ๋ค.
์ด ๋ธ๋ก๊ทธ์ ์์ฑ๋ ๋ฌธ์ ๋ฅผ ์ฐธ๊ณ ํ์ฌ ํ์์ผ๋ฉฐ
ํ์ด๋ณด๊ณ ํ๋ฆฐ ๋ฌธ์ , ์๊ธฐํด์ผํ๋ ๋ถ๋ถ๋ค์ ์ ๋ฆฌํ์์ต๋๋ค.
[SQLD] 38ํ ๊ธฐ์ถ ๋ฌธ์ ( 50๋ฌธ์ / ์ ๋ต ) + ํด์ค์ถ๊ฐ
โณ๋จ์์๊ฐ : 87๋ถ27์ด ๐SQLD. ์ 38 ํ ๊ธฐ์ถ ๋ฌธ์ ๋ฌธ์ 1. ๋ค์์ ERD์ ๋ํ ์ค๋ช ์ผ๋ก ์ฌ๋ฐ๋ฅด์ง ์์ ๊ฒ์? ์ ๋ตํ์ธ๐ผ 1) ์๊ธ์ข ํฉ๋ณ์์๋ ์์ฌ๊ฐ ๊ทผ๋ฌดํ์ง ์์์๊ฐ ์๋ค. 2) ํ ๊ฐ์ ์๊ธ์ข ํฉ
yunamom.tistory.com
'๐ ์๊ฒฉ์ฆ > SQLD' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[SQLD] ๋น์ ๊ณต์ ํ์ง์์ ๊ณต๋ถ ํ๊ธฐ (1) | 2024.03.11 |
---|---|
[SQLD] 39ํ ๊ธฐ์ถ ๋ฌธ์ ํ์ด (0) | 2024.03.03 |
[SQLD] 37ํ ๊ธฐ์ถ ๋ฌธ์ ํ์ด (1) | 2024.03.01 |
[๋ ธ๋์ด] ์ค๋ต | ๊ณผ๋ชฉ 2 | SQL ๊ธฐ๋ณธ ๋ฐ ํ์ฉ 99-126 (1) | 2024.02.24 |
[๋ ธ๋์ด] ์ค๋ต | ๊ณผ๋ชฉ 2 | SQL ๊ธฐ๋ณธ ๋ฐ ํ์ฉ 51-98 (0) | 2024.02.23 |