*** ์ผ๋ฐ + ์ ์ ํ
oracle์์ ๋น๋ฌธ์์ด์ null๋ก ์ ์ฅ / sql server์์๋ ๋น๋ฌธ์์ด ๊ทธ๋๋ก ์ ์ฅ๋์ด
4๋ฒ์ null์ด ์๋์๋... ๊ทธ๋์ ์กฐํ๊ฐ ์๋ฉ๋๋ค...
๋ ผ๋ฆฌ ์ฐ์ฐ์ ์ฐ์ ์์ : NOT > AND > OR
null ์ ํฌํจํ์ง ์๊ณ ๊ณ์ฐํ๋ฉด
1. (20 + 0) / 2 = 10
2. (20 + null (x)) / 1 = 20
3. (20 + null (x)) / 1 = 20
NVL(๋์๋ฐ์ดํฐ , NULL์ผ๋ ๋ฐ์ดํฐ)
๊ฐ์ด null ์ธ ๊ฒฝ์ฐ, 2๋ฒ์งธ ์ง์ ๊ฐ์ ์ถ๋ ฅํ๊ณ ๊ทธ๋ ์ง ์์ผ๋ฉด ๋์๋ฐ์ดํฐ๋ฅผ ์ถ๋ ฅํ๋ค.
SELECT TOP(3) WITH TIES ํ๋ช
, ์น๋ฆฌ๊ฑด์ // TOP(3) ๋ง ์ ๋๋ค๋ฉด ๊ทธ๋ฅ 3๊ฐ๋ง ์ถ๋ ฅ
FROM ํ๋ณ ์ฑ์
ORDER BY ์น๋ฆฌ๊ฑด์ DESC;
=> 3๋ฒ์งธ ํ๊ณผ ๋์ผํ ๊ฐ์ ๊ฐ์ง ์ถ๊ฐ ํ์ด ์๋ค๋ฉด ์ด ํ๋ค๋ ํฌํจ(SQL Server์์ ์ฌ์ฉ)
SELECT ํ๋ช
. ์น๋ฆฌ๊ฑด์
FROM ํ๋ณ์ฑ์
WHERE ROWNM <= 3
ORDER BY ์น๋ฆฌ๊ฑด์ DESC;
=> 3๋ฒ์งธ ํ๊ณผ ๋์ผํ ๊ฐ์ ๊ฐ์ง ์ถ๊ฐํ์ด ์๋๋ผ๋ ํฌํจ x (Oracle์์ ์ฌ์ฉ)
=> Oracle์์์ TOP(3) WITH TIES์ ์ ์ฌํ ๊ธฐ๋ฅ์ ๊ตฌํํ๋ ค๋ฉด DENSE_RANK()์ ์๋์ฐ ํจ์๋ฅผ ์ฌ์ฉํ ์ ์๋ค
RANK()์ DENSE_RANK()์ ์ฐจ์ด....
EmployeeIDNameSalary
1 | Alice | 5000 |
2 | Bob | 4000 |
3 | Carol | 4000 |
4 | Dave | 3000 |
5 | Eve | 2000 |
RANK() ์ฌ์ฉ ์์
SELECT *
FROM (
SELECT e.*, RANK() OVER (ORDER BY Salary DESC) AS rnk
FROM Employees e
)
WHERE rnk <= 3;
EmployeeIDNameSalaryrnk
EmployeeID | Name | Salary | rank |
1 | Alice | 5000 | 1 |
2 | Bob | 4000 | 2 |
3 | Carol | 4000 | 2 |
4 | Dave | 3000 | 4 |
RANK() ํจ์๋ Salary๊ฐ ๊ฐ์ Bob๊ณผ Carol์๊ฒ ๋์ผํ 2์์๋ฅผ ๋ถ์ฌํ๊ณ , ๋ค์ ์์์ธ 3์ ๊ฑด๋๋ฐ๊ณ 4๋ฅผ Dave์๊ฒ ๋ถ์ฌ
DENSE_RANK() ์ฌ์ฉ ์์
SELECT *
FROM (
SELECT e.*, DENSE_RANK() OVER (ORDER BY Salary DESC) AS rnk
FROM Employees e
)
WHERE rnk <= 3;
EmployeeIDNameSalaryrnk
1 | Alice | 5000 | 1 |
2 | Bob | 4000 | 2 |
3 | Carol | 4000 | 2 |
4 | Dave | 3000 | 3 |
DENSE_RANK() ํจ์๋ Salary๊ฐ ๊ฐ์ Bob๊ณผ Carol์๊ฒ ๋์ผํ 2์์๋ฅผ ๋ถ์ฌํ๊ณ , ๋ค์ ์์๋ฅผ 3์ผ๋ก ๋ถ์ฌํ์ฌ ์ฐ์์ฑ์ ์ ์งํฉ๋๋ค.
- RANK(): ๋์ผํ ๊ฐ์ ๊ฐ์ง ํ๋ค์ด ์์ผ๋ฉด ์์์ ๊ณต๋ฐฑ์ด ์๊น๋๋ค.
- DENSE_RANK(): ๋์ผํ ๊ฐ์ ๊ฐ์ง ํ๋ค์ด ์๋๋ผ๋ ์์์ ๊ณต๋ฐฑ์ด ์๊ธฐ์ง ์๊ณ ์ฐ์์ ์ผ๋ก ๋ถ์ฌ๋ฉ๋๋ค.
oracle์ ์์ ํ์ createํ๋ฉด ์๋์ผ๋ก ์ ์ฅ๋๋ค
ํท๊ฐ๋ฆฌ๊ธฐ ์ฌ์ด ๋ฌธ์ ...
ROWNUM ์ ์ ๋ ฌ ์ ์ ์ฐ๋ฉด ์๋ฌด ์๋ฏธ ์๋ค....
์ ๋ต์ 3๋ฒ
' \d+', 'xxx', 1, 2 => ๋ฌธ์๋ฅผ xxx๋ก ๋ฐ๊พธ๋๋ฐ ์ฒ์๋ถํฐ ์์ํด์ 2๋ฒ์งธ ์์น๊บผ๋ฅผ REPLACE ๋ฐ๊ฟ๋ผ
*** ๋ ธ๋ญ์ด ๋ชจ๋ฅด๋๊ฑฐ
TCL : ๋ ผ๋ฆฌ์ ์ธ ์์ ์ ๋จ์๋ฅผ ๋ฌถ์ด DML์ ์ํด ์กฐ์๋ ๊ฒฐ๊ณผ๋ฅผ ์์ ๋จ์(Transaction) ๋ณ๋ก ์ ์ดํ๋ ๋ช ๋ น์ด์ธ Commit, Rollback, Savepoint ๋ฑ์ด ์ฌ๊ธฐ์ ํด๋นํ๋ฉฐ, ์ผ๋ถ์์๋ DCL๋ก ๋ถ๋ฅํ๊ธฐ๋ ํ๋ค
UNIQUE๋ NULL ์ ๋ ฅ์ด ๊ฐ๋ฅํ๋ค!!! PK๋ ๋ถ๊ฐ๋ฅํจ ใ ใ ใ
**** ๋ ธ๋ญ์ด ์ ๋ฆฌ
๋ฐ์ดํฐ ๋ชจ๋ธ๋ง
1. ๊ฐ๋ ์ ๋ฐ์ดํฐ ๋ชจ๋ธ๋ง : ์ถ์ํ ์์ค์ด ๋๊ณ ์ ๋ฌด์ค์ฌ์ ์ด๊ณ ํฌ๊ด์ ์ธ ์์ค์ ๋ชจ๋ธ๋ง ์งํ, ์ ์ฌ์ ๋ฐ์ดํฐ ๋ชจ๋ธ๋ง, EA ์๋ฆฝ์ ๋ง์ด ์ด์ฉ
2. ๋ ผ๋ฆฌ์ ๋ฐ์ดํฐ ๋ชจ๋ธ๋ง : ์์คํ ์ผ๋ก ๊ตฌ์ถํ๊ณ ์ ํ๋ ์ ๋ฌด์ ๋ํด Key ์์ฑ, ๊ด๊ณ ๋ฑ์ ์ ํํ๊ฒ ํํ, ์ฌ์ฌ์ฉ์ฑ์ด ๋์
3. ๋ฌผ๋ฆฌ์ ๋ฐ์ดํฐ ๋ชจ๋ธ๋ง : ์ค์ ๋ก ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ด์ํ ์ ์๋๋ก ์ฑ๋ฅ, ์ ์ฅ ๋ฑ ๋ฌผ๋ฆฌ์ ์ธ ์ฑ๊ฒฉ์ ๊ณ ๋ คํ์ฌ ์ค๊ณ
๋ฐ์ดํฐ ๋ชจ๋ธ๋ง์ ํ๋ ์ฃผ์ํ ์ด์
1. ์ ๋ฌด์ ๋ณด๋ฅผ ๊ตฌ์ฑํ๋ ๊ธฐ์ด๊ฐ ๋๋ ์ ๋ณด๋ค์ ๋ํด ์ผ์ ํ ํ๊ธฐ๋ฒ์ ์ํด ํํํจ์ผ๋ก์จ ์ ๋ณด์์คํ ๊ตฌ์ถ์ ๋์์ด ๋๋ ์ ๋ฌด ๋ด์ฉ์ ์ ํํ๊ฒ ๋ถ์ํ๊ธฐ ์ํด์
2. ๋ถ์๋ ๋ชจ๋ธ์ ๊ฐ์ง๊ณ ์ค์ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์์ฑํ์ฌ ๊ฐ๋ฐ ๋ฐ ๋ฐ์ดํฐ ๊ด๋ฆฌ์ ์ฌ์ฉํ๊ธฐ ์ํด์
=> ๋ฐ์ดํฐ ๋ชจ๋ธ๋ง ์ด๋ผ๋ ๊ฒ์ ๋จ์ง ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ง์ ๊ตฌ์ถํ๊ธฐ ์ํ ์ฉ๋๋ก ์ฐ์ด๋ ๊ฒ์ด ์๋๋ผ ๋ฐ์ดํฐ๋ชจ๋ธ๋ง ์์ฒด๋ก์ ์ ๋ฌด๋ฅผ ์ค๋ช ํ๊ณ ๋ถ์ํ๋ ๋ถ๋ถ์์๋ ๋งค์ฐ ์ค์ํ ์๋ฏธ๋ฅผ ๊ฐ์ง
๋ฐ์ดํฐ ๋ชจ๋ธ๋ง ์ ์์ : ์ค๋ณต, ๋น์ ์ฐ์ฑ, ๋น์ผ๊ด์ฑ
๋ฐ์ดํฐ๋ฒ ์ด์ค ์คํค๋ง ๊ตฌ์กฐ 3๋จ๊ณ
- ์ธ๋ถ ์คํค๋ง : ์ฌ์ฉ์๊ฐ ๋ณด๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ถ๋ถ์ ๋ทฐ๋ฅผ ์ ์
- ๊ฐ๋ ์คํค๋ง : ํตํฉ ๊ด์ ์ ์คํค๋ง ๊ตฌ์กฐ๋ฅผ ํํํ ๊ฒ์ผ๋ก ๋ฐ์ดํฐ ๋ชจ๋ธ๋ง์ ํตํฉ๊ด์ ์ ๋ทฐ๋ฅผ ๊ฐ์ง๊ณ ์๋ ๊ฐ๋ ์คํค๋ง๋ฅผ ๋ง๋ค์ด๊ฐ๋ ๊ณผ์ ์.
- ๋ด๋ถ ์คํค๋ง : ๋ฐ์ดํฐ์ ๋ฌผ๋ฆฌ์ ์ ์ฅ ๊ตฌ์กฐ๋ฅผ ์ ์
ERD ์์ฑ ์์
1. ์ํฐํฐ๋ฅผ ๊ทธ๋ฆฐ๋ค
2. ์ํฐํฐ๋ฅผ ์ ์ ํ๊ฒ ๋ฐฐ์นํ๋ค
3. ์ํฐํฐ ๊ฐ ๊ด๊ณ๋ฅผ ์ค์ ํ๋ค
4. ๊ด๊ณ๋ช ์ ๊ธฐ์ ํ๋ค
5, ๊ด๊ณ์ ์ฐธ์ฌ๋๋ฅผ ๊ธฐ์ ํ๋ค
6. ๊ด๊ณ์ ํ์์ฌ๋ถ๋ฅผ ๊ธฐ์ ํ๋ค
์ํฐํฐ์ ํน์ง
1.๋ฐ๋์ ํด๋น ์ ๋ฌด์์ ํ์ํ๊ณ ๊ด๋ฆฌํ๊ณ ์ ํ๋ ์ ๋ณด์ฌ์ผ ํ๋ค
2. ์ ์ผํ ์๋ณ์์ ์ํด ์๋ณ์ด ๊ฐ๋ฅํด์ผ ํ๋ค
3. ์์์ ์ผ๋ก ์กด์ฌํ๋ (๋๊ฐ ์ด์์)์ธ์คํด์ค์ ์งํฉ์ด์ด์ผ ํ๋ค
4. ์ํฐํฐ๋ ์ ๋ฌด ํ๋ก์ธ์ค์ ์ํด ์ด์ฉ๋์ด์ผ ํ๋ค
5. ์ํฐํฐ๋ ๋ฐ๋์ ์์ฑ์ด ์์ด์ผ ํ๋ค
6. ์ํฐํฐ๋ ๋ค๋ฅธ ์ํฐํฐ์ ์ต์ ํ ๊ฐ ์ด์์ ๊ด๊ณ์ผ ์์ด์ผ ํ๋ค
๊ธฐ๋ณธ์ํฐํฐ(ํค์ํฐํฐ)
- ์๋ ์กด์ฌํ๋ ์ ๋ณด๋ก์ ๋ค๋ฅธ ์ํฐํฐ์์ ๊ด๊ณ์ ์ํด ์์ฑ๋์ง ์๊ณ ๋ ๋ฆฝ์ ์ผ๋ก ์์ฑ์ด ๊ฐ๋ฅํ๊ณ ์์ ์ ํ ์ํฐํฐ์ ๋ถ๋ชจ์ ์ญํ ์ ํ๊ฒ ๋๋ค
- ๋ค๋ฅธ ์ํฐํฐ๋ก๋ถํฐ ์ฃผ์๋ณ์๋ฅผ ์์๋ฐ์ง ์๊ณ ์์ ์ ๊ณ ์ ํ ์ฃผ์๋ณ์๋ฅผ ๊ฐ์ง๊ฒ ๋๋ค
- ์๋ฅผ ๋ค์ด ์ฌ์, ๋ถ์, ๊ณ ๊ฐ...
- vs) ์ค์ฌ์ํฐํฐ(๋ฉ์ธ์ํฐํฐ) : ๋ฐ์ดํฐ ๋ชจ๋ธ์์ ๋ค๋ฅธ ์ฌ๋ฌ ์ํฐํฐ์ ๊ด๊ณ๋ฅผ ๋งบ๋ ์ค์ฌ์ ์ธ ์ญํ ์ ํ๋ ์ํฐํฐ๋ก ์ฌ๋ฌ ์ํฐํฐ์์ ๊ด๊ณ๋ฅผ ๋งบ๊ณ ๊ด๊ณ๋ฅผ ํตํด ๋ฐ์ดํฐ๋ฅผ ์ฐ๊ฒฐํ๋ค
์์ฑ(Attribute)
: ์ ๋ฌด์์ ํ์๋ก ํ๋ ์ธ์คํด์ค์์ ๊ด๋ฆฌํ๊ณ ์ ํ๋ ์๋ฏธ์ ๋ ์ด์ ๋ถ๋ฆฌ๋์ง ์๋ ์ต์์ ๋ฐ์ดํฐ ๋จ์
=> ์ ๋ฌด์ ๊ด๋ฆฌ๊ฐ ๊ฐ๋ฅํ ์ต์์ ์๋ฏธ ๋จ์(์ํฐํฐ์ ํ ๋ถ์ผ)
์์ฑ์ ํน์ฑ์ ๋ฐ๋ฅธ ๋ถ๋ฅ
- ๊ธฐ๋ณธ์์ฑ : ์ํฐํฐ๊ฐ ๋ณธ์ง์ ์ผ๋ก ๊ฐ์ง๊ณ ์๋ ์์ฑ('๊ณ ๊ฐ' ์ํฐํฐ์ '์ด๋ฆ', '์ฃผ์', '์ ํ๋ฒํธ')
- ์ค๊ณ ์์ฑ : ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ค๊ณ๋ฅผ ์ํด ์ถ๊ฐ๋ ์์ฑ('์ฃผ๋ฌธ' ์ํฐํฐ์ '์ฃผ๋ฌธ๋ฒํธ', '๊ณ ๊ฐID')
- ํ์ ์์ฑ : ๋ค๋ฅธ ์์ฑ ๊ฐ์์ ๊ณ์ฐ๋๊ฑฐ๋ ์ ๋๋๋ ์์ฑ, ์กฐํํ ๋ ๋น ๋ฅธ ์ฑ๋ฅ์ ๋ด๋๋ก ํจ('์ฃผ๋ฌธ' ์ํฐํฐ์ ์ด๊ธ์ก)
์์ฑ์ ๋๋ฉ์ธ
: ๊ฐ ์์ฑ์ ๊ฐ์ง ์ ์๋ ๊ฐ์ ๋ฒ์๊ฐ ์๋๋ฐ ์ด๋ฅผ ์์ฑ์ ๋๋ฉ์ธ์ด๋ผํ๋ฉฐ, ์ํฐํฐ ๋ด์์ ์์ฑ์ ๋ํ ๋ฐ์ดํฐํ์ ๊ณผ ํฌ๊ธฐ ๊ทธ๋ฆฌ๊ณ ์ ์ฝ์ฌํญ์ ์ ์ฅํ๋ ๊ฒ
๋๊ฐ์ ์ํฐํฐ ์ฌ์ด์ ์ฒดํฌํด์ผ ํ ์ฌํญ
1. ๋ ๊ฐ์ ์ํฐํฐ ์ฌ์ด์ ๊ด์ฌ์๋ ์ฐ๊ด๊ท์น์ด ์กด์ฌํ๋๊ฐ?
2. ๋ ๊ฐ์ ์ํฐํฐ ์ฌ์ด์ ์ ๋ณด์ ์กฐํฉ์ด ๋ฐ์ํ๋๊ฐ?
3. ์ ๋ฌด๊ธฐ์ ์, ์ฅํ์ ๊ด๊ณ์ฐ๊ฒฐ์ ๋ํ ๊ท์น์ด ์์ ๋์ด ์๋๊ฐ?
4. ์ ๋ฌด๊ธฐ์ ์, ์ฅํ์ ๊ด๊ณ์ฐ๊ฒฐ์ ๊ฐ๋ฅํ๊ฒ ํ๋ ๋์ฌ๊ฐ ์๋๊ฐ?
์ฃผ์๋ณ์๋ฅผ ์ ์ฅํ ๋ ๊ณ ๋ คํด์ผ ํ ์ฌํญ
- ์ฃผ์๋ณ์์ ์ํด ์ํฐํฐ๋ด์ ๋ชจ๋ ์ธ์คํด์ค๋ค์ด ์ ์ผํ๊ฒ ๊ตฌ๋ถ๋์ด์ผ ํ๋ค(์ ์ผ์ฑ)
- ์ฃผ์๋ณ์๋ฅผ ๊ตฌ์ฑํ๋ ์์ฑ์ ์๋ ์ ์ผ์ฑ์ ๋ง์กฑํ๋ ์ต์์ ์๊ฐ ๋์ด์ผ ํ๋ค(์ต์์ฑ)
- ์ง์ ๋ ์ฃผ์๋ณ์์ ๊ฐ์ ์์ฃผ ๋ณํ์ง ์๋ ๊ฒ์ด์ด์ผ ํ๋ค(๋ถ๋ณ์ฑ)
- ์ฃผ์๋ณ์๊ฐ ์ง์ ์ด ๋๋ฉด ๋ฐ๋์ ๊ฐ์ด ๋ค์ด์์ผ ํ๋ค(์กด์ฌ์ฑ)
์๋ณ์์ ์ข ๋ฅ
- ์ํฐํฐ ๋ด์์ ๋ํ์ฑ์ ๊ฐ์ง๋๊ฐ์ ๋ฐ๋ผ ์ฃผ์๋ณ์์ ๋ณด์กฐ์๋ณ์๋ก ๊ตฌ๋ถ
- ์ํฐํฐ ๋ด์์ ์ค์ค๋ก ์์ฑ๋์๋์ง ์ฌ๋ถ์ ๋ฐ๋ผ ๋ด๋ถ์๋ณ์์ ์ธ๋ถ์๋ณ์๋ก ๊ตฌ๋ถ
- ๋จ์ผ ์์ฑ์ผ๋ก ์๋ณ์ด ๋๋๊ฐ์ ๋ฐ๋ผ ๋จ์ผ์๋ณ์์ ๋ณตํฉ ์๋ณ์๋ก ๊ตฌ๋ถ
- ์๋ ์ ๋ฌด์ ์ผ๋ก ์๋ฏธ๊ฐ ์๋ ์๋ณ์ ์์ฑ์ ๋์ฒดํ์ฌ ์ผ๋ จ๋ฒํธ์ ๊ฐ์ด ์๋กญ๊ฒ ๋ง๋ ์๋ณ์๋ฅผ ๊ตฌ๋ถํ๊ธฐ ์ํด ๋ณธ์ง์๋ณ์์ ์ธ์กฐ์๋ณ์๋ก ๊ตฌ๋ถ
์ฑ๋ฅ ๋ฐ์ดํฐ ๋ชจ๋ธ๋ง ์ํ ์ ์ฐจ์ ๋ํ ์ค๋ช ..
1. ๋ฐ์ดํฐ๋ชจ๋ธ๋ง์ ํ ๋ ์ ๊ทํ๋ฅผ ์ ํํ๊ฒ ์ํ
2. ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฉ๋์ฐ์ ์ ์ํ
3. ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ฐ์๋๋ ํธ๋์ญ์ ์ ์ ํ์ ํ์
4. ์ฉ๋๊ณผ ํธ๋์ญ์ ์ ํ์ ๋ฐ๋ผ ๋ฐ์ ๊ทํ๋ฅผ ์ํ
5. ์ด๋ ฅ๋ชจ๋ธ์ ์กฐ์ , PK/FK ์กฐ์ , ์ํผ ํ์ /์๋ธํ์ ์กฐ์ ๋ฑ์ ์ํ
6. ์ฑ๋ฅ๊ด์ ์์ ๋ฐ์ดํฐ๋ชจ๋ธ์ ๊ฒ์ฆ
'์๊ฒฉ์ฆ > sqld' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
sqld 1๊ณผ๋ชฉ. ๋ฐ์ดํฐ ๋ชจ๋ธ๋ง์ ์ดํด (1) | 2024.03.07 |
---|---|
sqld 2๊ณผ๋ชฉ ์ ๋ฆฌ(SQL ํ์ฉ) (3) | 2024.03.06 |
sqld 2๊ณผ๋ชฉ ์ ๋ฆฌ(SQL ๊ธฐ๋ณธ) (3) | 2024.03.05 |
sqld 1์ผ์ฐจ(45ํ ๊ธฐ์ถ 1๊ณผ๋ชฉ) (1) | 2024.02.23 |