본문 바로가기
반응형

MySQL5

MySQL JSON 데이터 사용하기 (JSON_TABLE, JSON_OBJECT, JSON_ARRAY) 서론 안녕하세요, 오늘은 MySQL에서 지원하는 JSON 관련 함수들 중 JSON_TABLE, JSON_OBJECT, JSON_ARRAY에 대해 알아보도록하겠습니다. 이들 중에서 JSON_TABLE은 MySQL 8.0 버전 이상에서만 지원합니다. JSON_TABLE JSON_TABLE함수는 json 형식의 데이터를 다른 테이블과 join이 가능하도록 테이블화를 시켜줍니다. 어떻게 사용하는지는 아래 예제를 한번 봐주세요. SET @json := '[1, 2, 3]'; SELECT idx, `name` FROM User U INNER JOIN JSON_TABLE(@json, '$[*]' COLUMNS (idx BIGINT PATH '$')) J ON U.idx = J.idx; json데이터가 단순히 Arra.. 2023. 12. 15.
데이터베이스 인덱스란? 클러스터 인덱스와 넌클러스터 인덱스 개념 차이점 인덱스 (Index)란? 데이터를 빠르게 검색할 수 있도록 테이블에 대한 동작 속도를 높여주는 자료 구조를 일컫는 말이다. 인덱스는 테이블 내의 1개의 컬럼, 또는 여러 개의 컬럼을 이용하여 생성될 수 있다. 우리가 책으로 된 두꺼운 사전을 보면 빠르게 찾을 수 있도록 홈이 파여져 있거나 색이 칠해져 있는 것을 볼 수 있는데 이런 것에 비유할 수 있다. 다르게 말하면 색인이라고도 볼 수 있다. 클러스터 인덱스 (Clustered Index) 물리적으로 행을 재배열하고 테이블당 1개의 클러스터 인덱스만 존재할 수 있다. 또한 데이터 입력, 수정, 삭제 시 항상 정렬 상태를 유지하는데 이렇기 때문에 검색 속도가 넌클러스터 인덱스보다 빠르다. 단, 데이터의 입력, 수정, 삭제 속도는 느리다. 테이블 데이터가 .. 2023. 11. 3.
MySQL 타입 변환 Cast / Convert MySQL 타입변환 Cast CAST(데이터 AS 타입) https://dev.mysql.com/doc/refman/8.0/en/cast-functions.html#function_cast MySQL :: MySQL 8.0 Reference Manual :: 12.10 Cast Functions and Operators MySQL 8.0 Reference Manual / Functions and Operators / Cast Functions and Operators 12.10 Cast Functions and Operators Table 12.15 Cast Functions and Operators Name Description Deprecated BINARY Cast a string to a bina.. 2023. 10. 16.
MySQL Json 사용법 Json table SELECT, INSERT, UPDATE 방법 MySQL Json Table 사용법 JSON_TABLE() 예제로 Json을 받아서 테이블처럼 만드는 법을 해보자. SET @jsonstr := '[{"id": 1, "name": "example"}, {"id": 2, "name": "test"}]'; SELECT id, `name` FROM JSON_TABLE(@jsonstr, '$[*]' COLUMNS(id BIGINT PATH '$.id', `name` VARCHAR(16) PATH '$.name')) T; 결과 위와 같이 JSON_TABLE() 함수를 쓰게 된다면 테이블처럼 SELECT가 가능하다. 이렇게 된다면 다른 테이블과의 Join으로 인해 사용할 수 있는 방법이 많아 진다. INSERT INSERT INTO example_user (id.. 2023. 10. 6.
MySQL date add, diff, 시간 계산 (더하기, 빼기) 정리 MySQL 시간 관련 함수들 쿼리를 짜다 보면 종종 특정 시간 기준으로 더하거나 빼거나 포맷팅을 하거나 하는데 MySQL에서 여러 함수들을 제공합니다. MySQL에서 자주 쓰는 시간 관련 함수들을 알아보도록 합시다. DATE_ADD DATE_SUB DATEDIFF TIMESTAMPDIFF DATE_FORMAT DATE_ADD DATE_ADD(기준 날짜, INTERVAL) // SECOND, MINUTE, HOUR, DAY, WEEK, MONTH, YEAR 제공 EX) SELECT DATE_ADD('2023-08-18 00:00:00', INTERVAL 1 MINUTE); // OUTPUT: 2023-08-18 00:01:00 DATE_SUB DATE_SUB(기준 날짜, INTERVAL) // SECOND.. 2023. 8. 18.
반응형