์งํฉ์ฐ์ฐ์
๋ ๊ฐ ์ด์์ ํ
์ด๋ธ์์ ์กฐ์ธ์ ์ฌ์ฉํ์ง ์๊ณ ์ฐ๊ด๋ ๋ฐ์ดํฐ๋ฅผ ์กฐํํ ๋ ์ฌ์ฉ
SELECT ์ ์ ์นผ๋ผ ์๊ฐ ๋์ผํ๊ณ , SELECT ์ ์ ๋์ผ ์์น์ ์กด์ฌํ๋ ์นผ๋ผ์ ๋ฐ์ดํฐ ํ์
์ด ์ํธ ํธํํ ๋ ์ฌ์ฉ ๊ฐ๋ฅ
์ผ๋ฐ ์งํฉ ์ฐ์ฐ์
| UNION | ํฉ์งํฉ | ์ค๋ณต์ ์ ๊ฑฐํ ๊ฒฐ๊ณผ์ ํฉ ์ ๋ ฌ |
| UNION ALL | ์ค๋ณต์ ํฌํจํ ๊ฒฐ๊ณผ์ ํฉ์ ๊ฒ์, ์ ๋ ฌX, ๋น ๋ฆ | |
| INTERSECT | ๊ต์งํฉ | ์์ชฝ ๋ชจ๋์์ ํฌํจ๋ ํ์ ๊ฒ์ |
| MINUS (= EXCEPT) | ์ฐจ์งํฉ | ์ฒซ ๋ฒ์งธ ๊ฒ์ ๊ฒฐ๊ณผ์์ ๋ ๋ฒ์งธ ๊ฒ์ ๊ฒฐ๊ณผ๋ฅผ ์ ์ธํ ๋๋จธ์ง๋ฅผ ๊ฒ์ |
| CROSS JOIN | ๊ณฑ์งํฉ |
* ALIAS๋ ์ฒ์ ํ
์ด๋ธ, ์ ๋ ฌ์ ๋ง์ง๋ง ํ
์ด๋ธ ๊ธฐ์ค
์์ ๊ด๊ณ์ฐ์ฐ์ : ๊ด๊ณํ DB๋ฅผ ์๋กญ๊ฒ ๊ตฌํ
1. SELECT -> WHERE์ ๋ก ๊ตฌํ
2. PROJECT -> SELECT์ ๋ก ๊ตฌํ
3. NATRUAL JOIN -> ๋ค์ํ JOIN์ผ๋ก ๊ตฌํ
4. DIVIDE -> ์ฌ์ฉd ์ ํจ ex) {a,x}{a,y}{a,z} divdie {x,z} = {a}
FROM์ JOINํํ
Equi Join : ์กฐ์ธ ์กฐ๊ฑด์์ '='๋ฅผ ์ฌ์ฉ, ๋ ํ
์ด๋ธ์์ ๊ณตํต์ ์ผ๋ก ์กด์ฌํ๋ ์ปฌ๋ฝ์ ๊ฐ์ด ์ผ์น๋๋ ํ์ ์ฐ๊ฒฐํด์ ๊ฒฐ๊ณผ๋ฅผ ์์ฑ
Non-Equi Join : '=' ์ฐ์ฐ์ ์ด์ธ์ ๋น๊ต ์ฐ์ฐ์๋ฅผ ์ฌ์ฉ

