MySQL 제약조건

2020. 7. 23. 20:25SQL

제약 조건(constraint)

제약조건이란 데이터의 무결성을 지키기 위해, 데이터를 입력받을때 실행되는 검사 규칙을 의미한다.

이러한 제약조건은 CREATE문으로 테이블을 생성할때나 ALTER문으로 필드를 추가할때도 설정할수도 있다.

 

MySQL에서 사용 가능한 제약조건

 

1.NOT NULL

2.UNIQUE

3.PRIMARY KEY

4.FOREIGN KEY

5.DEFAULT

 

 

1.NOT NULL

NOT NULL 제약 조건을 설정하면, 해당필드는 NULL값을 저장할 수 없습니다.

즉, 이 제약조건이 설정된 필드는 무조건 데이터를 가지고 있어야합니다.

 

<syntax>

CREATE TABLE 테이블이름

(

    필드이름 필드타입 NOT NULL,

    ...

)

 

2.UNIQUE

UNIQUE 제약 조건을 설정하면, 해당 필드는 서로 다른 값을 가져야 합니다.

즉, 이 제약 조건이 설정된 필드는 중복된 값을 저장할 수 없습니다.

 

<syntax>

1.

CREATE TABLE 테이블이름

(

   필드명 필드타입 UNIQUE,

    .....

)

 

 

2.

CREATE TABLE 테이블이름

(

    필드이름 필드타입,

    ......

    [CONSTRAINT 제약조건이름] UNIQUE (필드이름)

)

 

PRIMARY KEY

PRIMARY KEY 제약조건을 설정하면, 해당 필드는 NOT NULL과 UNIQUE 제약 조건의 특징을 모두 가진다.

따라서 이 제약 조건이 설정된 필드는 NULL 값을 가질수 없으며, 또한 중복된 값을 가져서도 안된다.

이러한 PRIMART KEY 제약 조건을 기본 키라고 한다.

주의 할점은 UNIQUE는 한 테이블의 여러 필드에 설정할 수 있지만, PRIMARY KEY는 테이블당 오직 

하나의 필드에만 설정할수 있다

 

 

<syntax>

1.

CREATE TABLE 테이블이름

(

   필드이름 필드타입 PRIMARY KEY,

    .....

)

 

2.

CREATE TABLE 테이블이름

(

     필드이름 필드타입,

      ...., 

     [CONSTRAINT 제약조건이름] PRIMARY KEY(필드이름)

)

 

FOREIGN KEY

FOREIGN KEY 제약 조건을 설정한 필드는 외래 키라고 부르며, 한 테이블을 다른 테이블과 연결해주는역할을 한다.

외래키가 설정된 테이블에 레코드를 입력하면, 기준이 되는 테이블의 내용을 참조해서 레코드가

입력된다.

즉, FOREIGN KEY 제약 조건은 하나의 테이블을 다른 테이블에 의존하게 만든다.

FOREIGN KEY 제약조건을 설정할때 참조되는 테이블의 필드는 반드시 UNIQUE 나 PRIMARY KEY 제약조건이 설정되어 있어야한다.

 

 

<syntax>

 

CREATE TABLE 테이블이름

(

   필드이름 필드타입,

    ......,

   [CONSTRAINT 제약조건이름]

    FOREIGN KEY(필드이름)

    REFERENCES 테이블이름(필드이름)

)

 

*참조되는 테이블의 이름은 REFERENCES 키워드 다음에 명시된다.

 

 

DEFAULT

DEFAULT 제약 조건은 해당 필드의 기본값을 설정할수 있게 해준다.

 

<syntax>

CREATE TABLE 테이블이름

(

    필드이름 필드타입 DEFAULT 기본값,

    .....

)

 

출처 http://tcpschool.com/mysql/mysql_multipleTable_join

'SQL' 카테고리의 다른 글

The SQL WHERE Clause  (0) 2020.07.18
The SQL SELECT DISTINCT Statement  (0) 2020.07.18
SELECT Statement  (0) 2020.07.16
데이터 베이스 테이블  (0) 2020.07.15
SQL 이란  (0) 2020.07.15