ํ
์ด๋ธ ์ ์ฝ ์กฐ๊ฑด
ํ
์ด๋ธ์ ์ฃผ์ ์ ํ ์๋ฃ๊ฐ ์
๋ ฅ๋๋ ๊ฒ์ ๋ฐฉ์งํ๊ธฐ ์ํด ์ฌ๋ฌ ๊ฐ์ง ๊ท์น์ ์ ์ฉํด ๋๋ ๊ฒ
-
NOT NULL
์ปฌ๋ผ์ ํ์ ํ๋ํ ์ํฌ ๋ ์ฌ์ฉํ๋ฉฐ, NOT NULL ์ ์ฝ์กฐ๊ฑด ์ค์ ์ ํด๋น ์ปฌ๋ผ์๋ ๊ผญ ๋ฐ์ดํฐ๋ฅผ ์
๋ ฅํด์ผ ํจ
-
UNIQUE
๋ฐ์ดํฐ์ ์ ์ผ์ฑ์ ๋ณด์ฅ(์ค๋ณต X) ํ๊ณ , ์๋์ผ๋ก ์ธ๋ฑ์ค๊ฐ ์์ฑ
- UNIQUE๋ NULL์ ํ์ฉํ์ง๋ง, Primary Key๋ NULL์ ํ์ฉํ์ง ์์
- UNIQUE๋ ํ๋์ ํ
์ด๋ธ์ ์ฌ๋ฌ ์์ฑ์ ์ ์ฉํ ์ ์์ง๋ง Primary Key๋ ํ ํ
์ด๋ธ ๋น ํ๋๋ง ์กด์ฌ!
CHECK
์ปฌ๋ผ์ ๊ฐ์ ์ด๋ค ํน์ ๋ฒ์๋ก ์ ํ
ALTER TABLE STUDENT
ADD CONSTRAINT EMP2_CK_COMM CHECK (comm >= 1 AND comm <= 100);
DEFAULT
๋ฐ์ดํฐ๋ฅผ ์
๋ ฅํ์ง ์์๋ ์ง์ ๋ ๊ฐ์ด ๊ธฐ๋ณธ์ผ๋ก ์
๋ ฅ
- default๋ผ๊ณ ๊ฐ์ ๋ช
์ํ๋ฉด ๊ธฐ๋ณธ๊ฐ์ด ๋ค์ด๊ฐ
- ์ด์ด๋ฆ์ด ๋ช
์๋์ง ์์ผ๋ฉด ์๋ ๊ธฐ๋ณธ๊ฐ
- ๊ฐ์ ์ง์ ์
๋ ฅํ๋ฉด ๊ธฐ๋ณธ๊ฐ์ ๋ฌด์๋จ
PRIMARY KEY
๊ธฐ๋ณธํค : UNIQUE + NOT NULL
- ๊ธฐ๋ณธํค๋ ๊ทธ ๋ฐ์ดํฐ ํ์ ๋ํํ๋ ์ปฌ๋ผ์ผ๋ก์์ ์ญํ ์ ์ํํ์ฌ ๋ค๋ฅธ ํ
์ด๋ธ์์ ์ธ๋ํค๋ค์ด ์ฐธ์กฐํ ์ ์๋ ํค๋ก์์ ์๊ฒฉ์ ๊ฐ์ง๊ณ ์๋ค. => ์ฐธ์กฐ ๋ฌด๊ฒฐ์ฑ
- ์ ๋ํฌ ์ ์ฝ์กฐ๊ฑด๊ณผ ๋ง์ฐฌ๊ฐ์ง๋ก ๊ธฐ๋ณธํค๋ฅผ ์ ์ํ๋ฉด ์๋์ผ๋ก ์ธ๋ฑ์ค๋ฅผ ์์ฑ, ๊ทธ ์ด๋ฆ์ ๊ธฐ๋ณธํค ์ ์ฝ์กฐ๊ฑด์ ์ด๋ฆ๊ณผ ๊ฐ๋ค.
๐ก Tip
INDEX
๊ฒ์ํค๋ก์ ๊ฒ์ ์๋๋ฅผ ํฅ์์ํจ๋ค. (UNIQUE, PRIMARY KEY ์์ฑ์ ์๋ ์์ฑ)
FOREIGN KEY
๊ธฐ๋ณธํค๋ฅผ ์ฐธ์กฐํ๋ ์นผ๋ผ or ์ปฌ๋ผ๋ค์ ์งํฉ
(์ธ๋ํค๋ ๊ธฐ๋ณธํค๋ ์ ๋ํฌ๊ฐ ์๋๋ฉด ์์ฑ ์ ์ฝ!)
- ์ธ๋ํค๋ฅผ ๊ฐ์ง๋ ์ปฌ๋ผ์ ๋ฐ์ดํฐ ํ = ์ธ๋ํค๊ฐ ์ฐธ์กฐํ๋ ๊ธฐ๋ณธํค์ ์ปฌ๋ผ๊ณผ ๋ฐ์ดํฐ ํ(์ด๋ฅผ ์ด๊ธฐ๋ฉด ์ฐธ์กฐ ๋ฌด๊ฒฐ์ฑ ์ ์ฝ์ ์ํด ํ
์ด๋ธ ์์ฑ X)
- ์ธ๋ํค์ ์ํด ์ฐธ์กฐ๋๊ณ ์๋ ๊ธฐ๋ณธํค : ์ญ์ ๋ถ๊ฐ!
+ CASCADE
- ON UPDATE CASCADE : ๊ธฐ๋ณธํค๊ฐ ์์ ๋ ๊ฒฝ์ฐ ์ธ๋ํค๋ ๊ฐ์ด ์์
- ON DELETE CASCADE : ์ฐ์ฐ์์ ํจ๊ป ์ ์๋ ์ธ๋ํค์ ๋ฐ์ดํฐ๋ ๊ทธ ๊ธฐ๋ณธํค๊ฐ ์ญ์ ๋ ๋ ๊ฐ์ด ์ญ์
์ ์ฝ์กฐ๊ฑด ํ์ธ
์ ์ฝ์กฐ๊ฑด์ ํ์ธํ ์ ์๋ ํ
์ด๋ธ์ USER_CONS_COLUMNS, USER_CONSTRAINTS
-
USER_CONS_COLUMNS : ์ปฌ๋ผ์ ํ ๋น๋ ์ ์ฝ์กฐ๊ฑด ์กฐํ

-
USER_CONSTRAINTS : ์ ์ ๊ฐ ์์ ํ ๋ชจ๋ ์ ์ฝ์กฐ๊ฑด ์กฐํ

Reference
์ถ์ฒ