Constraints
์ปฌ๋ผ์ Constraints (์ ์ฝ์กฐ๊ฑด) ์ฃผ๊ธฐ
์ปฌ๋ผ๋ง๋ค ๋ ์ ์ฝ์กฐ๊ฑด์ ๊ฑธ์ด๋ ์ ์์ต๋๋ค.
- ์ด ์ปฌ๋ผ์ NOT NULL ํด์ผํ๋ค (ํ ๋น ๋ฐ์ดํฐ ์ง์ด๋ฃ์ง ๋ง์๋ผ)
- ์ด ์ปฌ๋ผ์ ์๋ ๋ฐ์ดํฐ๋ค์ ํญ์ UNIQUE ํด์ผํ๋ค
- ์ฌ๊ธฐ์ ์์๋ง๊ณ ์์๋ง ๋ค์ด์ค๋์ง CHECK ํ๋ผ
- ์ด ์ปฌ๋ผ์ PRIMARY KEY๋ก ์ค์ ํ๋ผ
๋ฑ ์ฌ๋ฌ๊ฐ์ง ์ค์ ์ด ๊ฐ๋ฅํฉ๋๋ค.
1. NOT NULL ์ ์ฝ์กฐ๊ฑด
์ปฌ๋ผ ๋ง๋ค ๋ ์ฐ์ธก์ NOT NULL์ ์ฒดํฌํด์ฃผ๋ฉด NULL ๊ธ์ง๋ผ๋ ์ ์ฝ์ ๊ฑธ ์ ์์ต๋๋ค.
์๋ ๋ฐ์ดํฐ๋ฃ์ ๋ ๊น๋จน๊ณ ์๋ฃ์ผ๋ฉด ์๋์ผ๋ก NULL์ด ๋ฉ๋๋ค.
๊ทธ๋์ NOT NULL ์ ๋ ฅํด๋๋ฉด ๋์ค์ ์ด๋ฆ์ปฌ๋ผ์ด๋ id์ปฌ๋ผ์ ๊น๋จน๊ณ ๋ฐ์ดํฐ๋ฅผ ์๋ฃ์ผ๋ฉด ์ ์ฅ์ด ๋์ง ์์ต๋๋ค.
2. UNIQUE ์ ์ฝ์กฐ๊ฑด
์ปฌ๋ผ ๋ง๋ค ๋ ์ฐ์ธก์ UNIQUE ๋ฅผ ์ฒดํฌํด์ฃผ๋ฉด UNIQUE ๋ผ๋ ์ ์ฝ์ ๊ฑธ ์ ์์ต๋๋ค.
UNIQUE๊ฐ ๋ถ์ด์๋ ์ปฌ๋ผ์์์ ๋ชจ๋ ํ์ด ๊ฐ๊ฐ ๋ค๋ฅธ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ง๊ณ ์์ด์ผํฉ๋๋ค.
๊ทธ๋์ ๋ค๋ฅธ ํ์ ์๋ ๊ฐ์ ์ ์ฅํ๋ ค๊ณ ํ๋ฉด ์ ์ฅ์ด ์๋ฉ๋๋ค.
์ง์ง์ธ์ง ํ ์คํธํด๋ด ์๋ค.
ํน์ ์ตํ๋จ์ UNIQUE(์ปฌ๋ผ1, ์ปฌ๋ผ2 ...) ์ด๋ ๊ฒ ๋ฃ์ด๋ ๋ฉ๋๋ค.
๊ทผ๋ฐ ์ด๋ ๊ฒ 2๊ฐ ์ด์์ ์ปฌ๋ผ์ ๋ฃ๊ฒ๋ ๊ฒฝ์ฐ ์ปฌ๋ผ1๊ณผ ์ปฌ๋ผ2 ๊ฐ์ด ์ ๋ถ ๊ฐ์์ผ ์ ์ฅ์ ๋ง์์ค๋๋ค.
1
aaa
20
2
aaa
21
์ด๊ฑด ์ ์ฅ์ ํ์ฉํด์ฃผ๋๋ฐ
1
aaa
20
2
aaa
20
์ด๊ฑด ์ ์ฅ์ด ์๋ฉ๋๋ค.
3. CHECK() ์ ์ฝ์กฐ๊ฑด
์ปฌ๋ผ๋ง๋ค ๋ ์ฐ์ธก์ CHECK () ๋ฃ์ผ๋ฉด ์ปฌ๋ผ์ ๋ค์ด๊ฐ ๊ฐ์ ์ ์ฝ์ ๋ ์ ์์ต๋๋ค.
๋ฑํธ ๋ถ๋ฑํธ AND OR ์จ์ ์กฐ๊ฑด์์ฒ๋ผ ์ ๋ ฅํ๋ฉด ๋ฉ๋๋ค. IN ์ฐ์ฐ์๋ ๊ฐ๋ฅํฉ๋๋ค.
๊ทธ๋ ์ ์์ฒ๋ผ ํด๋์ผ๋ฉด ์ด์ '๋์ด' ์ปฌ๋ผ์ ์์ ๋ชป๋ฃ์
4. PRIMARY KEY ์ ์ฝ์กฐ๊ฑด
row ํ๋ ์ ์ฅํ ๋ ๋ง๋ค id๊ฐ์๊ฑธ ๊ธฐ๋กํด๋ฌ์ผ ๋์ค์ ํธ๋ฆฌํฉ๋๋ค.
ํ์์ด๋ฆ
ํ๋
๋ฐ
๊น์ฒ ์
1
2
๊น์ํฌ
1
2
์ด์์ฐ
2
3
์๋ฅผ ๋ค์ด DB์ ํ์ ์ถ์๋ถ๋ฅผ ์ ์ฅํ๋ ค๋ฉด ํ์์ ์ด๋ฆ ํ๋ ๋ฐ๋ง ์ ์ฅํ๋ค๊ณ ๊ฐ์ ํด๋ด ์๋ค.
2ํ๋ 3๋ฐ์ ์ด์์ฐ ํ์์ด ๋ ์ ํํ๋ฉด ์ด๋ป๊ฒ ๋์ ๊ตฌ๋ถํ ๊น์???
๊ทธ๋์ ํ์๋ง๋ค ์ ๋ํฌํ ๋ฒํธ๋ฅผ ๋ฌ์๋์ผ ์ข์ง ์์๊น์.
ํ๋ฒ
ํ์์ด๋ฆ
ํ๋
๋ฐ
1
๊น์ฒ ์
1
2
2
๊น์ํฌ
1
2
3
์ด์์ฐ
2
3
4
์ด์์ฐ
2
3
๊ฐ ํ์๋ง๋ค ์ ๋ํฌํ ํ๋ฒ์ ๋ถ์ฌํ๋ฉด ๋์ค์ ๋์ผํ ์ด๋ฆ์ ๋ฐ์ดํฐ๊ฐ ๋ค์ด์๋ ๊ฐ๊ฐ ๊ตฌ๋ถ์ง๊ธฐ๊ฐ ๊ฐ๋ฅํฉ๋๋ค.
์ฌ๊ธฐ์ 'ํ๋ฒ' ์ปฌ๋ผ์ primary key ๋ผ๊ณ ๋ถ๋ฆ ๋๋ค.
primary key๋ ๊ฐ ํ์ ๊ตฌ๋ถ์ง๊ธฐ ์ํด ๊ฐ๊ฐ ์ ๋ํฌํ ๋ฐ์ดํฐ๋ฅผ ๋ด๊ณ ์๋ ์ปฌ๋ผ์ ๋๋ค.
- ๋ฌธ์ ๋ฃ์ด๋ ๋๋๋ฐ ๋ณดํต์ 1์ฉ ์ฆ๊ฐํ๋ ์ซ์๋ฅผ ์ฃผ๋ก ๋ฃ์ต๋๋ค.
- ์์ ์์ผ๋ฉด ์์ด๋ ์๊ด์๋๋ฐ ๋ณดํต์ ํ ์ด๋ธ๋ง๋ค ๋ง๋ค์ด๋๋๊ฒ ์ข์ต๋๋ค.
- ์ฌ๋ฌ ์ปฌ๋ผ์ ๋ฌถ์ด์ primary key๋ก ์ง์ ์ด ๊ฐ๋ฅํฉ๋๋ค. ์ฌ๋ฌ ์ปฌ๋ผ ๋ฌถ์ ๊ฒฐ๊ณผ๊ฐ ๊ฐ ํ๋ง๋ค ์ ๋ํฌํ๊ธฐ๋ง ํ๋ฉด ๋ฉ๋๋ค.
์ปฌ๋ผ๋ง๋ค ๋ ์ฐ์ธก์ PRIMARY KEY ๋ผ๊ณ ํ๊ธฐํ๋ฉด ๊ทธ ์ปฌ๋ผ์ PRIMARY KEY ๋ก ๋ฑ๋กํด๋ ์ ์์ต๋๋ค.
๊ทธ๋ผ NOT NULL, UNIQUE ์ ์ฝ์กฐ๊ฑด๋ ์๋์ผ๋ก ๋ถ์ฌ๋ฉ๋๋ค.
5. ์ปฌ๋ผ๊ฐ ์๋ ์ฆ๊ฐ
๋ฃ์ด๋๋ฉด ํ ์ด๋ธ์ ํ์ด ์ถ๊ฐ๋ ๋ ์๋์ผ๋ก ์์์ 1์ฉ ์ฆ๊ฐ๋ ๊ฐ์ด ๋ถ์ฌ๋ฉ๋๋ค.
(์์) ํ ์ด๋ธ์ ๋ง์ง๋ง ํ์ id๊ฐ 100์ผ๋ก ๊ธฐ๋ก๋์ด์์๋ค๋ฉด
์๋ก ํ์ ์ถ๊ฐํ๋ฉด ์์์ id๋ฅผ 101๋ก ์ค์ ํด์ค๋๋ค.
- PRIMARY KEY ์กฐ๊ฑด ๋ฃ์ ๋ ์์ฃผ ํจ๊ป ์ฌ์ฉ๋ฉ๋๋ค.
6. CONSTRAINTS() ๋ฌธ๋ฒ์ผ๋ก ์ ์ฝ์กฐ๊ฑด์ฃผ๊ธฐ
์ ์ฝ์กฐ๊ฑด ์ค ๋ ๋ฐ์ ์ด๋ ๊ฒ ์จ๋ ๋ฉ๋๋ค.
์ ์ฝ์กฐ๊ฑด๋ง๋ค ์๋ช ์ ํด์ ๊ท์ฝ๊ฒ ์ด๋ฆ๋ถ์ฌ์ฃผ๊ณ ์ถ์ผ๋ฉด CONSTRAINT ๋ฌธ๋ฒ์ ์๋๋ค.
์ด๋ ๊ฒ ํด๋๋ฉด ๋์ค์ ์๋ฌ๊ฐ ๋ ๋ "์ ์ฝ์กฐ๊ฑด๋ช 2 ๋๋ฌธ์ ์๋ฌ๊ฐ ๋ฉ๋๋ค" ์ด๋ฐ ์์ผ๋ก ํ๊ธฐ๊ฐ ๋๋ฏ๋ก
SQL ์ฝ๋๊ฐ ๋์ํ์ง ์์ ๋ ๋ฒ๊ทธ์ฐพ๋ ๊ณผ์ ์ด ์ข ๋ ํธ๋ฆฌํ ์ ์์ต๋๋ค.
7. ์ ์ฝ์กฐ๊ฑด ์ถ๊ฐ
8. ์ ์ฝ์กฐ๊ฑด ์ญ์
์์ฑํ ์ ์ฝ์กฐ๊ฑด์ Constraints ํญ์์ ํ์ธํ ์ ์๋ค.
Last updated