๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
DB/MySQL

[MySQL] ์ œ์•ฝ ์กฐ๊ฑด - constraint

by yunamom 2022. 3. 29.
๋ฐ˜์‘ํ˜•

mysql

โœจ์ œ์•ฝ ์กฐ๊ฑด(constraint)์ด๋ž€?

 

๋ฐ์ดํ„ฐ์˜ ๋ฌด๊ฒฐ์„ฑ์„ ์ง€ํ‚ค๊ธฐ ์œ„ํ•ด,

 

๋ฐ์ดํ„ฐ๋ฅผ ์ž…๋ ฅ๋ฐ›์„ ๋•Œ ์‹คํ–‰๋˜๋Š” ๊ฒ€์‚ฌ ๊ทœ์น™์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.

 

์ด๋Ÿฌํ•œ ์ œ์•ฝ ์กฐ๊ฑด์€ CREATE ๋ฌธ์œผ๋กœ ํ…Œ์ด๋ธ”์„ ์ƒ์„ฑํ•  ๋•Œ๋‚˜ ALTER ๋ฌธ์œผ๋กœ ํ•„๋“œ๋ฅผ ์ถ”๊ฐ€ํ•  ๋•Œ๋„ ์„ค์ •ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

 

MySQL์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์ œ์•ฝ ์กฐ๊ฑด์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

๊ตฌ๋ถ„ ์„ค๋ช…
1. NOT NULL ๋ฌด์กฐ๊ฑด ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์–ด์•ผ ํ•œ๋‹ค.
2. UNIQUE ์ค‘๋ณต๋œ ๊ฐ’์„ ์ €์žฅํ•  ์ˆ˜ ์—†๋‹ค.
3. PRIMARY KEY๐Ÿ”‘ ๊ณ ์œ ํ‚ค - NOT NULL๊ณผ UNIQUE ์ œ์•ฝ ์กฐ๊ฑด์˜ ํŠน์ง•์„ ๋ชจ๋‘ ๊ฐ€์ง„๋‹ค.
4. FOREIGN KEY ์™ธ๋ž˜ํ‚ค - ๋‹ค๋ฅธ ํ…Œ์ด๋ธ”๊ณผ ์—ฐ๊ฒฐํ•ด์ฃผ๋Š” ์—ญํ• 
5. DEFAULT ๊ธฐ๋ณธ๊ฐ’ ์„ค์ •

๐Ÿ‘‡NOT NULL

CREATE TABLE ํ…Œ์ด๋ธ”์ด๋ฆ„
(
    ํ•„๋“œ์ด๋ฆ„ ํ•„๋“œํƒ€์ž… NOT NULL,
    ...
)

๐Ÿ‘‡UNIQUE

1. CREATE TABLE ํ…Œ์ด๋ธ”์ด๋ฆ„
(
    ํ•„๋“œ๋ช… ํ•„๋“œํƒ€์ž… UNIQUE,
    ...
)
2. CREATE TABLE ํ…Œ์ด๋ธ”์ด๋ฆ„
(
    ํ•„๋“œ์ด๋ฆ„ ํ•„๋“œํƒ€์ž…,
    ...,
    [CONSTRAINT ์ œ์•ฝ์กฐ๊ฑด์ด๋ฆ„] UNIQUE (ํ•„๋“œ์ด๋ฆ„)
)

๐Ÿ‘‡PRIMARY KEY - ๊ณ ์œ ํ‚ค

1. CREATE TABLE ํ…Œ์ด๋ธ”์ด๋ฆ„
(
    ํ•„๋“œ์ด๋ฆ„ ํ•„๋“œํƒ€์ž… PRIMARY KEY,
    ...
)
2. CREATE TABLE ํ…Œ์ด๋ธ”์ด๋ฆ„
(
    ํ•„๋“œ์ด๋ฆ„ ํ•„๋“œํƒ€์ž…,
    ...,
    [CONSTRAINT ์ œ์•ฝ์กฐ๊ฑด์ด๋ฆ„] PRIMARY KEY (ํ•„๋“œ์ด๋ฆ„)
)

๐Ÿ‘‡ FOREIGN KEY - ์™ธ๋ž˜ํ‚ค

CREATE TABLE ํ…Œ์ด๋ธ”์ด๋ฆ„
(
    ํ•„๋“œ์ด๋ฆ„ ํ•„๋“œํƒ€์ž…,
    ...,
    [CONSTRAINT ์ œ์•ฝ์กฐ๊ฑด์ด๋ฆ„]
    FOREIGN KEY (ํ•„๋“œ์ด๋ฆ„)
    REFERENCES ํ…Œ์ด๋ธ”์ด๋ฆ„ (ํ•„๋“œ์ด๋ฆ„)
)

๐Ÿ‘‡ DEFAULT

CREATE TABLE ํ…Œ์ด๋ธ”์ด๋ฆ„
(
    ํ•„๋“œ์ด๋ฆ„ ํ•„๋“œํƒ€์ž… DEFAULT ๊ธฐ๋ณธ๊ฐ’,
    ...
)

 

300x250

์ฝ”๋“œ