MySQL - 제약 조건 및 테이블 변경

윤스타·2024년 4월 2일

MySQL

목록 보기
5/9
post-thumbnail

제약 조건

UNIQUE

중복 불가

CREATE TABLE <table-name> (
	column1 type UNIQUE,
    column2 type
);

CREATE TABLE test1 (
	column1 type NOT NULL,
    column2 type NOT NULL,
    UNIQUE (column1, column2) // value가 (value1, value2)조합인 데이터는 불가능
);

CHECK, CONSTRAINTS

직접 column에 제약 조건을 정의, 제약 조건의 이름 변경

CREATE TABLE <table-name> (
	column1 type,
    column2 CONSTRAINT 제약 조건의 이름 CHECK (column2의 조건)
);
ex) CREATE TABLE users (
		name VARCHAR(50),
    	age INT CONSTRAINT age_over_20 CHECK (age > 18)
	);

테이블 변경

ALTER TABLE

[참고] alter table (column의 수정 정보)

ADD COLUMN

column 추가

ALTER TABLE <table-name>
ADD COLUMN new-column type (DEFAULT default-value);

RENAME COLUMN

column 이름 변경

ALTER TABLE <table-name>
RENAME COLUMN column TO new-column

DROP COLUMN

column 삭제

ALTER TABLE <table-name>
DROP COLUMN column;

RENAME TABLE ~ TO ~

테이블 이름 변경

RENAME TABLE <table-name> TO <new-table-name>;

or

ALTER TABLE <table-name>
RENAME TO <new-table-name>;

MODIFY

column 정의 변경

ALTER TABLE <table-name> MODIFY column new-type;

CHANGE (주로 사용 x)

column 이름 변경과 column 정의 변경

ALTER TABLE <table-name> CHANGE column new-column new-type;
ex) ALTER TABLE companies CHANGE name company-name VARCHAR(50) DEFAULT 'unknown';

ADD CONSTRAINT

제약 추가하기

ALTER TABLE <table-name> ADD CONSTRAINT 제약 조건의 이름 CHECK (column의 조건);

DROP CONSTRAINT

제약 삭제하기

ALTER TABLE <table-name> DROP CONSTRAINT 제약 조건의 이름;
profile
사이버 노트

0개의 댓글