Notice
Recent Posts
Recent Comments
Link
반응형
250x250
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
Tags
- 코인 자동 매매
- 오토 트레이딩
- 쿠팡
- 통계 업데이트
- 가성비 스드메
- 개발자팁
- 운동
- #cpu모니터링
- 도보배달
- 쿼리 자동완성
- #postgresql
- db 통계 업데이트
- 리눅스 디스크 추가
- 리눅스 볼륨
- AWS
- db 테이블 복사
- uptimerobot
- dbeaver 느림
- PostgreSQL
- #시스템관리
- 항상 실행
- 티스토리챌린지
- 코인 시뮬레이션
- #메모리관리
- 리눅스
- postgre 테이블 복사
- 무료서버감시
- 배민
- 오블완
- statistics update
Archives
- Today
- Total
Energy Drink
PostgreSQL에서 JSON 데이터 다루기 본문
728x90
반응형
PostgreSQL은 JSON 형식의 데이터를 효과적으로 다룰 수 있는 다양한 함수와 연산자를 제공하며, 특히 JSONB 형식은 효율적인 검색 성능을 제공합니다. JSON 데이터를 처리하는 PostgreSQL 쿼리 방법을 알아보겠습니다.
1. JSON 데이터 접근 연산자
PostgreSQL에서는 JSON 데이터를 쉽게 추출할 수 있는 여러 연산자를 지원합니다. 기본 연산자로 원하는 키나 중첩된 키를 선택할 수 있습니다.
- -> : JSON 객체에서 키에 해당하는 값을 JSON 형식으로 가져옵니다.
- ->> : JSON 객체에서 키에 해당하는 값을 텍스트 형식으로 가져옵니다.
- #> : JSON 객체에서 중첩된 키의 값을 JSON 형식으로 가져옵니다.
- #>> : JSON 객체에서 중첩된 키의 값을 텍스트 형식으로 가져옵니다.
-- 예시 테이블 생성 및 데이터 삽입
CREATE TABLE test_data (
data jsonb
);
INSERT INTO test_data (data) VALUES
('{"name": "홍길동", "age": 25, "address": {"city": "부산", "zipcode": "67890"}}');
-- 키에 해당하는 값 가져오기
SELECT data->'name' AS name -- JSON 형식으로 name 값 가져오기
FROM test_data;
SELECT data->>'name' AS name_text -- 텍스트 형식으로 name 값 가져오기
FROM test_data;
-- 중첩된 키에 접근하기
SELECT data#>'{address, city}' AS city -- JSON 형식으로 city 값 가져오기
FROM test_data;
SELECT data#>>'{address, city}' AS city_text -- 텍스트 형식으로 city 값 가져오기
FROM test_data;
2. JSON 함수 활용하기
PostgreSQL은 JSON 데이터를 쉽게 조작할 수 있는 여러 함수도 제공합니다.
- jsonb_array_elements() : JSON 배열을 개별 요소로 확장합니다.
- jsonb_object_keys() : JSON 객체의 키 목록을 가져옵니다.
- jsonb_each_text() : JSON 객체의 각 키-값 쌍을 텍스트 형식으로 가져옵니다.
-- JSON 배열의 각 요소 추출하기
INSERT INTO test_data (data) VALUES
('{"items": [{"name": "item1"}, {"name": "item2"}]}');
SELECT elem->>'name' AS item_name
FROM test_data,
LATERAL jsonb_array_elements(data->'items') AS elem;
-- JSON 객체의 키 목록 가져오기
SELECT jsonb_object_keys(data) AS keys
FROM test_data;
-- 각 키-값 쌍 추출하기
SELECT key, value
FROM test_data,
LATERAL jsonb_each_text(data) AS key_value(key, value);
3. JSON 데이터 검색하기
JSON 데이터를 쿼리 조건으로 사용하여 특정 조건에 맞는 데이터를 검색할 수 있습니다.
-- 특정 값 조건으로 검색하기
SELECT *
FROM test_data
WHERE data->>'name' = '홍길동';
-- 중첩된 키 조건으로 검색하기
SELECT *
FROM test_data
WHERE data#>>'{address, city}' = '부산';
728x90
반응형
'Programing > Postgresql' 카테고리의 다른 글
PostgreSQL 통계 정보 업데이트 (Analyze) (0) | 2024.11.22 |
---|---|
PostgreSQL에서 데이터베이스 내 모든 테이블의 디스크 사용량 확인 (0) | 2024.11.21 |
PostgreSQL 세션 및 쿼리 모니터링 (1) | 2024.11.20 |
PostgreSQL에서 실행 중인 쿼리 확인 및 종료 (0) | 2024.11.19 |
PostgreSQL 테이블 복사하는 4가지 방법 (스키마와 데이터 복사) (0) | 2024.10.21 |