Computer >> 컴퓨터 >  >> 프로그래밍 >> MySQL

MySQL 테이블에 JSON 데이터 삽입하는 방법

MySQL 5.7 버전부터 JSON 데이터 타입을 기본적으로 지원하기 때문에, 별도의 확장 없이도 JSON 형식의 데이터를 컬럼에 그대로 저장할 수 있습니다. 이번 글에서는 JSON 타입의 컬럼을 가진 테이블을 생성하고, 실제로 데이터를 삽입한 뒤 조회하는 과정까지 단계별로 살펴보겠습니다.

1. JSON 타입 컬럼을 가진 테이블 생성

먼저 JSON 타입의 컬럼을 포함하는 테이블을 생성합니다. 아래 예제에서는 이름 목록을 저장하기 위한 ListOfNames 컬럼을 JSON 타입으로 정의했습니다.

mysql> create table DemoTable1832
    (
    ListOfNames JSON
    );
Query OK, 0 rows affected (0.00 sec)

Query OK 메시지가 출력되면 테이블이 성공적으로 생성된 것입니다.

2. INSERT 문으로 JSON 데이터 삽입

이제 INSERT 명령어를 사용해 JSON 배열 형태의 데이터를 여러 개 삽입해 보겠습니다. JSON 문자열은 작은따옴표(')로 감싸서 전달하면 됩니다.

mysql> insert into DemoTable1832(ListOfNames) values('["Sam", "Mike", "Carol"]');
Query OK, 1 row affected (0.00 sec)

mysql> insert into DemoTable1832(ListOfNames) values('["David", "Bob"]');
Query OK, 1 row affected (0.00 sec)

mysql> insert into DemoTable1832(ListOfNames) values('["Adam", "John", "Sam"]');
Query OK, 1 row affected (0.00 sec)

세 개의 레코드가 모두 정상적으로 삽입되었습니다.

3. SELECT 문으로 데이터 조회

저장된 데이터가 올바르게 들어갔는지 확인하기 위해 SELECT 문으로 전체 레코드를 조회합니다.

mysql> select * from DemoTable1832;

위 쿼리를 실행하면 다음과 같은 결과를 확인할 수 있습니다.

+--------------------------+
| ListOfNames              |
+--------------------------+
| ["Sam", "Mike", "Carol"] |
| ["David", "Bob"]         |
| ["Adam", "John", "Sam"]  |
+--------------------------+
3 rows in set (0.00 sec)

정리

이처럼 MySQL에서는 JSON 타입 컬럼을 선언하는 것만으로 JSON 문자열을 손쉽게 저장하고 조회할 수 있습니다. 참고로 MySQL은 삽입 시점에 JSON 유효성을 검사하기 때문에, 잘못된 형식의 JSON을 넣으면 에러가 발생합니다. 또한 JSON_EXTRACT(), ->, ->> 연산자 등을 활용하면 저장된 JSON 내부의 특정 값만 추출하거나 조건 검색을 하는 것도 가능합니다.