MySQL 5.7 이상에서 JSON 데이터 유형을 사용하려면 먼저 MySQL의 호환 버전을 사용해야합니다. MySQL 5.7 이후 JSON 데이터 유형이 도입되었으며 JSON 문서를 테이블 열에 직접 저장하는 데 사용할 수 있습니다. 다음은 JSON 데이터 유형 사용에 대한 단계별 안내서입니다.
JSON 열이있는 테이블 작성 : 테이블을 만들 때 열의 JSON 유형을 지정하십시오. 예를 들어:
<code class="sql">CREATE TABLE my_table ( id INT AUTO_INCREMENT PRIMARY KEY, data JSON );</code>
JSON 데이터 삽입 : JSON 데이터를 JSON 열에 직접 또는 문자열을 통해 삽입 할 수 있습니다. MySQL은 JSON 구조를 자동으로 확인합니다.
<code class="sql">INSERT INTO my_table (data) VALUES ('{"name": "John", "age": 30}');</code>
JSON 데이터 조작 : MySQL은 JSON 데이터를 조작하기위한 다양한 기능을 제공합니다. 예를 들어, 기존 JSON 문서에 새 필드를 추가하려면 다음과 같습니다.
<code class="sql">UPDATE my_table SET data = JSON_SET(data, '$.city', 'New York') WHERE id = 1;</code>
쿼리 JSON 데이터 : JSON 기능을 사용하여 JSON 열에서 데이터를 추출 할 수 있습니다.
<code class="sql">SELECT JSON_EXTRACT(data, '$.name') AS name FROM my_table;</code>
JSON 데이터 인덱싱 : MySQL은 JSON 문서 내에서 특정 필드 인덱싱을 지원하여 쿼리 성능을 향상시킬 수 있습니다. 예를 들어:
<code class="sql">CREATE INDEX idx_data_name ON my_table ( (JSON_EXTRACT(data, '$.name')) );</code>
MySQL에서 JSON 데이터 유형을 사용하면 데이터 저장에 몇 가지 이점이 있습니다.
MySQL에서 JSON 데이터를 효율적으로 쿼리하고 인덱싱하려면 다음을 수행 할 수 있습니다.
JSON 기능 사용 : MySQL은 데이터 쿼리를위한 풍부한 JSON 기능 세트를 제공합니다. 예를 들어, 특정 필드가 존재하고 값과 일치하는 문서를 검색합니다.
<code class="sql">SELECT * FROM my_table WHERE JSON_EXTRACT(data, '$.name') = '"John"';</code>
열 생성 : 생성 된 열을 사용하여 JSON 데이터에서 가상 열을 생성합니다.
<code class="sql">ALTER TABLE my_table ADD COLUMN name VARCHAR(255) AS (JSON_UNQUOTE(JSON_EXTRACT(data, '$.name'))) STORED; CREATE INDEX idx_name ON my_table(name);</code>
다중 값 인덱스 : JSON 내의 배열의 경우 쿼리 속도를 높이기 위해 다중 값 인덱스를 생성 할 수 있습니다.
<code class="sql">CREATE INDEX idx_data_tags ON my_table ( (JSON_EXTRACT(data, '$.tags')) );</code>
JSON_SEARCH 사용 : JSON 문서 내에서 값을 검색하려면 :
<code class="sql">SELECT * FROM my_table WHERE JSON_SEARCH(data, 'one', 'New York') IS NOT NULL;</code>
그들의 장점에도 불구하고 MySQL의 JSON 데이터 유형은 몇 가지 제한 사항과 잠재적 인 단점을 제공합니다.
이러한 한계를 이해하면 MySQL에서 JSON 데이터 유형을 효과적으로 사용하는시기와 방법에 대한 정보에 근거한 결정을 내리는 데 도움이됩니다.
위 내용은 MySQL 5.7 이상에서 JSON 데이터 유형을 어떻게 사용합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!