์ถ์ฒ: ํต์ฌ ๋ฐ์ดํฐ ๋ชจ๋ธ๋ง
6/13(ํ)
- ์ผ์ด ์๋ชป๋์์ ๋ ๋ด๊ฐ ์ฑ ์์ง๋ ๊ฒ ์๋๊ธฐ ๋๋ฌธ์ ์ ์ฌํด์๋ ๊ณ ์ง๋ถ๋ฆฌ์ง ๋ง๊ณ ์ํค๋๋๋ก ํ ๊ฒ ์๊ฒฌ ์ ์์ ๋๋ง ์กฐ์ฌ์ค๋ฝ๊ฒ ํ๊ธฐโฆ
- ์ด ์ฑ
์ ์ด์๋ ์ด๋ก์ ๋ฐ์ค์ ๋ด์ฉ์ด ์ข์ผ๋๊น ์์ฃผ๋ณด๊ธฐ
์ฐ๋ฆฌ๊ฐ ์๊ฐ ๋ชป ํ ๋งํ ๊ฒ๋ค์ ์ ์๋ ค์ค๋ค.
๋ฌผ๋ฆฌ ๋ชจ๋ธ๋ง์ด๋
= ๋ ผ๋ฆฌ ๋ฐ์ดํฐ๋ชจ๋ธ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ข ๋ฅ์ ๋ง๊ฒ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ ์ ์๋ ์คํค๋ง ๊ตฌ์กฐ๋ก ๋ณํํ๋ ๊ณผ์ ์ด๋ค.
- ํ
์ด๋ธ ์์ฑ
์ํฐํฐ โ ํ ์ด๋ธ
์์ฑ โ ์ปฌ๋ผ
- ๋ฐ์ดํฐ ํ์ , ๊ธธ์ด, ๊ธฐ๋ณธ๊ฐ ์ ํ๊ธฐ
- ์ ์ฝ์กฐ๊ฑด ์ค์ : PK, FK, Not Null, Unique, Check
- ๊ธฐ์ด ๋ฐ์ดํฐ ๋ฃ๊ธฐ
- ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฑ๋ฅ ํฅ์
- ์ํฐํฐ๋ฅผ ๋ฐ์ ๊ทํ(์ญ์ ๊ทํ)
- ์ค๋ณต ์ปฌ๋ผ ์ถ๊ฐ
ex) SELECT salary, salary * 12 as ์ฐ๋ด
์ฐ๋ด์ ๊ณ์ฐํ๋ฉด ๋์ค๋ ์ปดํจํฐ๋ ์ปฌ๋ผ์ด๊ธฐ ๋๋ฌธ์ DB์ ์ ์ฅํ ํ์๊ฐ ์๋ค. ํ์ง๋ง ๊ธ์ก ๊ณ์ฐ์ ์ค์๊ฐ์ผ๋ก ํด์ผ ํ๋ ๊ฒฝ์ฐ์๋ ๋ฐ์ดํฐ๊ฐ ๋ง์ผ๋ฉด ๊ณ์ฐํ๋๋ฐ ์๊ฐ์ด ์ค๋๊ฑธ๋ฆฐ๋ค. ์ด๋ด ๋๋ ์ค๋ณต์ ๊ฐ์ํ๊ณ ์ฑ๋ฅ์ ์ํด ์ค๋ณต ์ปฌ๋ผ์ ๋ง๋ ๋ค. DB์ ๋ฏธ๋ฆฌ ์ ์ฅ์ ํด๋์ผ๋ฉด ๊ณ์ฐ์ ์ ํ๊ธฐ ๋๋ฌธ์ ์ฑ๋ฅ์ด ์ข์์ง๋ค.
- index
- ํํฐ์ ๋
์ด๋ก ์ ์ผ๋ก๋ ๋ ผ๋ฆฌ์ ๋ฌผ๋ฆฌ๋ฅผ ๊ตฌ๋ถํ์ง๋ง ์ค์ ๋ก๋ ๋ฌผ๋ฆฌ์์ ํด์ผ ํ ์ผ์ ๋ ผ๋ฆฌ์์ ๊ฐ์ด ํ๊ธฐ๋ ํ๋ค. ์ด๊ฑด ๋ ผ๋ฆฌ์์ ํด์ผ ํ๊ณ ์ด๊ฑด ๋ฌผ๋ฆฌ์์ ํด์ผ ํ๋ค ๊ตณ์ด ์ด๋ ๊ฒ ์ ๊ทธ์ด์ ๊ตฌ๋ถ์ง์ ํ์ ์์. ์ํฉ์ ๋ฐ๋ผ ์ ์ฐํ๊ฒ ํ๋ฉด ๋๋ค.
ํ ์ด๋ธ ์ค๊ณ
โ ๋์ด๊ฐ
๊ด๊ณ ์ค๊ณ
๊ธฐ๋ณธ์ ์ธ ๊ด๊ณ, ์ํธ๋ฐฐํ์ ๊ด๊ณ
์ฌ๊ท์ ๊ด๊ณ
์ฝ๋๊ฐ ๊ณ์ธต ๊ตฌ์กฐ์ธ ๊ฒฝ์ฐ ์ฌ๊ท์ ๊ด๊ณ๋ก ํํํ ์ ์๋ค.
๊ณ์ธต ๊ตฌ์กฐ ์ ๋์ (๋ณ๋) โ ์ฌ๊ท
๊ณ์ธต ๊ตฌ์กฐ ๋จ๊ณ๊ฐ ์ ํด์ ธ์์ โ ์ฌ๊ท๋ก ํ ํ์ X
์ฌ๊ท๋ ์ด๋ ต๊ธฐ ๋๋ฌธ์ ์ฌ๋งํ๋ฉด ๊ณ ์ ์ผ๋ก ํ๋ ๊ฒ ์ข๋ค.
[ ๋ณ๋ ]
์ค๋ผํด์์๋ START WITH ~ CONNECT BY ~์ ํตํด ์ฌ๊ทํธ์ถ์ ์ฝ๊ฒ ๊ตฌํํ ์ ์๋ค.
[ ๊ณ ์ ]
๊ณ ์ ์ผ๋ก ํ ๊ฒฝ์ฐ์ ์ฌ์ ์์ผ๋ก ์ ๋ ฌํ๋ฉด ๊ณ์ธต๊ตฌ์กฐ๊ฐ ์ซ๋์จ๋ค.
์ปฌ๋ผ ์ค๊ณ
๋ฌผ๋ฆฌ์์ ์์ฑ์ ์ปฌ๋ผ์ผ๋ก ๋ณํํ๋ ๊ณผ์ ์ด ๋ณต์กํ์ง ์๋ค.
๋ฐ์ดํฐ ํ์คํ๋ฅผ ์ด๋ฏธ ์ํํ๋ค๋ฉด ๋ ผ๋ฆฌ ๋ฐ์ดํฐ๋ชจ๋ธ์ ์์ฑ์ ํ์ค์ฉ์ด์ ํ์ค๋จ์ด, ํ์ค๋๋ฉ์ธ์ ์ ์ฉํ๋ ์์ ์ด ๋๋ถ๋ถ์ด๋ค.
๋ ผ๋ฆฌ์์๋ ์์ฑ์ด ์๋ช ์ฑ์ ์ํด ๊ตฌ์ฒด์ ์ด์๋๋ฐ ๋ฌผ๋ฆฌ์์๋ ์คํ๋ ค ์ด๋ฆ์ด ์งง์์ ธ์ผ ํ๋ค.
why? ์ง์ ํ์ดํ์ ํด์ผ ํด์ ๊ธธ๋ฉด ์๋จ
์์ฑ-์ปฌ๋ผ ๋ณํ
๋ณดํต ๋ ผ๋ฆฌ์์ ์ ์ํ ์์ฑ์ ๋ฌผ๋ฆฌ์์ ๊ฑฐ์ ๊ทธ๋๋ก ์ฌ์ฉ๋๋ค.
[ ์์คํ ์ปฌ๋ผ ]
์ต์ด๋ฑ๋ก์ผ์, ์ต์ด๋ฑ๋ก์์๋ณ๋ฒํธ, ์ต์ข ์์ ์ผ์, ์ต์ข ์์ ์์๋ณ๋ฒํธ์ ๊ฐ์ ์์คํ ์ปฌ๋ผ์ ๋ชจ๋ ํ ์ด๋ธ์ ๊ณตํต์ผ๋ก ์ถ๊ฐํด์ผ ํ๋ค. (ํ ์ด๋ธ ๊ฐ์ฅ ๋ง์ง๋ง์ ์์นํ๋๋ก ํด์ผ ํจ)
๋ชฉ์ : ๋ฐ์ดํฐ๊ฐ ์๋ชป์ ๋ ฅ๋๊ฑฐ๋ ์๋ชป ์ ๋ฐ์ดํธ ๋์์ ๊ฒฝ์ฐ๋ฅผ ๋๋นํด์ ํ์

