최신 애플리케이션 개발에서는 반구조화된 데이터를 관리하는 것이 일반적인 과제입니다. 버전 5.7에 도입된 MySQL의 JSON 지원은 관계형 데이터베이스 내에서 이러한 데이터를 저장, 쿼리 및 조작하는 강력한 방법을 제공합니다. 이 게시물에서는 시작하는 데 도움이 되는 실제 예제와 함께 MySQL이 제공하는 필수 JSON 기능을 살펴봅니다.
MySQL에서 JSON을 사용하는 이유는 무엇입니까?
JSON 데이터를 관계형 데이터베이스에 저장하면 반구조적 또는 계층적 데이터 처리를 단순화할 수 있습니다. 다음이 가능합니다:
- 유연성: JSON은 동적 및 계층적 데이터 저장을 허용합니다.
- 내장 기능: JSON 데이터를 효율적으로 쿼리, 업데이트 및 검증합니다.
- 통합: 하이브리드 사용 사례를 위해 관계형 데이터를 JSON 개체와 결합합니다.
1. JSON 데이터 생성
JSON_OBJECT() 및 JSON_ARRAY() 함수를 사용하여 JSON 개체 또는 배열을 구성할 수 있습니다.
예:
SELECT JSON_OBJECT('id', 1, 'name', 'Alice', 'roles', JSON_ARRAY('admin', 'editor')) AS json_data;
출력:
{"id": 1, "name": "Alice", "roles": ["admin", "editor"]}
2. JSON 데이터 저장
JSON 데이터를 저장하려면 열에 JSON 데이터 유형을 사용하세요.
예:
CREATE TABLE users ( id INT AUTO_INCREMENT PRIMARY KEY, details JSON NOT NULL ); INSERT INTO users (details) VALUES ('{"name": "Bob", "age": 30, "roles": ["viewer", "editor"]}');
3. JSON에서 데이터 추출
MySQL은 JSON 문서에서 데이터를 추출하는 여러 기능을 제공합니다.
- JSON_EXTRACT(): JSON 경로를 사용하여 값을 가져옵니다.
- -> 연산자: JSON_EXTRACT()의 약어입니다.
예:
SELECT JSON_EXTRACT(details, '$.name') AS name, details->'$.age' AS age FROM users;
출력:
4. JSON 데이터 수정
다음을 사용하여 JSON 데이터에 요소를 업데이트하거나 추가할 수 있습니다.
- JSON_SET(): 키를 삽입하거나 업데이트합니다.
- JSON_INSERT(): 키가 없으면 삽입합니다.
- JSON_REPLACE(): 기존 키만 업데이트합니다.
예:
UPDATE users SET details = JSON_SET(details, '$.city', 'New York') WHERE id = 1; SELECT details FROM users;
출력:
{"name": "Bob", "age": 30, "roles": ["viewer", "editor"], "city": "New York"}
5. 키 또는 값 제거
JSON_REMOVE()를 사용하여 JSON 문서에서 요소를 삭제하세요.
예:
UPDATE users SET details = JSON_REMOVE(details, '$.roles') WHERE id = 1; SELECT details FROM users;
출력:
{"name": "Bob", "age": 30, "city": "New York"}
6. JSON으로 검색하기
JSON_CONTAINS() 함수는 JSON 문서에 특정 값이 포함되어 있는지 확인합니다.
예:
SELECT JSON_CONTAINS(details, '"New York"', '$.city') AS has_city FROM users;
출력:
7. JSON 데이터 집계
JSON_ARRAYAGG() 및 JSON_OBJECTAGG() 함수는 쿼리 결과를 JSON 구조로 집계하는 데 도움이 됩니다.
예:
SELECT JSON_ARRAYAGG(name) AS names FROM ( SELECT JSON_EXTRACT(details, '$.name') AS name FROM users ) AS subquery;
출력:
SELECT JSON_OBJECT('id', 1, 'name', 'Alice', 'roles', JSON_ARRAY('admin', 'editor')) AS json_data;
8. JSON 데이터 유효성 검사
JSON_VALID() 함수는 문자열이 유효한 JSON인지 확인합니다.
예:
{"id": 1, "name": "Alice", "roles": ["admin", "editor"]}
출력:
9. JSON을 예쁘게 인쇄하기
사람이 읽을 수 있는 JSON 형식을 지정하려면 JSON_PRETTY()를 사용하세요.
예:
CREATE TABLE users ( id INT AUTO_INCREMENT PRIMARY KEY, details JSON NOT NULL ); INSERT INTO users (details) VALUES ('{"name": "Bob", "age": 30, "roles": ["viewer", "editor"]}');
출력:
SELECT JSON_EXTRACT(details, '$.name') AS name, details->'$.age' AS age FROM users;
추가 JSON 함수
MySQL은 자세히 다루는 것 외에도 다양한 JSON 기능을 제공합니다. 다음은 기타 JSON 함수입니다.
- JSON_ARRAY_APPEND(): JSON 배열 끝에 값을 추가합니다.
- JSON_ARRAY_INSERT(): JSON 배열의 지정된 위치에 값을 삽입합니다.
- JSON_CONTAINS_PATH(): JSON 문서 내에 지정된 경로가 존재하는지 확인합니다.
- JSON_DEPTH(): JSON 문서의 최대 깊이를 반환합니다.
- JSON_KEYS(): JSON 객체에서 키를 추출합니다.
- JSON_LENGTH(): JSON 배열의 요소 수 또는 JSON 객체의 키 수를 계산합니다.
- JSON_MERGE_PATCH(): 여러 JSON 문서를 결합하여 기존 키를 최신 값으로 덮어씁니다.
- JSON_MERGE_PRESERVE(): 여러 JSON 문서를 결합하고 중복에 대한 배열을 생성하여 모든 값을 보존합니다.
- JSON_OVERLAPS(): 두 JSON 문서에 겹치는 요소가 있는지 확인합니다.
- JSON_QUOTE(): 문자열의 특수 문자를 이스케이프하고 유효한 JSON 문자열 리터럴로 반환합니다.
- JSON_SEARCH(): JSON 문서 내에서 지정된 값에 대한 경로를 반환합니다.
- JSON_STORAGE_FREE(): JSON 열을 수정한 후 확보된 공간의 양을 반환합니다.
- JSON_STORAGE_SIZE(): JSON 문서의 저장 크기를 바이트 단위로 제공합니다.
- JSON_TABLE(): 추가 처리를 위해 JSON 데이터를 관계형 테이블 형식으로 변환합니다.
- JSON_TYPE(): JSON 값의 유형을 반환합니다(예: 개체, 배열, 문자열 등).
- JSON_UNQUOTE(): JSON 문자열에서 따옴표를 제거합니다.
MySQL의 JSON 기능은 관계형 데이터베이스에서 반구조화된 데이터를 관리하기 위한 강력한 도구를 제공합니다. 이를 통해 SQL 내에서 직접 JSON을 쉽게 저장, 쿼리 및 조작할 수 있습니다. 이러한 기능을 이해하면 워크플로를 단순화하고 데이터베이스 설계에 대한 새로운 접근 방식을 여는 데 도움이 될 수 있습니다.
위 내용은 MySQL에서 JSON 작업의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

