[PostgreSQL] 제약조건

2021. 3. 2. 16:00
728x90

Check constraints

Check constraints는 가장 일반적인 제약 조건입니다. 특정 컬럼의 값이 boolean식에 부합하는지를 체크합니다.

예를 들어 물건의 가격에 check constraint를 대입했을 때입니다.

products 테이블에서 price 컬럼의 가격이 0보다 큰지를 비교하는 제약조건입니다.

CREATE TABLE products (

    product_no integer,

    name text,

    price numeric CHECK (price > 0));

 

Not null

Not null 제약조건은 지정한 컬럼이 null값을 갖지 않아야 하는 조건입니다.

products 테이블에서 product_no와 name 컬럼은 null값을 가져서는 안된다는 것을 의미합니다.

CREATE TABLE products (

    product_no integer NOT NULL,

    name text NOT NULL,

    price numeric);

 

Unique

Unique 제약조건은 테이블의 모든 행과 열에 대해서 유일한 것을 보장합니다.

products 테이블에서 product_no 컬럼을 unique 제약 조건을 걸어 값이 중복 되지 않도록 합니다.

CREATE TABLE products (

    product_no integer UNIQUE,

    name text,

    price numeric);

 

Primary key

Primary Key는 간단히 말하면 unique 제약조건과 not-null 제약조건이 합친 것을 말합니다. 해당 컬럼에 대해 유일한 식별자이고 null이 아닌 것을 primary key 제약조건이라고 합니다.

products 테이블에서 product_no 컬럼을 primary key 제약 조건을 걸어 값이 중복되지 않고 null값이 없도록 하여 product_no컬럼이 유일한 식별자가 되게 합니다.

CREATE TABLE products (

    product_no integer PRIMARY KEY,

    name text,

    price numeric);

 

Foreign key

Foreign key는 지정한 컬럼이 다른 테이블의 primary key인 것을 말합니다.

products 테이블의 b와 c컬럼을 foreign key로 지정했습니다. 그리고 컬럼b와 c는 products2 테이블에서 primary key인 c1과 c2가 되었습니다.

CREATE TABLE products (

  a integer PRIMARY KEY,

  b integer,

  c integer,

  FOREIGN KEY (b, c) REFERENCES products2 (c1, c2));

 

출처 : www.gurubee.net/lecture/2948

728x90

'DATABASE > POSTGRESQL' 카테고리의 다른 글

[PostgreSQL] SELECT  (0) 2021.03.02
[PostgreSQL] 테이블 관리 (생성,변경,삭제)  (0) 2021.03.02
[PostgreSQL] 데이터 타입  (0) 2021.03.02
[PostgreSQL] TABLESPACE 관리  (0) 2021.03.02
[PostgreSQL] SCHEMA 수정 및 삭제  (0) 2021.02.26