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 ์ œ์•ฝ ์กฐ๊ฑด์„ ์„ค์ •