PostgreSQL - 제약 조건 & 자료형

Yuno·2025년 4월 13일

1️⃣ 제약 조건 (Constraints)

제약 조건은 데이터의 무결성을 유지하기 위해 사용됨
즉, 잘못된 데이터가 들어오지 않도록 제한을 거는 역할을 함

제약 조건설명
PRIMARY KEY고유하고 NULl 불가. 테이블의 식별자
UNIQUE중복 금지 (NULL 허용)
NOT NULLNULL 허용 안됨
DEFAULT값이 없을 때 자동으로 채울 기본값
CHECK특정 조건을 만족해야 삽입 가능
FOREIGN KEY다른 테이블의 기본 키와 연결 (관계 설정)

✨ member 테이블 생성

create table member (
  id SERIAL primary key,              
  name varchar(50) not null,         
  email varchar(100) unique,         
  address varchar(100),
  age integer check (age >= 0),
  created_at timestamp default now() 
);
  • NOT NULL: name 필드는 필수 값
  • UNIQUE: email 은 중복 불가능
  • CHECK: 나이는 0 이상만 가능
  • DEFAULT NOT(): 가입 시간은 현재 시간으로 자동 설정

2️⃣ 다양한 자료형

자료형설명예시
INTEGER, SERIAL정수1, 2, 3
VARCHAR(n), TEXT문자열'홍길동'
BOOLEAN참 / 거짓TRUE / FALSE
DATE, TIMESTAMP날짜 / 시간'2025-04-13'
NUMERIC(p, s)고정 소수점99.99
ENUM제한된 값('MALE', 'FEMALE')
JSON, JSONBJSON 객체 저장{"Key": "value"}

✨ 회원 삽입

insert into member (name, email, address, age)
values ('홍길동', 'gildong@test.com', '서울', '1');
PKnameemailaddressage
1홍길동gildong@test.com서울1

✨ BOOLEAN

-- member 테이블에 is_active 컬럼 추가(기본값 true)
alter table member add column is_active boolean default true;

-- 1번 회원 비활성 상태로 수정
update member set is_active = false where id = 1;

✨ ENUM 타입 정의

-- ENUM 타입 정의
create type gender as enum ('MALE', 'FEMALE');

-- member 컬럼에 추가
alter table member add column gender gender;

-- 1번 회원 성별 설정
update member set gender = 'MALE' where id = 1;
profile
Hello World

0개의 댓글