🦭 CONSTRAINTS

λ‚˜λ‚˜'s BrainΒ·2024λ…„ 7μ›” 8일

MariaDB

λͺ©λ‘ 보기
10/15
post-thumbnail

πŸ“ CONSTRAINTS

μ œμ•½μ‘°κ±΄(CONSTRAINT)은 ν…Œμ΄λΈ”μ— 데이터가 μž…λ ₯λ˜κ±°λ‚˜ μˆ˜μ •λ  λ•Œμ˜ κ·œμΉ™μ„ μ •μ˜ν•˜μ—¬ 데이터 무결성을 보μž₯

πŸ”– NOT NULL

NULL값을 ν—ˆμš©ν•˜μ§€ μ•ŠλŠ” μ œμ•½μ‘°κ±΄
데이터가 λ°˜λ“œμ‹œ μž…λ ₯λ˜μ–΄μ•Ό 함

CREATE TABLE user_notnull (
    user_no INT NOT NULL,
    user_id VARCHAR(255) NOT NULL,
    user_pwd VARCHAR(255) NOT NULL,
    user_name VARCHAR(255) NOT NULL,
    gender VARCHAR(3),
    phone VARCHAR(255) NOT NULL,
    email VARCHAR(255)
) ENGINE=INNODB;

INSERT INTO user_notnull (user_no, user_id, user_pwd, user_name, gender, phone, email)
VALUES (1, 'user01', 'pass01', '홍길동', '남', '010-1234-5678', 'hong123@gmail.com');

πŸ”– UNIQUE

쀑볡값을 ν—ˆμš©ν•˜μ§€ μ•ŠλŠ” μ œμ•½μ‘°κ±΄
νŠΉμ • 컬럼의 값이 κ³ μœ ν•΄μ•Ό 함

CREATE TABLE user_unique (
    user_no INT NOT NULL UNIQUE,
    user_id VARCHAR(255) NOT NULL,
    user_pwd VARCHAR(255) NOT NULL,
    user_name VARCHAR(255) NOT NULL,
    gender VARCHAR(3),
    phone VARCHAR(255) NOT NULL UNIQUE,
    email VARCHAR(255)
) ENGINE=INNODB;

INSERT INTO user_unique (user_no, user_id, user_pwd, user_name, gender, phone, email)
VALUES (1, 'user01', 'pass01', '홍길동', '남', '010-1234-5678', 'hong123@gmail.com');

πŸ”– PRIMARY KEY

ν…Œμ΄λΈ”μ—μ„œ ν•œ ν–‰μ˜ 정보λ₯Ό μ°ΎκΈ° μœ„ν•΄ μ‚¬μš©
NOT NULL + UNIQUE μ œμ•½μ‘°κ±΄μ„ κ°€μ§„λ‹€.
ν•œ ν…Œμ΄λΈ”μ— ν•˜λ‚˜λ§Œ μ„€μ • κ°€λŠ₯

CREATE TABLE user_primarykey (
    user_no INT PRIMARY KEY,
    user_id VARCHAR(255) NOT NULL,
    user_pwd VARCHAR(255) NOT NULL,
    user_name VARCHAR(255) NOT NULL,
    gender VARCHAR(3),
    phone VARCHAR(255) NOT NULL,
    email VARCHAR(255)
) ENGINE=INNODB;

INSERT INTO user_primarykey (user_no, user_id, user_pwd, user_name, gender, phone, email)
VALUES (1, 'user01', 'pass01', '홍길동', '남', '010-1234-5678', 'hong123@gmail.com');

πŸ”– FOREIGN KEY

μ°Έμ‘° 무결성을 보μž₯ν•˜κΈ° μœ„ν•΄ μ‚¬μš©
참쑰된 λ‹€λ₯Έ ν…Œμ΄λΈ”μ˜ κ°’λ§Œ μ‚¬μš©ν•  수 있음

CREATE TABLE user_grade (
    grade_code INT NOT NULL UNIQUE,
    grade_name VARCHAR(255) NOT NULL
) ENGINE=INNODB;

CREATE TABLE user_foreignkey (
    user_no INT PRIMARY KEY,
    user_id VARCHAR(255) NOT NULL,
    user_pwd VARCHAR(255) NOT NULL,
    user_name VARCHAR(255) NOT NULL,
    gender VARCHAR(3),
    phone VARCHAR(255) NOT NULL,
    email VARCHAR(255),
    grade_code INT,
    FOREIGN KEY (grade_code) REFERENCES user_grade (grade_code)
) ENGINE=INNODB;

INSERT INTO user_grade VALUES (10, 'μΌλ°˜νšŒμ›');
INSERT INTO user_foreignkey (user_no, user_id, user_pwd, user_name, gender, phone, email, grade_code)
VALUES (1, 'user01', 'pass01', '홍길동', '남', '010-1234-5678', 'hong123@gmail.com', 10);

πŸ”– CHECK

μ§€μ •λœ 쑰건을 μœ„λ°˜ν•˜λŠ” 값을 ν—ˆμš©ν•˜μ§€ μ•ŠλŠ” μ œμ•½μ‘°κ±΄

CREATE TABLE user_check (
    user_no INT AUTO_INCREMENT PRIMARY KEY,
    user_name VARCHAR(255) NOT NULL,
    gender VARCHAR(3) CHECK(gender IN ('남','μ—¬')),
    age INT CHECK(age >= 19)
) ENGINE=INNODB;

INSERT INTO user_check (user_no, user_name, gender, age)
VALUES (1, '홍길동', '남', 25);

πŸ”–DEFAULT

μ»¬λŸΌμ— 기본값을 μ„€μ •ν•˜λŠ” μ œμ•½μ‘°κ±΄
값이 μž…λ ₯λ˜μ§€ μ•Šμ„ 경우 기본값이 적용됨

CREATE TABLE tbl_country (
    country_code INT AUTO_INCREMENT PRIMARY KEY,
    country_name VARCHAR(255) DEFAULT 'ν•œκ΅­',
    population VARCHAR(255) DEFAULT '0λͺ…',
    add_day DATE DEFAULT CURRENT_DATE,
    add_time DATETIME DEFAULT CURRENT_TIMESTAMP
) ENGINE=INNODB;

INSERT INTO tbl_country (country_code)
VALUES (NULL);
profile
"λ‘œμ»¬μ—μ„  λ¬Έμ œμ—†μ—ˆλŠ”λ°β€¦?"

0개의 λŒ“κΈ€