1. DML, DDL, DCL, TCL ๊ตฌ๋ถ
8. WHERE ์ ์๋ ์ง๊ณ ํจ์๋ฅผ ์ฌ์ฉํ ์ ์๋ค. (์: WHERE AVG(SAL) >= 1800 → X)
10. NULL ๊ฐ์ ์กฐ๊ฑด์ ์์ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ IS NULL, IS NOT NULL์ด๋ ํค์๋๋ฅผ ์ฌ์ฉํด์ผ ํ๋ค.
11. Oracle vs Sql ๊ณต๋ฐฑ ์ฒ๋ฆฌ ๋ฐฉ๋ฒ
query : INSERT INTO ํ ์ด๋ธ VALUES ('', '', '')
์์ ๊ฐ์ query ์คํ์, Oracle์๋ NULL๋ก ์ ๋ ฅ๋๊ณ Sql์๋ ''์ผ๋ก ์ ๋ ฅ๋๋ค.
- Oracle: SELECT * FROM ํ ์ด๋ธ WHERE ์ปฌ๋ผ๋ช IS NULL;
- Sql : SELECT * FROM ํ ์ด๋ธ WHERE ์ปฌ๋ผ๋ช = '';
14. GROUP BY, HAVING
- ์ง๊ณ ํจ์์ ํต๊ผ ์ ๋ณด๋ NULL ๊ฐ์ ๊ฐ์ง ํ์ ์ ์ธํ๊ณ ์ํํ๋ค.
- GROUP BY ์ ์์๋ SELECT ์ ๊ณผ๋ ๋ฌ๋ฆฌ ALIAS ๋ช ์ ์ฌ์ฉํ ์ ์๋ค.
- ์ง๊ณ ํจ์๋ WHERE ์ ์๋ ์ฌ ์ ์๋ค. → ์ง๊ณ ํจ์๋ฅผ ์ฌ์ฉํ ์ ์๋ GROUP BY ์ ๋ณด๋ค WHERE ์ ์ด ๋จผ์ ์ํ๋๋ค.
- WHERE ์ ์ ์ ์ฒด ๋ฐ์ดํฐ๋ฅผ GROUP์ผ๋ก ๋๋๊ธฐ ์ ์ ํ๋ค์ ๋ฏธ๋ฆฌ ์ ๊ฑฐํ๋ค.
16. ์ค๋ผํด์์ ๋ ์ง์ ์ฐ์ฐ์ ์ซ์์ ์ฐ์ฐ๊ณผ ๊ฐ๋ค.
ํน์ ๋ ์ง์ 1์ ๋ํ๋ฉด ํ๋ฃจ๋ฅผ ๋ํ ๊ฒฐ๊ณผ์ ๊ฐ์ผ๋ฏ๋ก 1/24/60 = 1๋ถ์ ์๋ฏธํ๋ค.
1/24/(60/10) = 10๋ถ๊ณผ ๊ฐ๋ค.
20. NULL ๊ด๋ จ ํจ์
- Oracle : NVL(ํํ์1, ํํ์2)
- Sql : ISNULL(ํํ์1, ํํ์2)
→ ํํ์1์ ๊ฐ์ด NULL์ด๋ฉด ํํ์2์ ๊ฐ์ด ์ถ๋ ฅ๋๋ค. (๋จ, ํํ์1๊ณผ ํํ์2์ ๊ฒฐ๊ณผ ๋ฐ์ดํฐ ํ์ ์ด ๊ฐ์์ผ ํ๋ค.)
27. NULL ํฌํจ ์ฐ์ฐ์ ๊ฒฐ๊ณผ
- NULL + 2, 2 + NULL
- NULL - 2, 2 - NULL
- NULL * 2, 2 * NULL
- NULL / 2, 2 / NULL
์ ๊ฒฐ๊ณผ๋ ๋ชจ๋ NULL ์ด๋ค.
28. ORDER BY ์ ํน์ง
- ๊ธฐ๋ณธ์ ์ธ ์ ๋ ฌ ์์๋ ์ค๋ฆ์ฐจ์(ASC)์ด๋ค.
- ์ซ์ํ ๋ฐ์ดํฐ ํ์ ์ ์ค๋ฆ์ฐจ์์ผ๋ก ์ ๋ ฌํ์ ๊ฒฝ์ฐ์ ๊ฐ์ฅ ์์ ๊ฐ๋ถํฐ ์ถ๋ ฅ๋๋ค.
- ๋ ์งํ ๋ฐ์ดํฐ ๋ค์ ์ ์ค๋ฆ์ฐจ์์ผ๋ก ์ ๋ ฌํ์ ๊ฒฝ์ฐ ๋ ์ง ๊ฐ์ด ๊ฐ์ฅ ์ด๋ฅธ ๊ฐ์ด ๋จผ์ ์ถ๋ ฅ๋๋ค.
- Oracle์์๋ NULL ๊ฐ์ ๊ฐ์ฅ ํฐ ๊ฐ์ผ๋ก ๊ฐ์ฃผํ์ฌ ์ค๋ฆ์ฐจ์์ผ๋ก ์ ๋ ฌํ์ ๊ฒฝ์ฐ์ ๊ฐ์ฅ ๋ง์ง๋ง์, ๋ด๋ฆผ์ฐจ์์ผ๋ก ์ ๋ ฌํ์ ๊ฒฝ์ฐ์๋ ๊ฐ์ฅ ๋จผ์ ์์นํ๋ค.
- ๋ฐ๋ฉด, SQL Server์์๋ NULL ๊ฐ์ ๊ฐ์ฅ ์์ ๊ฐ์ผ๋ก ๊ฐ์ฃผํ์ฌ ์ค๋ฆ์ฐจ์์ผ๋ก ์ ๋ ฌํ์ ๊ฒฝ์ฐ์๋ ๊ฐ์ฅ ๋จผ์ , ๋ด๋ฆผ์ฐจ์์ผ๋ก ์ ๋ ฌํ์ ๊ฒฝ์ฐ์๋ ๊ฐ์ฅ ๋ง์ง๋ง์ ์์นํ๋ค.
29. ์ค๋ฅ๊ฐ ๋ฐ์ํ๋ SQL
SELECT ์ง์ญ, SUM(๋งค์ถ๊ธ์ก) AS ๋งค์ถ๊ธ์ก
FROM ์ง์ญ๋ณ๋งค์ถ
GROUP BY ์ง์ญ
ORDER BY ๋
DESC;
→ GROUP BY ์ ์ ๋ช ์๋์ง์์ ์ปฌ๋ผ์ ๋ค๋ฅธ ์ ์ ์ง๊ณ ํจ์์ ๊ฐ์ด ์ฌ์ฉํ๋ ๊ฒ์ ์ ์ธํ๊ณ ๋ ์ฌ์ฉํ ์ ์๋ค.
์ง์ญ์ผ๋ก GROUPING ํ๋๋ฐ, ๋ ์ผ๋ก ์ ๋ ฌํ ์ ์๋ค.
32. SELECT ๋ฌธ์ฅ์ ์คํ ์์๋ FROM → WHERE → GROUP BY → HAVING → SELECT → ORDER BY ์ด๋ค
33. ์ฌ๋ฌ ํ ์ด๋ธ๋ก๋ถํฐ ์ํ๋ ๋ฐ์ดํฐ๋ฅผ ์กฐํํ๊ธฐ ์ํด์๋ ์ ์ฒด ํ ์ด๋ธ ๊ฐ์์์ ์ต์ N - 1 ๊ฐ ๋งํผ์ JOIN ์กฐ๊ฑด์ด ํ์ํ๋ค.
- 5๊ฐ์ ํ ์ด๋ธ๋ก๋ถํฐ ํ์ํ ์นผ๋ผ์ ์กฐํํ๋ ค๊ณ ํ ๋, ์ต์ 4๊ฐ์ JOIN ์กฐ๊ฑด์ด ํ์ํ๋ค.
35. JOIN
- ์ผ๋ฐ์ ์ผ๋ก ์กฐ์ธ์ PK์ FK๊ฐ์ ์ฐ๊ด์ฑ์ ์ํด ์ฑ๋ฆฝ๋๋ค.
- DBMS ์ตํฐ๋ง์ด์ ๋ FROM ์ ์ ๋์ด๋ ํ ์ด๋ธ์ด ์๋ฌด๋ฆฌ ๋ง์๋ ํญ์ 2๊ฐ์ ํ ์ด๋ธ์ฉ ์ง์ ์ง์ด JOIN์ ์ํํ๋ค.
- EQUI JOIN์ ์กฐ์ธ์ ๊ด์ฌํ๋ ํ ์ด๋ธ ๊ฐ์ ์นผ๋ผ ๊ฐ๋ค์ด ์ ํํ๊ฒ ์ผ์นํ๋ ๊ฒฝ์ฐ์ ์ฌ์ฉ๋๋ ๋ฐฉ๋ฒ์ด๋ค.
- EQUI JOIN์ '=' ์ฐ์ฐ์์ ์ํด์๋ง ์ํ๋๋ฉฐ, ๊ทธ ์ด์ธ์ ๋น๊ต ์ฐ์ฐ์๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ์๋ ๋ชจ๋ NON EQUI JOIN์ด๋ค.
- ๋๋ถ๋ถ NON EQUI JOIN์ ์ํํ ์ ์์ง๋ง, ๋๋ก๋ ์ค๊ณ์์ ์ด์ ๋ก ์ํ์ด ๋ถ๊ฐ๋ฅํ ๊ฒฝ์ฐ๋ ์๋ค.
37. ์์ ๊ด๊ณ ์ฐ์ฐ์์ SQL ๋ฌธ์ฅ ๋น๊ต
- SELECT ์ฐ์ฐ์ WHERE ์ ๋ก ๊ตฌํ
- PROJECT ์ฐ์ฐ์ SELECT ์ ๋ก ๊ตฌํ
- (NATURAL) JOIN ์ฐ์ฐ์ ๋ค์ํ JOIN ๊ธฐ๋ฅ์ผ๋ก ๊ตฌํ
- DIVIDE ์ฐ์ฐ์ ํ์ฌ ์ฌ์ฉ๋์ง ์์
43. CROSS JOIN์ E.F.CODD ๋ฐ์ฌ๊ฐ ์ธ๊ธํ ์ผ๋ฐ ์งํฉ ์ฐ์ฐ์์ PRODUCT์ ๊ฐ๋ ์ผ๋ก, ํ ์ด๋ธ ๊ฐ JOIN ์กฐ๊ฑด์ด ์๋ ๊ฒฝ์ฐ ์๊ธธ ์ ์๋ ๋ชจ๋ ๋ฐ์ดํฐ์ ์กฐํฉ์ ๋งํ๋ค. ์กฐ๊ฑด์ ์ด ์๊ฑฐ๋ CROSS JOIN ํค์๋๋ฅผ ์ฌ์ฉํ ์ ์๋ค. ๊ฒฐ๊ณผ๋ ์์ชฝ ์งํฉ์ M*N ๊ฑด์ ๋ฐ์ดํฐ ์กฐํฉ์ด ๋ฐ์ํ๋ค.
44. LEFT OUTER JOIN
์กฐ์ธ ์ํ ์ ๋จผ์ ํ๊ธฐ๋ ์ข์ธก ํ ์ด๋ธ์ ํด๋นํ๋ ๋ฐ์ดํฐ๋ฅผ ๋จผ์ ์ฝ์ ํ, ๋์ค ํ๊ธฐ๋ ์ฐ์ธก ํ ์ด๋ธ์์ JOIN ๋์ ํ ์ด๋ธ์ ์ฝ์ด ์จ๋ค. ์ฆ, Table A์ B๊ฐ ์์ ๋ (Table 'A'๊ฐ ๊ธฐ์ค์ด ๋จ), A์ B๋ฅผ ๋น๊ตํด์ B์ JOIN ์นผ๋ผ์์ ๊ฐ์ ๊ฐ์ด ์์ ๋ ๊ทธ ํด๋น ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ค๊ณ , B์ JOIN ์นผ๋ผ์์ ๊ฐ์ ๊ฐ์ด ์๋ ๊ฒฝ์ฐ์๋ B ํ ์ด๋ธ์์ ๊ฐ์ ธ์ค๋ ์นผ๋ผ๋ค์ NULL๋ก ์ฑ์ด๋ค.
45. FULL OUTER JOIN
์กฐ์ธ ์ํ ์ ์ข์ธก, ์ฐ์ธก ํ ์ด๋ธ์ ๋ชจ๋ ๋ฐ์ดํฐ๋ฅผ ์ฝ์ด JOINํ์ฌ ๊ฒฐ๊ณผ๋ฅผ ์์ฑํ๋ค. ์ฆ, TABLE A์ B๊ฐ ์์ ๋ (TABLE 'A', 'B' ๋ชจ๋ ๊ธฐ์ค์ด ๋จ), RIGHT OUTER JOIN๊ณผ LEFT OUTER JOIN์ ๊ฒฐ๊ณผ๋ฅผ ํฉ์งํฉ์ผ๋ก ์ฒ๋ฆฌํ ๊ฒฐ๊ณผ์ ๋์ผํ๋ค.
49. Oracle์์๋ OUTER JOIN ๊ตฌ๋ฌธ์ (+) ๊ธฐํธ๋ฅผ ์ฌ์ฉํ์ฌ ์ฒ๋ฆฌํ ์๋ ์์ผ๋ฉฐ, ์ด๋ฅผ ANSI ๋ฌธ์ฅ์ผ๋ก ๋ณ๊ฒฝํ๊ธฐ ์ํด์๋ Inner์ชฝ ํ ์ด๋ธ์ ์กฐ๊ฑด์ ์ ON์ ์ ํจ๊ป ์์น์์ผ์ผ ์ ์์ ์ธ OUTER JOIN์ ์ํํ ์ ์๋ค.
50. NULL ์ฐ์ฐ
- ์นผ๋ผ๋ผ๋ฆฌ ์ฐ์ํ ๋ NULL์ ํฌํจํ๋ฉด ๊ฒฐ๊ณผ๋ NULL์ด๋ค.
- ๋ ์ฝ๋๋ผ๋ฆฌ ์ฐ์ฐํ ๋ NULL์ ํฌํจํ๋ฉด ๊ฒฐ๊ณผ๊ฐ NULL์ด ์๋๋ฉฐ, ์ด์ ๋ NULL์ ์ฐ์ฐ์์ ์ ์ธํ๊ธฐ ๋๋ฌธ์ด๋ค.
'๐ ์๊ฒฉ์ฆ > SQLD' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[SQLD] 37ํ ๊ธฐ์ถ ๋ฌธ์ ํ์ด (1) | 2024.03.01 |
---|---|
[๋ ธ๋์ด] ์ค๋ต | ๊ณผ๋ชฉ 2 | SQL ๊ธฐ๋ณธ ๋ฐ ํ์ฉ 99-126 (1) | 2024.02.24 |
[๋ ธ๋์ด] ์ค๋ต | ๊ณผ๋ชฉ 2 | SQL ๊ธฐ๋ณธ ๋ฐ ํ์ฉ 51-98 (0) | 2024.02.23 |
[๋ ธ๋์ด] ์ค๋ต | ๊ณผ๋ชฉ 1 | ๋ฐ์ดํฐ ๋ชจ๋ธ๊ณผ SQL 34-50 (1) | 2024.02.17 |
[๋ ธ๋์ด] ์ค๋ต | ๊ณผ๋ชฉ 1 | ๋ฐ์ดํฐ ๋ชจ๋ธ๋ง์ ์ดํด 1-33 (1) | 2024.02.17 |