개발이야기

[TIL]30. SQL 제약조건

무서운승태 2023. 11. 29. 19:40
728x90

우리가 erd를 설계하고 실제 데이터베이스 테이블을 만들 때 해당 칼럼에 대하여 제약조건을 줄 수가 있다. 제약조건을 추가해서 해당 칼럼에 의도에 맞는 값이 올 수 있도록 하는 것이다. 그리고 칼럼들 간 제약사항을 관리하고 조건을 위반한 데이터를 방지, 무결성을 유지한다.

 

제약조건의 종류

  • 고유 제약조건 (unique)
    • 중복된 값을 가질수 없다.
    • ex) 사용자 아이디, 이메일 등
  • null 제약조건
    • 특정 컬럼이 아무런 값을 입려받지 않도록 설정한다. 필수적으로 필요하지 않은 데이터
  • not null 제약조건
    • 특정 컬럼에 값이 무조건 입력되어야 한다.
  • 기본키 제약조건(primary key)
    • 고유하게 식별할수 있도록 보장한다.
  • 외래키 제약조건(foreign key)
    • 테이블관 연관 관계를 설정하는 조건
    • 칼럼이 다른 다른 특정행을 참조할 수 있도록 설정

 

외래키 제약조건 심화(연계 참조 무결성 제약조건)

  • CASCADE
    • 참조하고 있는 개체가 변경/삭제 될경우 함께 변경/삭제된다.
  • NO ACTION
    • 참조하고 있는 객체가 변경/삭제될 경우 아무런 행위를 하지 않고 에러를 발생시킨다.
  • SET NULL
    • 참조하고 있는 개체가 변경/삭제될 경우 현재 데이터를 null로 변경된다.
  • SET DEFAULT
    • 참조하고 있는 개체가 변경삭제 될 경우 현재 데이터를 기본 값으로 변경함