졸업프로젝트

[그로쓰][MariaDB/MySQL] MariaDB에 Json 칼럼 생성하기, 복잡한 형태의 Json 데이터 저장하기 - MariaDB에 Json 저장하기

달팽이포뇨 2022. 5. 13. 23:33

1. 기존에 있던 MariaDB table에 Json 칼럼 생성하기 

alter table 테이블 이름 add column 컬럼이름 JSON;

(MariaDB에서 데이터 형식을 JSON으로 하여 column을 생성하지만 'desc 테이블 이름'을 적용해보면 longtext 데이터형으로 저장되어있습니다.) 

 

2. 데이터 저장

insert into 테이블 이름(테이블 속성) values (넣을 내용)

넣을 내용 : json_object, json_array형태로 작성합니다.

json_object ("키1", "값1", "키2", "값2", ...) ->  {"키1" : "값1"}, {"키2" : "값2"}

자동으로 2개씩 Json 형태로 짝지어집니다.

json_array( ) : 값이 배열인 경우에 사용합니다.

 

*괄호 개수 및 순서 주의!

insert into test(js_test) values (
  json_object("syllable",
    json_object("0", json_array(
      json_array(146,28,65,62,58), json_array(210,28,62,64,60),
      json_array(320,28,67,64,60), json_array(386,26,73,66,58),
      json_array( 458,26, 58, 66, 58), json_array(560,26,73, 66,58),
      json_array(632, 30,73,62,60), json_array(704,28,64,64,60),
      json_array(814,28,69,66,60), json_array(882,26,72,70,60),
 
      json_array(952,26,60,66,58)
      )
,
      "1", json_array(
      json_array(114,26,86,66,58), json_array(206,28,78,64,60),
      json_array(314,26,74,66,58), json_array(388,28,73,60,58),
      json_array(460,26,74,68,60), json_array(532,28,58,64,60),
      json_array(640,26,67,68,60), json_array(706,26,70,68,60),
      json_array(774,26,66,64,58)
      )
    )
  )
);
insert into test(js_test) values (json_object("syllable", json_object("0", json_array(json_array(146,28,65,62,58), json_array(210,28,62,64,60), json_array(320,28,67,64,60), json_array(386,26,73,66,58), json_array( 458,26, 58, 66, 58), json_array(560,26,73, 66,58),json_array(632, 30,73,62,60),json_array( 704,28,64,64,60),json_array(814,28,69,66,60),json_array(882,26,72,70,60),json_array(952,26,60,66,58)), "1", json_array( json_array(114,26,86,66,58),json_array(206,28,78,64,60),json_array(314,26,74,66,58),json_array(388,28,73,60,58),json_array(460,26,74,68,60),json_array(532,28,58,64,60),json_array(640,26,67,68,60),json_array(706,26,70,68,60),json_array(774,26,66,64,58) ))));

결과

test 테이블