DB Constraints
PK
- Primary Key
- ๊ฐ ๋ ์ฝ๋๋ฅผ ๊ตฌ๋ณํ ์ ์๋ ๊ฐ
- ์์ ์ด ๋ถ๊ฐ๋ฅํ๊ณ ์ค๋ณต์ด ํ์ฉ๋์ง ์๋ ๊ฐ
- ํ ์ด๋ธ ๋น ํ๋๋ง ์ค์ ์ด ๊ฐ๋ฅํ๋ฉฐ, NULL ๊ฐ์ด ๋ ์ ์์
- ๊ธฐ๋ณธํค ํน์ ์๋ณ์๋ก ํธ์นญ
CREATE TABLE user (
id INT NOT NULL AUTO_INCREMENT,
name varchar(50)
PRIMARY KEY(id)
)
- RIMARY KEY(id)๋ฅผ ํตํด id ์์ฑ์ ๊ธฐ๋ณธํค๋ก ์ค์
- NOT NULL์ ํตํด NULL ๊ฐ์ด ๋ ์ ์๊ฒ ์ค์
- AUTO_INCREMENT๋ก ๋ ์ฝ๋๊ฐ ์์ฑ๋ ๋๋ง๋ค ์๋์ผ๋ก ์ฆ๊ฐ
FK
- Foreign Key
- ๋ค๋ฅธ ํ ์ด๋ธ์ ๋ ์ฝ๋๋ฅผ ์ฐธ์กฐํ๊ธฐ ์ํ ๊ฐ
- ๋ค๋ฅธ ํ ์ด๋ธ์ ๊ธฐ๋ณธํค๋ฅผ ์ฌ์ฉํด์ ํํ
- ํ ์ด๋ธ์ PK๊ฐ ๋ค๋ฅธ ํ ์ด๋ธ์ FK๋ก ์ฐธ์กฐ๋๊ณ ์๋ค๋ฉด, PK ํ ์ด๋ธ์ ๋ ์ฝ๋ ์ญ์ ๋ถ๊ฐ๋ฅ
- FK๋ PK์ ๋์ผํ ์๋ฃํ์ผ๋ก ์ค์
CREATE TABLE orders (
order_id INT NOT NULL AUTO_INCREMENT,
user_id INT NOT NULL,
order_date DATE,
PRIMARY KEY(order_id),
FOREIGN KEY(user_id) REFERENCES user(id)
);
- order_id๋ฅผ PK๋ก ์ค์
- FOREIGN KEY(user_id)๋ฅผ ํตํด user_id ์์ฑ์ FK๋ก ์ค์
- REFERNCES user(id)๋ฅผ ํตํด user_id๋ user ํ ์ด๋ธ์ id ๊ฐ์ ์ฐธ์กฐํ๋๋ก ์ค์
Unique
- ์์ฑ์ ๋ํด์ ์ค๋ณต๋ ๊ฐ์ ํ์ฉํ์ง ์๋ ์ ์ฝ ์กฐ๊ฑด
- ๊ธฐ๋ณธํค์ ๋ฌ๋ฆฌ ํ ์ด๋ธ ๋น ์ฌ๋ฌ๊ฐ ์ค์ ์ด ๊ฐ๋ฅ
- Null ๊ฐ์ ํ์ฉํ์ง๋ง, ์์ฑ ๋น ํ ๊ฐ์ Null ๊ฐ๋ง ํ์ฉ
CREATE TABLE user (
id INT NOT NULL AUTO_INCREMENT,
name VARCHAR(50),
email VARCHAR(320),
phone VARCHAR(15),
UNIQUE (email, phone),
PRIMARY KEY (id)
);
- email๊ณผ phone ์์ฑ์ Unique ์ ์ฝ ์กฐ๊ฑด์ ์ค์