์ปฌ๋ผ๋ช ๋ถ์ฌ
์ปฌ๋ผ๋ช ์ ์์ฑ์ ๊ตฌ์ฑํ๋ ํ์ค๋จ์ด์ ์๋ฌธ์ฝ์ด ์กฐํฉ์ผ๋ก ๋ถ์ฌํ๋ค.
ํ์ค์ฉ์ด์ ๋ฑ๋ก๋์ง ์์๋ค๋ฉด ์์ฑ๋ช ์ ๋จ์ด์ ๋จ์ด๋ก ๋ถ๋ฆฌํ๊ณ , ํ์ค๋จ์ด์ ์๋ฌธ์ฝ์ด๋ฅผ ์กฐํฉํ์ฌ ์ปฌ๋ผ๋ช ์ ๋ถ์ฌํ๋ค.
์ด๋ ๊ฐ๋ ์ฑ์ ์ํด ์๋ฌธ ์ฝ์ด ์ฌ์ด๋ฅผ ์ธ๋๋ฐ๋ก ๊ตฌ๋ถํ๋ค.
๋ฐ์ดํฐ ํ์ ๋ฐ ๊ธธ์ด ์ง์
p. 194 ์ฐธ๊ณ
์ด์1
: CHAR, VARCHAR2์ค ์ด๋ ๊ฒ์ ์ ์ฉํ ๊ฒ์ธ๊ฐ
๊ฒฐ๋ก : 1๊ธ์(Y/N)๋ CHAR
๋ก ํ๊ณ ๊ทธ ์ธ๋ ๋ค VARCHAR
๋ก ํ๋ฉด ๋๋ค.
+) CHAR๋ ๋น ์นธ์ ๊ณต๋ฐฑ์ผ๋ก ์ฑ์
๐จย ์ด์2
:์ผ์(YYYYMMDD) ์ปฌ๋ผ์ VARCHAR2(8)
๋ก ํ ์ง DATE
๋ก ํ ์ง
๋ ๊ฐ์ ์์ด ์์ ๋ ๊ฐ ์ฅ๋จ์ ์ ์ ๊ณ ๋น๊ตํด์ ์ ํํ๋ฉด ๋๋ค.
Date | YYYYMMDD | |
---|---|---|
display | X | O |
์ ๋ ฌ | O | O |
๋ ์ง๊ณ์ฐ | O | X |
๋ฐ์ดํฐ ํ์ง | O | X |
- YYYYMMDD
์ฅ์ : to_char ์ ํด๋ ๋จ
๋จ์ : ๋ฐ์ดํฐ ํ์ง ๋จ์ด์ง
- Date
์ฅ์ : ๋ฐ์ดํฐ ํ์ง ์ฌ๋ผ๊ฐ, ์๊ฐ๊น์ง ์ ์ ์์, ๋ ์ง ๊ณ์ฐ ์ ์ ๋ฆฌ(but ๊ณ์ฐํ ์ผ ๋ณ๋ก ์์ ์๋ ๊ทธ๋๋ก ๋ณด์ฌ์ฃผ๋ ๊ฒฝ์ฐ๊ฐ ๋ ๋ง์)
๋จ์ : ๋ณด์ฌ์ค ๋๋ง๋ค to_char๋ฅผ ์จ์ผ ํจ
๋ฉด์ ์์ ๋ ์ง๋ฅผ ์ VARCHAR2(8)
YYYYMMDD๋ก ํ๋์ง ๋ฌผ์ด๋ดค์ ๋ ๋๋ตํ ์ ์์ด์ผ ํ๋ค.
โ ์ ๋ ์ผ์ด์ค์ ์ฐจ์ด๋ฅผ ์๊ณ ์๋์ง ๊ฒ์ฆ์ฉ ์ง๋ฌธ
๋ ์ง๋ฅผ ๊ณ์ฐํ ์ผ์ด ์์ด์ VARCHAR2(8)
๋ก ๊ฒฐ์ ํ๋ค๊ณ ๋๋ตํ๋ฉด๋จ
์ด๋ฐ ๊ฒ๋ค์ด ๋จ์ํ์ง๋ง ๊น์ด๊ฐ ์๋ ๋ด์ฉ์ด๋ค.
+) ๐จย VARCHAR2(8)
๋ก ํ๋ค๋ฉด ์๋์ฒ๋ผ CHECK CONSTRAINT
๋ฅผ ์ถ๊ฐํ๊ฑฐ๋ ์ธ๋ฑ์ค๋ฅผ ๋ง๋ค์ด์ ์ค๋ฅ ๋ฐ์ดํฐ๊ฐ ์
๋ ฅ๋์ง ์๋๋ก ํ ์ ์๋ค.
ALTER TABLE EMP ADD CONSTRAINT EMP_CK ENT DI
CHECK (ENT_DT = TO_CHAR (TO_DATE (ENT_DT, 'YYYYMMDD'), 'YYYYMMDD')) ;
'CREATE INDEX EMP_IX01 ON EMP( TO_DATE (ENT_DT, 'YYYYMMDD') );
INSERT INTO EMP VALUES('20190230');
- ORA-01839 : date not valid for month specified
์ธ๋ฑ์ค
YYYYMMDD๋ฅผ DATE๋ก ๋ณํํด์ ์ ์ฅํ๋ค.
์ธ๋ฑ์ค๋ฅผ ์ด์ฉํ๋ฉด INSERT ์ ์๋ชป๋ ํ์์ ๋ ์ง๊ฐ ๋ค์ด์ค๊ฒ ๋ ๊ฒฝ์ฐ ๋ณํ ์ ์๋ฌ๊ฐ ๋ฐ์ํ๋ค.
โ ์ฒดํฌ๋ฅผ ํตํด์ ๊ฒ์ฆํ๋ ๊ฑด ๋ค๋ค ๋ง์ด ์๋๋ฐ ์ธ๋ฑ์ค๋ฅผ ์ด์ฉํ๋ ๊ฒฝ์ฐ๋ ์ข์ ๋ฐฉ๋ฒ์ด๋
+) ๐กย ์ํ์์๋ ๋ ์ง๋ฅผ ๊ฑฐ์ ๋ค VARCAHR๋ฅผ ์ฌ์ฉํ๋ค.
์ด๋จ์๊ฐ ํ์ํ ๊ฑด DATE ์ฐ๋๋ฐ ๊ทธ ์ธ๋ ๋ค VARCAHR๋ค.
์ํ์์๋ ์๊ฐ๋ณด๋ค๋ ๋ ์ง๊ฐ ๋ ์ค์ํ๋ค.
์๋ฒ๊ฐ ์์ฒญ๋๊ฒ ๋ง์๋ฐ ๊ทธ 4000๋์ ์๋ฒ ์๊ฐ์ด ๋ค ์ ํํ์ง ์๋ค.
ex) ์ฆ์ฌ์ธ 10๋ ํ๋ฃจ์ฐจ์ด๋ก 10๋ ์ด ๊ฑธ๋ฆฌ๋ ์ ๊ฑธ๋ฆฌ๋๊ฐ ๊ฒฐ์ ๋จ
๊ทธ๋์ 11์ 50๋ถ์ฏค์ ๊ฑฐ๋๋ฅผ ๋ชปํ๊ฒ ๋ง๋๋ค. ์ฒ๋ฆฌ ์ค๊ฐ์ ๋ ์ง๊ฐ ๋์ด๊ฐ ์ ์๊ธฐ ๋๋ฌธ์ด๋ค. ๊ทธ๋ ์์ฒญ ์๊ฐํ๊ฒ ๋ค์๋ ๋๋๋ฉด ์๋จ
Uploaded by N2T