JSON 형식을 사용하여 MySQL에서 데이터를 저장하고 쿼리하는 방법은 무엇입니까?
최신 애플리케이션 개발에서는 JSON 형식을 사용하여 데이터를 저장하고 쿼리하는 것이 일반적인 관행이 되었습니다. JSON(JavaScript Object Notation)은 프런트엔드 및 백엔드 데이터 전송, 구성 파일, 로깅 등에 널리 사용되는 경량 데이터 교환 형식입니다. MySQL은 버전 5.7부터 JSON 필드에 대한 지원을 도입하여 MySQL에서 직접 JSON 데이터를 저장, 쿼리 및 작동할 수 있게 되었습니다.
이 글에서는 JSON 형식을 사용하여 MySQL에서 데이터를 저장하고 쿼리하는 방법을 소개하고 몇 가지 실용적인 코드 예제를 제공합니다.
1. 테이블 생성 및 데이터 삽입
먼저 JSON 필드가 포함된 테이블을 생성해야 합니다. 이름, 나이, 연락처 등의 정보가 포함된 사용자 세부 정보를 저장한다고 가정해 보겠습니다. 다음 SQL 문을 사용하여 "users"라는 테이블을 만들 수 있습니다.
CREATE TABLE users ( id INT PRIMARY KEY AUTO_INCREMENT, info JSON );
다음으로 INSERT 문을 사용하여 일부 사용자 데이터를 테이블에 삽입할 수 있습니다. INSERT 문에서 JSON_OBJECT 함수를 사용하여 JSON 개체를 구성한 다음 이를 JSON 필드에 저장할 수 있습니다. 예는 다음과 같습니다.
INSERT INTO users (info) VALUES ( JSON_OBJECT('name', 'John', 'age', 25, 'contact', JSON_OBJECT('email', 'john@example.com', 'phone', '1234567890')) );
2. JSON 데이터 쿼리
MySQL에서는 일부 함수를 사용하여 JSON 데이터를 쿼리할 수 있습니다. 다음은 일반적으로 사용되는 몇 가지 함수와 사용법입니다.
SELECT JSON_EXTRACT(info, '$.name') AS name FROM users;
SELECT JSON_SEARCH(info, 'one', 'John', NULL, '$.name') AS name_path FROM users;
SELECT * FROM users WHERE JSON_CONTAINS(info, 'John', '$.name');
3. JSON 데이터 업데이트
JSON_SET 함수를 사용하여 JSON 필드의 값을 업데이트할 수 있습니다. JSON_SET 함수는 3개 이상의 매개변수를 허용합니다. 처음 두 매개변수는 업데이트할 JSON 필드와 업데이트할 경로입니다. 다음 매개변수는 설정할 키와 해당 값입니다. 예는 다음과 같습니다.
UPDATE users SET info = JSON_SET(info, '$.age', 26) WHERE id = 1;
4. JSON 데이터 삭제
JSON 필드에서 특정 키나 값을 제거하려면 JSON_REMOVE 함수를 사용할 수 있습니다. JSON_REMOVE 함수는 두 개 이상의 매개변수를 허용합니다. 첫 번째 매개변수는 삭제할 JSON 필드이고, 후속 매개변수는 삭제할 키 또는 경로입니다. 예는 다음과 같습니다.
UPDATE users SET info = JSON_REMOVE(info, '$.name') WHERE id = 1;
요약:
이 기사에서는 MySQL에서 JSON 데이터를 저장하고 쿼리하는 기본 작업을 소개합니다. JSON 형식을 사용하여 데이터를 저장하면 복잡한 구조의 데이터를 보다 쉽게 조작하고 쿼리할 수 있습니다. 도입된 기능 외에도 MySQL은 더 복잡한 요구 사항을 충족하기 위해 더 많은 JSON 기능과 연산자를 제공합니다. 실제 개발에서는 애플리케이션 성능과 유연성을 향상시키기 위해 JSON 형식을 사용하여 특정 비즈니스 요구 사항에 따라 데이터를 저장하도록 선택할 수 있습니다.
(참고: 위 예제는 MySQL 5.7 버전을 기준으로 작성되었습니다. 다른 버전을 사용하는 경우, 보다 정확한 정보와 예제는 해당 버전의 MySQL 설명서를 참조하세요.)
위 내용은 MySQL에서 JSON 형식을 사용하여 데이터를 저장하고 쿼리하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!