본문 바로가기
Q&A2023년 9월 5일1분 읽기

PostgreSQL JSON 필드 활용법

문
문성민
조회 488댓글 1

PostgreSQL의 JSON/JSONB 타입을 활용하는 방법을 알려주세요.

댓글 1

김김영삼3년 전

PostgreSQL JSONB 활용:

-- 테이블 생성
CREATE TABLE products (
id SERIAL PRIMARY KEY,
name TEXT,
metadata JSONB DEFAULT '{}'
);

-- 데이터 삽입
INSERT INTO products (name, metadata) VALUES
('노트북', '{"brand":"Samsung","specs":{"ram":"16GB","ssd":"512GB"}}');

-- 조회
SELECT metadata->'brand' FROM products; -- "Samsung" (JSON)
SELECT metadata->>'brand' FROM products; -- Samsung (텍스트)
SELECT metadata->'specs'->>'ram' FROM products; -- 16GB

-- 필터링
SELECT * FROM products WHERE metadata->>'brand' = 'Samsung';
SELECT * FROM products WHERE metadata @> '{"brand":"Samsung"}';

-- 인덱스 (GIN)
CREATE INDEX idx_meta ON products USING gin(metadata);

JSON vs JSONB: JSONB가 바이너리 저장이라 검색/인덱싱이 빠릅니다. 특별한 이유 없으면 JSONB를 쓰세요.

Ctrl+Enter로 등록