| INNER JOIN | JOIN ์กฐ๊ฑด์์ ๋์ผํ ๊ฐ์ด ์๋ ํ๋ง ๋ฐํ USING์ด๋ ON์ ์ ํ์์ ์ผ๋ก ์ฌ์ฉ * on ์กฐ๊ฑด๊ณผ where ์กฐ๊ฑด์ ๊ฒฐ๊ณผ๊ฐ ๊ฐ๋ค |
| NATURAL JOIN | Oracle ๋ ํ ์ด๋ธ ๊ฐ์ ๋์ผํ ์ด๋ฆ์ ๊ฐ๋ ๋ชจ๋ ์นผ๋ผ๋ค์ ๋ํด EQUI JOIN ์ํ NATURAL JOIN์ด ๋ช ์๋๋ฉด ์ถ๊ฐ๋ก USING, ON, WHERE JOIN์ ์์ ์กฐ๊ฑด์ ์ ์ํ ์ ์๋ค |
| ON ์กฐ๊ฑด์ | USING ์กฐ๊ฑด์ |
| Oracle ๊ฐ์ ์ด๋ฆ์ ๊ฐ์ง ์นผ๋ผ๋ค ์ค์์ ์ํ๋ ์นผ๋ผ์ ๋ํด์๋ง ์ ํ์ ์ผ๋ก EQUI JOIN์ ํ ์ ์๋ค JOIN ์นผ๋ผ์ ๋ํด์ ALIAS๋ ํ ์ด๋ธ ์ด๋ฆ๊ณผ ๊ฐ์ ์ ๋์ฌ๋ฅผ ๋ถ์ผ ์ ์๋ค |
JOIN์ ์ฌ์ฉ๋ ์ปฌ๋ผ์ ์ง์ (๊ฐ์์ผ ํ๋ ์์ฑ ๋ช
์) ON์กฐ๊ฑด์ ๊ณผ WHERE์กฐ๊ฑด์ ์ ๋ถ๋ฆฌํ์ฌ ์ดํด๊ฐ ์ฌ์ ์นผ๋ผ๋ช ์ด ๋ค๋ฅด๋๋ผ๋ JOIN์กฐ๊ฑด์ ์ฌ์ฉ ๊ฐ๋ฅ ALIAS๋ ํ ์ด๋ธ๋ช ๋ฐ๋์ ์ฌ์ฉ SELECT ์นผ๋ผ FROM ํ ์ด๋ธa JOIN ํ ์ด๋ธb USING (์กฐ์ธ ์นผ๋ผ๋ช ) |
| CROSS JOIN | = ์นดํฐ์
๊ณฑ (์กฐ์ธ ์กฐ๊ฑด์ ์ ์ ์ง ์๊ฒ ๋๋ฉด ํด๋น ํ
์ด๋ธ์ ๋ํ ๋ชจ๋ ๋ฐ์ดํฐ๋ฅผ ์ ๋ถ ๊ฐ์ ธ์ด) ์์ชฝ ์งํฉ์ M*N๊ฑด์ ๋ฐ์ดํฐ ์กฐํฉ ๋ฐ์ |
| OUTER JOIN | JOIN ์กฐ๊ฑด์์ ๋์ผํ ๊ฐ์ด ์๋ ํ๋ ๋ฐํ ๊ฐ๋ฅํ๋ค USING์ด๋ ON์กฐ๊ฑด์ ๋ฐ๋์ ์ฌ์ฉํด์ผ ํจ SQL ์์์ (+) ์๋ถ์ ์ชฝ์ผ๋ก JOINํ๋ค |
| LEFT OUTER JOIN = LEFT JOIN |
์ผ์ชฝ ํ
์ด๋ธ A์ ๋ชจ๋ ๋ฐ์ดํฐ์ A์ B ํ
์ด๋ธ์ ์ค๋ณต๋ฐ์ดํฐ๋ค์ด ๊ฒ์ ์ฐ์ธก๊ฐ์์ ๊ฐ์ ๊ฐ์ด ์๋ ๊ฒฝ์ฐ NULL๊ฐ์ผ๋ก ์ฑ์ด๋ค ex) SELECT * FROM ํ ์ด๋ธa LEFT OUTER JOIN ํ ์ด๋ธb ON (a.๋ฒํธ = b.๋ฒํธ) |
| RIGHT OUTER JOIN = RIGHT JOIN |
์ค๋ฅธ์ชฝ ํ ์ด๋ธ B์ ๋ชจ๋ ๋ฐ์ดํฐ์ B์ A ํ ์ด๋ธ์ ์ค๋ณต๋ฐ์ดํฐ๋ค์ด ๊ฒ์ |
| FULL OUTER JOIN | ์ข์ฐ์ธก ํ
์ด๋ธ์ ๋ชจ๋ ๋ฐ์ดํฐ๋ฅผ ์ฝ์ด JOINํ์ฌ ๊ฒฐ๊ณผ๋ฅผ ์์ฑํ๋ค ์ค๋ณต ๋ฐ์ดํฐ๋ ์ญ์ |
๊ณ์ธตํ ์ง์
ํ
์ด๋ธ์ ๊ณ์ธตํ ๋ฐ์ดํฐ๊ฐ ์กด์ฌํ๋ ๊ฒฝ์ฐ ๋ฐ์ดํฐ๋ฅผ ์กฐํํ๊ธฐ ์ํด ์ฌ์ฉ
* ๊ณ์ธตํ ๋ฐ์ดํฐ : ๋์ผ ํ
์ด๋ธ์ ๊ณ์ธต์ ์ผ๋ก ์์/ํ์ ๋ฐ์ดํฐ๊ฐ ํฌํจ๋ ๋ฐ์ดํฐ ex) ๋ถ์table์์ ์์๋ถ์, ํ์๋ถ์
๊ณ์ธตํ์ง์ ํน์ง
SQL Server์์์ ๊ณ์ธตํ ์ง์๋ฌธ์ STE๋ฅผ ์ฌ๊ท ํธ์ถํจ์ผ๋ก์จ ๊ณ์ธต ๊ตฌ์กฐ๋ฅผ ์ ๊ฐ
SQL Server์์์ ๊ณ์ธตํ ์ง์๋ฌธ์ ์ต์ปค ๋ฉค๋ฒ๋ฅผ ์คํํ์ฌ ๊ธฐ๋ณธ ๊ฒฐ๊ณผ ์งํฉ์ ๋ง๋ค๊ณ , ์ดํ ์ฌ๊ท ๋ฉค๋ฒ๋ฅผ ์ง์์ ์ผ๋ก ์คํ
Oracle์ ๊ณ์ธตํ ์ง์๋ฌธ์์ WHERE์ ์ ๋ชจ๋ ์ ๊ฐ๋ฅผ ์งํํ๊ณ , ํํฐ ์กฐ๊ฑด์ผ๋ก์ ์กฐ๊ฑด์ ๋ง์กฑํ๋ ๋ฐ์ดํฐ๋ง์ ์ถ์ถํ๋๋ฐ ์ฌ์ฉ
Oracle์ ๊ณ์ธตํ ์ง์๋ฌธ์์ PRIOR ํค์๋๋ SELECT, WHERE, CONNECT BY์ ์ ์ฌ์ฉํ ์ ์๋ค
๊ณ์ธตํ ์ง์ SQL๋ฌธ
| START WITH | ๊ณ์ธต ๊ตฌ์กฐ ์ ๊ฐ์ ์์ ์์น ์ง์ |
| CONNECT BY | ๋ค์์ ์ ๊ฐ๋ ์์ ๋ฐ์ดํฐ ์ง์ |
| PRIOR | CONNECT BY์ ์ ์ฌ์ฉ ํ์ฌ ์ฝ์ ์นผ๋ผ์ ์ง์ PRIOR = ๋ถ๋ชจ ํํ๋ฅผ ์ฌ์ฉํ๋ฉด ๊ณ์ธต๊ตฌ์กฐ์์ ๋ถ๋ชจ ๋ฐ์ดํฐ์์ ์์ ๋ฐ์ดํฐ ๋ฐฉํฅ์ผ๋ก (๋ถ๋ชจ -> ์์) ์ ๊ฐํ๋ ์๋ฐฉํฅ ์ ๊ฐ๋ฅผ ํ๋ค. ๋ฐ๋๋ ์ญ๋ฐฉํฅ ์ ๊ฐ |
| NOCYCLE | ๋์ผํ ๋ฐ์ดํฐ๊ฐ ์ ๊ฐ๋์ง ์์ |
| ORDER SIBLINGS BY | ํ์ ๋ ธ๋(๋์ผ level) ๊ฐ์ ์ ๋ ฌ ์ํ |
| WHERE | ๋ชจ๋ ์ ๊ฐ๋ฅผ ์ํํ ํ์ ์ง์ ๋ ์กฐ๊ฑด์ ๋ง์กฑํ๋ ๋ฐ์ดํฐ๋ง ์ถ์ถํ๋ค (=ํํฐ๋ง) |
๊ฐ์ ์นผ๋ผ
Oracle์ด ๊ณ์ธตํ ์ง์๋ฅผ ์ฌ์ฉํ ๋ ์ ๊ณตํ๋ค
| LEVEL | ๋ฃจํธ ๋ฐ์ดํฐ๋ฉด 1, ๊ทธ ํ์ ๋ฐ์ดํฐ๋ฉด 2. ๋ฆฌํ ๋ฐ์ดํฐ๊น์ง 1์ฉ ์ฆ๊ฐ |
| CONNECT_BY_ISLEAF | ํด๋น ๋ฐ์ดํฐ๊ฐ ๋ฆฌํ ๋ฐ์ดํฐ๋ฉด 1, ๊ทธ๋ ์ง ์์ผ๋ฉด 0 |
| CONNECT_BY_ISCYCLE | ํด๋น ๋ฐ์ดํฐ๊ฐ ์กฐ์์ด๋ฉด 1, ์๋๋ฉด 0 (CYCLE์ต์ ์ฌ์ฉํ์ ์๋ง ์ฌ์ฉ ๊ฐ๋ฅ) |
๊ณ์ธตํ ์ง์ ํจ์
| SYS_CONNECT_BY_PATH | ๋ฃจํธ ๋ฐ์ดํฐ๋ถํฐ ํ์ฌ ์ ๊ฐํ ๋ฐ์ดํฐ๊น์ง์ ๊ฒฝ๋ก๋ฅผ ํ์ํ๋ค. SYS_CONNECT_BY_PATH (์นผ๋ผ, ๊ฒฝ๋ก๋ถ๋ฆฌ์) |
| CONNECT_BY_ROOT | ํ์ฌ ์ ๊ฐํ ๋ฐ์ดํฐ์ ๋ฃจํธ ๋ฐ์ดํฐ๋ฅผ ํ์ํ๋ค. ๋จํญ ์ฐ์ฐ์. CONNECT_BY_ROOT ์นผ๋ผ |
์
ํ ์กฐ์ธ
ํ ํ
์ด๋ธ ๋ด ๋ ์นผ๋ผ์ด ์ฐ๊ด ๊ด๊ณ๊ฐ ์์ ๋ ๋์ผ ํ
์ด๋ธ ์ฌ์ด์ ์กฐ์ธ
FROM์ ์ ๋์ผ ํ
์ด๋ธ์ด 2๋ฒ ์ด์ ๋ํ๋๋ค
๋ฐ๋์ ํ
์ด๋ธ ๋ณ์นญ์ ์ฌ์ฉ
์๋ธ์ฟผ๋ฆฌ
ํ๋์ ๋ฌธ ์์ ํฌํจ๋์ด ์๋ ๋ ๋ค๋ฅธ SQL๋ฌธ
์๋ ค์ง์ง ์์ ๊ธฐ์ค์ ์ด์ฉํ ๊ฒ์์ ์ฌ์ฉ
์๋ธ์ฟผ๋ฆฌ๋ฅผ ๊ดํธ๋ก ๊ฐ์ธ์ ์ฌ์ฉ
๋จ์ผ ํ ๋๋ ๋ณต์ ํ ๋น๊ต ์ฐ์ฐ์์ ํจ๊ป ์ฌ์ฉ ๊ฐ๋ฅ
๋จ์ผํ ๋น๊ต ์ฐ์ฐ์๋ ์๋ธ์ฟผ๋ฆฌ์ ๊ฒฐ๊ณผ๊ฐ ๋ฐ๋์ 1๊ฑด ์ดํ์ฌ์ผ ํ๊ณ , ๋ณต์ ํ ๋น๊ต ์ฐ์ฐ์๋ ๊ฒฐ๊ณผ ๊ฑด์์ ์๊ด์๋ค.
์๋ธ์ฟผ๋ฆฌ์์๋ ORDER BY๋ฅผ ์ฌ์ฉํ์ง ๋ชปํ๋ค
SELECT, FROM, WHERE, HAVING, ORDER BY, INSERT-VALUES, UPDATE-SET ์ ์ ์ฌ์ฉ ๊ฐ๋ฅ
| SELECT์ | scala | ํ๋์ ์นผ๋ผ์ฒ๋ผ ์ฌ์ฉ SELECT ์ ์ ๊ฒฐ๊ณผ๋ฅผ FROM ์ ์์ ํ๋์ ํ ์ด๋ธ์ฒ๋ผ ์ฌ์ฉํ๊ณ ์ถ์ ๋ ์ฌ์ฉ |
| FROM์ | inline view | ํ๋์ ํ
์ด๋ธ์ฒ๋ผ ์ฌ์ฉ. ๋ฉ์ธ์ฟผ๋ฆฌ์ ์นผ๋ผ์ ์ฌ์ฉ ๊ฐ๋ฅ ORDER BY ์ฌ์ฉ ๊ฐ๋ฅ |
| WHERE์ | ์ผ๋ฐ ์๋ธ์ฟผ๋ฆฌ | ๊ฑฐ์ ๋ชจ๋ ์๋ธ์ฟผ๋ฆฌ (์ค์ฒฉ ์๋ธ์ฟผ๋ฆฌ) SELECT ์ ์ ๊ฒฐ๊ณผ๋ฅผ WHERE ์ ์์ ํ๋์ ๋ณ์(์์)์ฒ๋ผ ์ฌ์ฉํ๊ณ ์ถ์ ๋ ์ฌ์ฉ ๋จ์ผํ, ๋ค์คํ, ๋ค์ค์นผ๋ผ ์๋ธ์ฟผ๋ฆฌ |
| GROUP BY์ | ์ฌ์ฉ๋ถ๊ฐ | |
| HAVING์ | ์ผ๋ฐ ์๋ธ์ฟผ๋ฆฌ | ๊ฑฐ์ ๋ชจ๋ ์๋ธ์ฟผ๋ฆฌ (์ค์ฒฉ ์๋ธ์ฟผ๋ฆฌ) |
| ORDER BY์ | scala |
๋จ์ผ ํ ๋น๊ต์ฐ์ฐ์
-, <, >, <> ๋ฑ
๋ค์ค ํ ๋น๊ต์ฐ์ฐ์
IN ๊ฐ์ ๊ฐ
ANY / SOME ์ต์๊ฐ
ALL ์ต๋๊ฐ
EXISTS(์๋ธ ์ฟผ๋ฆฌ) ์๋ธ ์ฟผ๋ฆฌ์ ๊ฒฐ๊ณผ๊ฐ ํ ๊ฑด์ด๋ผ๋ ์กด์ฌํ๋ฉด TRUE ์์ผ๋ฉด FALSE๋ฅผ ๋ฆฌํด
๋์ ๋ฐฉ์์ ๋ฐ๋ฅธ ์๋ธ์ฟผ๋ฆฌ ๋ถ๋ฅ
๋น์ฐ๊ด ์๋ธ์ฟผ๋ฆฌ : ์๋ธ์ฟผ๋ฆฌ๊ฐ ๋ฉ์ธ์ฟผ๋ฆฌ ์นผ๋ผ ์๊ฐ์ง. ๋ฉ์ธ์ฟผ๋ฆฌ์ ๊ฐ ์ ๊ณต ๋ชฉ์
์ฐ๊ด ์๋ธ์ฟผ๋ฆฌ : ์๋ธ์ฟผ๋ฆฌ๊ฐ ๋ฉ์ธ์ฟผ๋ฆฌ ์นผ๋ผ ๊ฐ์ง
๋ฐํ ๋ฐ์ดํฐ์ ๋ฐ๋ฅธ ์๋ธ์ฟผ๋ฆฌ ์ข
๋ฅ
๋จ์ผํ ์๋ธ์ฟผ๋ฆฌ : ์คํ๊ฒฐ๊ณผ 1๊ฑด ์ดํ
๋ค์คํ ์๋ธ์ฟผ๋ฆฌ : ์คํ๊ฒฐ๊ณผ ์ฌ๋ฌ ๊ฑด
๋ค์ค์ปฌ๋ผ ์๋ธ์ฟผ๋ฆฌ : ์คํ๊ฒฐ๊ณผ ์ปฌ๋ผ ์ฌ๋ฌ ๊ฐ
VIEW (๊ฐ์ํ
์ด๋ธ)
ํ
์ด๋ธ์ ์ค์ ๋ก ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ง๊ณ ์๋ ๋ฐ๋ฉด, ๋ทฐ๋ ์ค์ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ง๊ณ ์์ง ์๋ค
์คํ ์์ ์ SQL ์ฌ์์ฑํ์ฌ ์ํ
๋
๋ฆฝ์ฑ : ํ
์ด๋ธ ๊ตฌ์กฐ๊ฐ ๋ณ๊ฒฝ๋์ด๋ ๋ทฐ๋ฅผ ์ฌ์ฉํ๋ ์์ฉ ํ๋ก๊ทธ๋จ์ ๋ณ๊ฒฝํ์ง ์์๋ ๋๋ค
ํธ๋ฆฌ์ฑ : ๋ณต์กํ ์ง์๋ฅผ ๋ทฐ๋ก ์์ฑํจ์ผ๋ก์จ ๊ด๋ จ ์ง์๋ฅผ ๋จ์ํ๊ฒ ์์ฑํ ์ ์๋ค
๋ณด์์ฑ : ์ง์์ ๊ธ์ฌ์ ๋ณด์ ๊ฐ์ด ์จ๊ธฐ๊ณ ์ถ์ ์ ๋ณด๊ฐ ์กด์ฌํ ๋ ์ฌ์ฉ
ex) CREATE VIEW v_player_team AS SELECT ... ;
DROP VIEW v_player_team;
โ
๊ทธ๋ฃนํจ์
| ROLL UP | Subtotal์ ์์ฑํ๊ธฐ ์ํด ์ฌ์ฉ. ๊ณ์ธต๊ตฌ์กฐ์ด๋ฏ๋ก ์ธ์์ ์์ ์ค์ |
| CUBE | ๊ทธ๋ฃนํ ์ปฌ๋ผ์ด ๊ฐ์ง ์ ์๋ ๋ชจ๋ ๊ฒฝ์ฐ์ ์์ ๋ํ์ฌ ์๊ณ์ ์ด๊ณ๋ฅผ ์์ฑ ROLLUP์ ๋นํด ์์คํ ๋ถํ๊ฐ ์ฌํ๋ค ์ธ์์ ์์ ์๊ด ์์ |
| GROUPING SETS | ์ธ์๋ค์ ๋ํ ๊ฐ๋ณ ์ง๊ณ๋ฅผ ๊ตฌํ ์ ์๋ค ๋ค์ํ ์๊ณ ์งํฉ ์์ฑ ๊ฐ๋ฅ ROLLUP๊ณผ CUBE์ ๋ฌ๋ฆฌ ๊ณ์ธต ๊ตฌ์กฐ๊ฐ ๋ํ๋์ง ์์ผ๋ฏ๋ก ์ธ์์ ์์ ์๊ด ์์ |
| GROUPING | ์ง๊ณ ํ์๋ฉด 1, ์๋๋ฉด 0 |
* Grouping Columns์ ์๋ฅผ N์ด๋ผ๊ณ ํ์ ๋ N+1 Level์ Subtotal์ด ์์ฑ
[๋ฌธ์ ํ๊ธฐ] NULL ์ฐพ๊ธฐ -> ์ดํฉ ์ฐพ๊ธฐ -> ์ดํฉ ์์ผ๋ฉด ROLL UP, CUBE / ์์ผ๋ฉด GROUPING SETS
์๋์ฐํจ์
RANK : ๋์ผ ๊ฐ์ ๋ํด ๋์ผ ์์ ๋ถ์ฌ ex) 1๋ฑ, 1๋ฑ, 3๋ฑ
DENSE RANK : ๋์ผ ์์๋ฅผ ํ๋์ ๋ฑ์๋ก ๊ฐ์ฃผ ex) 1๋ฑ, 1๋ฑ, 2๋ฑ, 3๋ฑ
ROW_NUMBER : ๋์ผ ๊ฐ์ด๋ผ๋ ๊ณ ์ ํ ์์ ๋ถ์ฌ ex) 1๋ฑ, 2๋ฑ, 3๋ฑ, 4๋ฑ
ROWS : ํ์ ์ ์ ํ
RANGE : ๊ฐ์ ๋ฒ์ ์ ํ
* ๊ฒฐ๊ณผ๊ฐ์ ์ฐจ์ด์ ์๊ธฐ. ๊ฐ์ ๊ฐ์ด ์์ผ๋ฉด RANGE
PATRITION BY : ์ ์ฒด ์งํฉ์ ๊ธฐ์ค์ ์ํด ์๊ทธ๋ฃน์ผ๋ก ๋๋ ์ ์๋ค. =group by์ ์ ์ฌํ ๊ธฐ๋ฅ
ORDER BY
ํ ์์ ๊ด๋ จ ํจ์ (ONLY Oracle)
FIRST_VALUE : ํํฐ์
๋ณ ์๋์ฐ์ ์ฒ์ ๊ฐ
LAST_VALUE : ํํฐ์
๋ณ ์๋์ฐ์ ๋ง์ง๋ง ๊ฐ
LAG : ํํฐ์
๋ณ ์๋์ฐ์์ ์ด์ ๋ช ๋ฒ์งธ ํ์ ๊ฐ
LEAD : ํํฐ์
๋ณ ์๋์ฐ์์ ์ดํ ๋ช ๋ฒ์งธ ํ์ ๊ฐ
๋น์จ ๊ด๋ จ ํจ์
RATIO_TO_REPORT : SUM ํํฐ์
๋ด ์ ์ฒด ์ ๋ํ ํ๋ณ ์นผ๋ผ ๊ฐ์ ๋ฐฑ๋ถ์จ์ ์์์ ์ผ๋ก ๊ตฌํ ์ ์๋ค. >0, <=1
PERCENT_RANK : ํํฐ์
๋ณ ์๋์ฐ์์ ์ฒ์ ๊ฐ์ 0, ๋ง์ง๋ง ๊ฐ์ 1๋ก ํ์ฌ ํ์ ์์๋ณ ๋ฐฑ๋ถ์จ์ ๊ตฌํ๋ค. 0>=,<=1
CUME_DIST : ํ์ฌ ํ๋ณด๋ค ์๊ฑฐ๋ ๊ฐ์ ๊ฑด์์ ๋ํ ๋์ ๋ฐฑ๋ถ์จ์ ๊ตฌํ๋ค. >0, <=1
NTILE : ํํฐ์
๋ณ ์ ์ฒด ๊ฑด์๋ฅผ ์ธ์ ๊ฐ์ผ๋ก N๋ฑ๋ถํ ๊ฒฐ๊ณผ๋ฅผ ๊ตฌํ ์ ์๋ค.
DCL
์ ์ ์์ฑํ๊ณ ๊ถํ์ ์ ์ดํ ์ ์๋ ๋ช
๋ น์ด
* ์์คํ
๊ถํ : SQL ์ฌ์ฉ์๊ฐ ๋ฌธ์ ์คํํ๊ธฐ ์ํด ํ์ํ ์ ์ ํ ๊ถํ
GRANT : ์ฌ์ฉ์(User)์๊ฒ ์ ์๊ถํ, ์ค๋ธ์ ํธ ์์ฑ๊ถํ, DBA ๊ถํ ๋ฑ์ ๋ถ์ฌํ ์ ์๋ ๋ช
๋ น์ด ex) GRANT CREATE TABLE TO pjs;
REVOKE : ์ฌ์ฉ์(User)์๊ฒ ๋ถ์ฌํ ๊ถํ์ ๋ค์ ํ์ํ๋ ๋ช
๋ น์ด ex) REVOKE CREATE TABLE FROM pjs;
ROLE : ์ ์ ์๊ฒ ์๋ง์ ๊ถํ๋ค์ ํ ๋ฒ์ ๋ถ์ฌํ๊ธฐ ์ํด ์ฌ์ฉ. ๋ช
๋ น์ด๊ฐ ์๋ ๊ฐ์ฒด์ด๋ค.
CREATE ROLE LOGIN_TABLE;
DROP USER PJS CASCADE; * CASCADE : ํ์ ์ค๋ธ์ ํธ๊น์ง ์ญ์
Oracle SQL๊ณผ Server์ ์ฌ์ฉ์ ์ํคํ
์ฒ ์ฐจ์ด
| Oracle | SQL Server |
| ์ ์ ๋ฅผ ํตํด DB ์ ์ ID/PW ๋ฐฉ์์ผ๋ก ์ธ์คํด์ค์ ์ ์ํ๊ณ , ๊ทธ์ ํด๋นํ๋ ์คํค๋ง์ ์ค๋ธ์ ํธ ์์ฑ ๋ฑ์ ๊ถํ์ ๋ถ์ฌ๋ฐ๊ฒ ๋จ |
์ธ์คํด์ค์ ์ ์ํ๊ธฐ ์ํด ๋ก๊ทธ์ธ์ด๋ผ๋ ๊ฒ์ ์์ฑ ์ธ์คํด์ค ๋ด์ ์กด์ฌํ๋ ๋ค์์ DB์ ์ฐ๊ฒฐํ์ฌ ์์ ํ๊ธฐ ์ํด, ์ ์ ๋ฅผ ์์ฑํ ํ ๋ก๊ทธ์ธ๊ณผ ์ ์ ๋ฅผ ๋งคํ Windows ๋ฐฉ์๊ณผ ํผํฉ ๋ชจ๋ ๋ฐฉ์์ด ์กด์ฌ |
์ ์ฐจํ SQL
SQL๋ฌธ์ ์ฐ์์ ์ธ ์คํ์ด๋ ์กฐ๊ฑด์ ๋ฐ๋ฅธ ๋ถ๊ธฐ, ๋ฐ๋ณต ๋ฑ์ ์ ์ด๋ฅผ ํ์ฉํด ๋ค์ํ ๊ธฐ๋ฅ์ ์ํํ๋ DB ์ ์ฅ ๋ชจ๋ ์์ฑ
Procedure, User Defined Function, Trigger ๋ฑ์ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๊ฐ ํด๋น๋๋ค.
- Procedure : ํน์ ๊ธฐ๋ฅ์ ์ํํ๋ ์ผ์ข
์ ํธ๋์ญ์
์ธ์ด. ํธ์ถ์ ํตํด ์คํ๋๋ฉฐ ๋ฏธ๋ฆฌ ์ ์ฅํด ๋์ SQL ์์
์ ์ํ
- Function : ํ๋ ์ด์์ ํ๋ก์์ , ํจ์, ๋ณ์, ์์ธ ๋ฑ์ ๋ฌถ์
- Trigger : ํน์ ํ ํ
์ด๋ธ์ INSERT, UPDATE, DELETE์ ๊ฐ์ DML๋ฌธ์ด ์ํ๋์์ ๋ DB์์ ์๋์ผ๋ก ๋์ํ๋๋ก ์์ฑ๋ ํ๋ก๊ทธ๋จ. ์ฌ์ฉ์ ํธ์ถ์ด ์๋ DB ์๋ ์ํ
* ์ ์ฅ ๋ชจ๋ : PL/SQL DB ๋ฌธ์ฅ์ ์๋ฒ์ ์ ์ฅํ์ฌ ์ฌ์ฉ์์ ์ ํ๋ฆฌ์ผ์ด์
์ฌ์ด์์ ๊ณต์ ํ ์ ์๋๋ก ๋ง๋ ์ผ์ข
์ SQL์ปดํฌ๋ํธ ํ๋ก๊ทธ๋จ. ๋
๋ฆฝ์ ์ผ๋ก ์คํ๋๊ฑฐ๋ ๋ค๋ฅธ ํ๋ก๊ทธ๋จ์ผ๋ก๋ถํฐ ์คํ๋ ์ ์๋ ์์ ํ ์คํ ํ๋ก๊ทธ๋จ
์ ์ฐจํ SQL์ ํน์ง
1. Block ๊ตฌ์กฐ๋ก ๋์ด์์ด ๊ฐ ๊ธฐ๋ฅ๋ณ๋ก ๋ชจ๋ํ ๊ฐ๋ฅ
2. ๋ณ์, ์์ ๋ฑ์ ์ ์ธํ์ฌ SQL ๋ฌธ์ฅ ๊ฐ ๊ฐ์ ๊ตํ
3. IF, LOOP ๋ฑ์ ์ ์ฐจํ ์ธ์ด๋ฅผ ์ฌ์ฉํ์ฌ ์ ์ฐจ์ ์ธ ํ๋ก๊ทธ๋จ์ด ๊ฐ๋ฅํ๋๋ก ํ๋ค.
4. DBMS ์ ์ ์๋ฌ๋ ์ฌ์ฉ์ ์ ์ ์๋ฌ๋ฅผ ์ ์ํ์ฌ ์ฌ์ฉํ ์ ์๋ค.
5. Oracle์ ๋ด์ฅ๋์ด ์์ด ํธํ์ฑ์ด ์ข๋ค.
6. ์์ฉ ํ๋ก๊ทธ๋จ์ ์ฑ๋ฅ์ ํฅ์์ํจ๋ค.
7. Block -> ๋จ์๋ก ์ฒ๋ฆฌ ํต์ ๋์ ์ค์ผ ์ ์๋ค.
์ ์ฐจํ SQL์ ๊ตฌ์ฑ
DECLARE : BEGIN~END ์ ์์ ์ฌ์ฉ๋ ๋ณ์์ ์ธ์์ ๋ํ ์ ์ ๋ฐ ๋ฐ์ดํฐ ํ์
์ ์ธ๋ถ
BEGIN~END :์ฒ๋ฆฌํ๊ณ ์ ํ๋ SQL๋ฌธ๊ณผ ์ฌ๋ฌ ๊ฐ์ง ๋น๊ต๋ฌธ, ์ ์ด๋ฌธ์ ์ด์ฉํด์ ํ์ํ ๋ก์ง ์ฒ๋ฆฌ
- BEGIN : ํ๋ก์์ , ์ฌ์ฉ์ ์ ์ํจ์๊ฐ ์คํ๋๋ ์์์
- END : ํ๋ก์์ , ์ฌ์ฉ์ ์ ์ํจ์๊ฐ ์คํ๋๋ ์ข
๋ฃ์
EXCEPTION : BEGIN~END ์ ์์ ์คํ๋๋ SQL๋ฌธ์ด ์คํ๋ ๋ ์๋ฌ๊ฐ ๋ฐ์ํ๋ฉด ๊ทธ ์๋ฌ๋ฅผ ์ด๋ป๊ฒ ์ฒ๋ฆฌํ ์ง ์ ์ํ๋ ์์ธ ์ฒ๋ฆฌ๋ถ
ํ๋ก์์ ์ ํธ๋ฆฌ๊ฑฐ์ ์ฐจ์ด์
ํ๋ก์์ : BEGIN~END COMMIT์ ๋ด์ ROLLBACK๊ณผ ๊ฐ์ ํธ๋์ญ์
์ข
๋ฃ ๋ช
๋ น์ด ์ฌ์ฉ๊ฐ๋ฅ. EXECUTE ๋ช
๋ น์ด๋ก ์คํ
ํธ๋ฆฌ๊ฑฐ : BEGIN~END์ ๋ด์ ์ฌ์ฉ ๋ถ๊ฐ. ์์ฑ ํ ์๋ ์คํ
T-SQL : ๊ทผ๋ณธ์ ์ผ๋ก SQL Server๋ฅผ ์ ์ดํ๋ ์ธ์ด
'๊ฐ์ธ๊ณต๋ถ > SQL' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| 52. SQLD ๊ธฐ์ถ๋ฌธ์ 2๊ณผ๋ชฉ 1์ฅ ์ค๋ต๋ ธํธ (0) | 2021.11.14 |
|---|---|
| 51. SQLD ๊ธฐ์ถ๋ฌธ์ 1๊ณผ๋ชฉ ์ค๋ต๋ ธํธ (0) | 2021.11.12 |
| 46. SQLD 2๊ณผ๋ชฉ (1)SQL๊ธฐ๋ณธ (0) | 2021.11.07 |
| 41. SQLD 1๊ณผ๋ชฉ (2)๋ชจ๋ธ๋ง๊ณผ ์ฑ๋ฅ (0) | 2021.10.27 |
| 40. SQLD 1๊ณผ๋ชฉ (1)๋ฐ์ดํฐ ๋ชจ๋ธ๋ง์ ์ดํด (0) | 2021.10.26 |