본문 바로가기

SQL/PostgreSQL

[PostgreSQL] 테이블 생성

PostgreSQL을 사용 중인데 기존에 DB 설계를 안하고 데이터 쌓기만 해놓은 상태이다.

이번에 DB설계하면서 공부할 예정이라 테이블 생성하는 방법 먼저 정리해야겠다.

 

테이블 생성하는 쿼리문

create table 테이블명
( 열이름 데이터타입 제약조건,
  열이름 데이터타입 제약조건,
  ...
  열이름 데이터타입 제약조건);
  

create table cafe_blog
( search_word text PRIMARY KEY,
  cafe_posting int not null,
  blog_posting int not null,
  collect_date date) -- 제약조건이 없으면 null을 넣은 것과 같음

 

# 제약조건

- CHECK : 주어진 조건에 해당하는 값

- NOT NULL : 데이터 입력 시 누락이 있으면 안됨, 필수 입력

- UNIQUE : 중복성을 배제한 유일한 값 (null 값은 unique 제약 제외 - null은 데이터로 인식 X)

- PRIMARY KEY : ① 한 개의 테이블에 1개만 생성 가능
                              ② null값이 있으면 안됨 (notnull)
                              ③ 중복되지 않는 유일한 값 (unique)

- FOREIGN KEY : ① 참조하는 테이블에 존재하는 값만 입력 가능함
                              ② 참조하는 테이블의 칼럼은 반드시 PRIMARY KEY 또는 UNIQUE여야함
                              ③ 여러 개의 칼럼에 중복적으로 적용 가능함

   두 테이블 사이의 관계를 선언하여 데이터 무결성 보장
   → 외래키는 기준 테이블을 참조하기 때문에 기준 테이블에 존재하는 데이터만 입력이 가능하며

   참조하는 기준 테이블의 칼럼은 반드시 PK 이거나 UNIQUE 여야함