mysqlviewshavelimitations : 1) 그들은 upportallsqloperations, datamanipulation throughviewswithjoinsorbqueries를 제한하지 않습니다

적절한 usermanagementInmysqliscrucialforenhancingsecurityandensuringfefficientDatabaseOperation.1) USECREATEUSERTOWDDUSERS,@'localHost'or@'%'.

mysqldoes notimposeahardlimitontriggers, butpracticalfactorsdeteirefectiveuse : 1) ServerConfigurationimpactStriggerManagement; 2) 복잡한 트리거 스케일 스케일 사이드로드; 3) argertableSlowtriggerTriggerPerformance; 4) High ConconcercencyCancaUspriggerContention; 5) m

예, It 'safetostoreBlobdatainmysql, butconsidertheStefactors : 1) StoragesPace : BlobScanconSumeSignificantspace, 잠재적으로 증가하는 CostsandSlownperformance

PHP 웹 인터페이스를 통해 MySQL 사용자를 추가하면 MySQLI 확장 기능을 사용할 수 있습니다. 단계는 다음과 같습니다. 1. MySQL 데이터베이스에 연결하고 MySQLI 확장자를 사용하십시오. 2. 사용자를 생성하고 CreateUser 문을 사용하고 Password () 함수를 사용하여 암호를 암호화하십시오. 3. SQL 주입 방지 및 MySQLI_REAL_ESCAPE_STRING () 함수를 사용하여 사용자 입력을 처리하십시오. 4. 새 사용자에게 권한을 할당하고 보조금 명세서를 사용하십시오.

mysql'sblobissuilableforstoringbinarydatawithinareldatabase, whilenosqloptionslikemongodb, redis, and cassandraofferflexible, scalablesolutionsforunstuctureddata.blobissimplerbutcanslowwownperformance를 사용하는 것들보업 betterscal randaysand

TOADDAUSERINMYSQL, 사용 : CreateUser'UserName '@'host'IdentifiedBy'Password '; 여기서'showTodoitseciRely : 1) ChoosetheHostCareLyTocon trolaccess.2) setResourcelimitswithOptionslikemax_queries_per_hour.3) Usestrong, iriquepasswords.4) enforcessl/tlsconnectionswith

toavoidcommonmistakeswithstringdatatypesinmysql, stroundStringTypenuances, chooseTherightType, andManageEncodingAndCollationSettingSefectively.1) usecharforfixed-lengthstrings, varcharvariable-length, andtext/blobforlargerdata.2) setcarcatter


핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

안전한 시험 브라우저
안전한 시험 브라우저는 온라인 시험을 안전하게 치르기 위한 보안 브라우저 환경입니다. 이 소프트웨어는 모든 컴퓨터를 안전한 워크스테이션으로 바꿔줍니다. 이는 모든 유틸리티에 대한 액세스를 제어하고 학생들이 승인되지 않은 리소스를 사용하는 것을 방지합니다.

ZendStudio 13.5.1 맥
강력한 PHP 통합 개발 환경

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

DVWA
DVWA(Damn Vulnerable Web App)는 매우 취약한 PHP/MySQL 웹 애플리케이션입니다. 주요 목표는 보안 전문가가 법적 환경에서 자신의 기술과 도구를 테스트하고, 웹 개발자가 웹 응용 프로그램 보안 프로세스를 더 잘 이해할 수 있도록 돕고, 교사/학생이 교실 환경 웹 응용 프로그램에서 가르치고 배울 수 있도록 돕는 것입니다. 보안. DVWA의 목표는 다양한 난이도의 간단하고 간단한 인터페이스를 통해 가장 일반적인 웹 취약점 중 일부를 연습하는 것입니다. 이 소프트웨어는