MySql 제약조건

 

제약조건(constraint)란, 데이터의 무결성을 지키기 위해 제한된 조건을 의미한다.
데이터를 삽입할때 조건을 만족했을 경우에만 데이터가 삽입되도록 제약을 할 수 있는 것.

send me email if you have any questions.


무결성

  • null
    필수 입력 사항이 아니며 데이터 값이 비워져있어도 상관없다.

  • not null
    필수 입력 사항. 데이터값이 무조건 있어야 한다.

  • unique
    같은 테이블 내에서 중복이 안되는 제약조건으로 고유한 데이터들의 제약조건이다.

  • primary key
    not null 과 unique가 합쳐진 제약조건. 데이터들을 식별할때 쓰이는 제약조건. pk 라고도 불린다.

  • foreign key
    외래키이다. 다른 테이블을 참조하며 참조하는 테이블에서 존재하는 값만 사용 가능하다.

  • check
    주어진 조건에 해당하는 값만 입력 가능하다. 조건에 해당하지 않는 데이터가 들어오면 오류를 발생시킨다.

  • default
    기본값을 설정한다.

제약조건 확인

mysql> select * from information_schema.table_constraints;

제약조건 추가 (primary key)

mysql> alter table (tableName) add constraint primary key (columnName);

제약조건 추가 (foreign key)

mysql> alter table (tableName) add constraint (constraintName) foreign key (columnName) references 부모테이블명 (pkColumnName) on delete cascade / on update cascade;

제약조건 추가 (not null)

mysql> alter table (tableName) modify (columnName) (dataType) constraint (constraintName) not null;

제약조건 삭제

mysql> alter table (tableName) drop constraint (constraintName);

제약조건 삭제 (foreign key)

mysql> alter table (tableName) foreign key (constraintName);