json 형식 데이터 SQL 다루기

도로롱·2025년 6월 11일

SQL

목록 보기
18/19
  • STR, INT, DATE, TIMESTAMP 속성으로 되어있는 테이블이 아니라 JSON 형식으로 나와있을 때 어떻게 가져오는 가 에 대해서 배웁니다.

**JSON 형식이란?

Javascript Object Notation
: 인간이 읽고, 쓰기 쉬우며 기게가 파싱하고 생성하기도 쉬운 개방향 표준 데이터 교환 형식

  • 사람이 읽기 쉬움 : 데이터를 직관적으로 이해할 수 있는 구조로 구성
  • 계층적 구조; 데이터를 중첩된 형태로 표현할 수 있어 복잡한 데이터 구조를 나타내기에 용이
  • 널리 사용됨: api, nosql데이터베이스, 설정파일 등 웹 개발의 거의 모든 영역에서 표준으로 사용

**JSON 데이터 타입과 구조

  • JSON 객체 형태 예시
    {
    "name": "홍길동",
    "age": 30,
    "city": "서울"
    }
  1. 객체: {} (중괄호)로 표현되며, 이름/값(NAME/VALUE)쌍의 비정렬 컬렉션
  • 각 쌍은 "이름": 값 형태로 표현
  • 이름은 항상 문자열(큰따옴표로 묶인)이어야 함
  • 여러 쌍은 쉼표로 구분
  • JSON 배열 형태 예시
    [
    "사과",
    "바나나",
    "딸기"
    ]
  1. 배열:[ ] 대괄호로 표현되며, 값들의 순서 있는 리스트

**JSON 정리

  • JSON은 데이터의 표준화된 형식이다
  • 가독성이 높아, 인간이 이해하거나 컴퓨터가 처리하기 용이하다
  • 이름:값으로 이루어져있다.

+) PARSING 이란?

  • PARSING(파싱) : 복잡한 형태의 데이터를 컴퓨터가 알아듣기 쉽게 정리하는 작업
    EX) JSON 데이터
    {"상품명": "스마트폰", "가격": 1000000, "재고": 50} → 컴퓨터 입장에서는 하나의 긴 문자열이여서 바로 인식할 수 없음. 파싱이라는 과정을 거치면 상품명은 스마트폰, 가격은 100만원, 재고는 50 이라는 데이터를 정리해서 이해할 수 있게 함
  • SQL에서 JSON 형식 파싱하는 쿼리
    ㄴ 1단계: data_json 컬럼의 한 행에 '{"상품명": "스마트폰", "가격": 1000000, "재고": 50}' 이런 문자열이 들어있음
    ㄴ 2단계: JSON 파싱 및 데이터 추출 (JSON_EXTRACT 함수 사용)
SELECT
    JSON_EXTRACT(data_json, '$.상품명') AS product_name,
    JSON_EXTRACT(data_json, '$.가격') AS price,
    JSON_EXTRACT(data_json, '$.재고') AS stock
FROM
    제품

결과 값
| product_name | price | stock |
|--------------|----------|-------|
| 스마트폰 | 1000000 | 50 |

profile
질문 없는 성장은 없다. 3년차 데이터 분석가

0개의 댓글