์ ์ฝ ์กฐ๊ฑด์ ํ ์ด๋ธ์ ์ ์ฅ๋๋ ๋ฐ์ดํฐ๋ฅผ ์ ์ฝํ๋ ํน์ ๊ท์น์ผ๋ก
์ปฌ๋ผ์ ๋ฐ์ดํฐ๋ฅผ ๋ฃ์ ๊ฒฝ์ฐ ํน์ ํ ์กฐ๊ฑด์ ๋ง์กฑ์์ผ์ผ ํ ๊ฒฝ์ฐ์ ์ฌ์ฉํ๋ค.
์ฆ, ์ง์ ๋ ์กฐ๊ฑด์ ๋ง์ง์์ผ๋ฉด ๋ฐ์ดํฐ ์ ๋ ฅ์ด ์๋๊ธฐ ๋๋ฌธ์ ๋ฐ์ดํฐ์ ์ ํ์ฑ์ด ์ ์ง๋๋ค.
๊ธฐ๋ณธ ํค ์ ์ฝ ์กฐ๊ฑด ( PK ) - primary key
NOT NULL
์ฐธ์กฐ ์ ์ฝ ์กฐ๊ฑด (์ธ๋ํค, ์ฐธ์กฐํค , FK) - foreign key references
์ฐ๊ณ ์ฐธ์กฐ ๋ฌด๊ฒฐ์ฑ ์ ์ฝ ์กฐ๊ฑด - on delete cascade
์ ๋ํฌ ์ ์ฝ ์กฐ๊ฑด ( ์ ๋ํฌ ํค, ํ๋ณด ํค) - unique
์ฒดํฌ ์ ์ฝ ์กฐ๊ฑด - check
1. ๊ธฐ๋ณธ ํค ์ ์ฝ ์กฐ๊ฑด (Primary Key, PK)
- ํ ์ด๋ธ ๋น 1๊ฐ๋ง ์กด์ฌ
- ์ค๋ณต ํ์ฉ ์ํจ, NULL ํ์ฉ ์ํจ
- ํ ๊ฐ์ ์ปฌ๋ผ์ ์ง์ ํ๋ ๊ฒ์ด ์ผ๋ฐ์ ์ด์ง๋ง ์ต๋ 16๊ฐ ์ปฌ๋ผ์ ์ง์ ํ ์ ์๋ค.
=> ๋ณตํฉ ํค
ํ ์ด๋ธ ์์ฑ ์ ์ง์ ํ๋ ๋ฐฉ๋ฒ ( ๊ฐ์ฅ ์ผ๋ฐ์ ์ผ๋ก ๋ง์ด ์ฌ์ฉ )
ํน์
- ๋ณตํฉ ํค : ํ ๊ฐ ์ด์์ ์ปฌ๋ผ์ด ํฉ์ณ์ ธ์ ๋ง๋ค์ด์ง ํค, 16๊ฐ ๊น์ง ๊ฐ๋ฅ
์ด๋ฏธ ๋ง๋ค์ด์ง ํ ์ด๋ธ์ ์ถ๊ฐํ๋ ๋ฐฉ๋ฒ
ALTER TABLE [ํ ์ด๋ธ ์ด๋ฆ] ADD CONSTRAINT [์ด๋ฆ] [์ ์ฝ์กฐ๊ฑด ์ข ๋ฅ] ([์ ์ฉ ํ๋]);
๋ง๋ค์ด์ง ํ ์ด๋ธ์ ์์ ํ๋ ๊ฒ์ด๊ธฐ ๋๋ฌธ์ ALTER ์ฌ์ฉ!
ํ ์ด๋ธ ๊ตฌ์กฐ ํ์ธํ๋ ์ฟผ๋ฆฌ๋ฌธ desc employees; ๋ก ๋ณด๋ฉด
ํน์
์ ์ฝ ์กฐ๊ฑด ๊ฒ์ ์ฟผ๋ฆฌ๋ฌธ
select * from information_schema.TABLE_CONSTRAINTS tc where TABLE_NAME = 'employees'; ๋ก ๋ณด๋ฉด
2. NOT NULL ์ ์ฝ ์กฐ๊ฑด
- ์ ์ฝ ์กฐ๊ฑด์ด๋ผ๊ธฐ ๋ณด๋ค๋ ์ปฌ๋ผ์ ์์ฑ์ผ๋ก ์ทจ๊ธํ๋ค.
- ๋ฐ๋ผ์ ์ ์ฝ ์กฐ๊ฑด ๊ฒ์ ์ฟผ๋ฆฌ๋ฌธ์ด ์๋ ํ ์ด๋ธ ๊ตฌ์กฐ๋ฅผ ํ์ธํ๋ฉด ์ ์ ์๋ค.
ํ ์ด๋ธ ์์ฑ์ ์ถ๊ฐํ๋ ๋ฐฉ๋ฒ
์ด๋ฏธ ์กด์ฌํ๋ ํ ์ด๋ธ์ ์ถ๊ฐํ๋ ๋ฐฉ๋ฒ
ALTER TABLE [ํ ์ด๋ธ๋ช ] MODIFY [์ปฌ๋ผ๋ช ] [๋ฐ์ดํฐํ์ ]([์ฌ์ด์ฆ]) NOT NULL;
์ ์ฝ ์กฐ๊ฑด ์ญ์
ALTER TABLE [ํ ์ด๋ธ ์ด๋ฆ] DROP [์ ์ฝ์กฐ๊ฑด ์ข ๋ฅ];
> ์ ์ฝ ์กฐ๊ฑด 2 -
'DataBase > MariaDB' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
DB] ์ ์ฝ ์กฐ๊ฑด(constraint) 2 - ์ฐธ์กฐ ์ ์ฝ ์กฐ๊ฑด / ์ฐ๊ณ ์ฐธ์กฐ ๋ฌด๊ฒฐ์ฑ ์ ์ฝ ์กฐ๊ฑด / ์ ๋ํฌ ์ ์ฝ ์กฐ๊ฑด / ์ฒดํฌ ์ ์ฝ ์กฐ๊ฑด (0) | 2022.05.06 |
---|---|
DB] ํธ๋์ ์ (TRANSACTION) (0) | 2022.05.02 |
DB] DML 2 - SELECT (0) | 2022.04.28 |
DB] DML 1 - INSERT / UPDATE / DELETE / UPSERT (0) | 2022.04.28 |
DB] DDL(๋ฐ์ดํฐ ์ ์์ด) / ํ ์ด๋ธ (0) | 2022.04.28 |