MySQL JSON डेटा प्रकार के साथ JSON डेटा संग्रहीत करना
MySQL 5.7+ नेटिव JSON डेटा प्रकार का समर्थन करता है जो JSON दस्तावेजों के कुशल संग्रहण, सत्यापन और क्वेरी की अनुमति देता है। यह JSON पाठ के लिए VARCHAR/TEXT से बेहतर है।
उदाहरण: कर्मचारी JSON सरणी संग्रहीत करना
mysql> CREATE TABLE DemoTable1438 (
-> EmployeeDetails JSON
-> );
Query OK, 0 rows affected (5.97 sec)
mysql> INSERT INTO DemoTable1438 VALUES ('[
-> {"EmployeeId": "EMP-101", "EmployeeName": "Chris"},
-> {"EmployeeId": "EMP-102", "EmployeeName": "David"},
-> {"EmployeeId": "EMP-103", "EmployeeName": "Sam"}
-> ]');
Query OK, 1 row affected (0.22 sec)
mysql> SELECT * FROM DemoTable1438;
+------------------------------------------------------------------------------------------------------------------------------------------------------------+
| EmployeeDetails |
+------------------------------------------------------------------------------------------------------------------------------------------------------------+
| [{"EmployeeId": "EMP-101", "EmployeeName": "Chris"}, {"EmployeeId": "EMP-102", "EmployeeName": "David"}, {"EmployeeId": "EMP-103", "EmployeeName": "Sam"}] |
+------------------------------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)
JSON डेटा प्रकार के लाभ
- सत्यापन: केवल वैध JSON संग्रहीत करता है
- कुशल संग्रहण: अनुकूलित बाइनरी प्रारूप
- क्वेरी फ़ंक्शन: JSON_EXTRACT, JSON_CONTAINS, JSON_SEARCH, आदि
- इंडेक्सिंग: वर्चुअल कॉलम के माध्यम से JSON पथ पर इंडेक्स बना सकते हैं
- प्रकार संरक्षण: संख्याओं, बूलियन, सरणियों, वस्तुओं को संरक्षित करता है
सामान्य JSON फ़ंक्शन
| फ़ंक्शन | उद्देश्य | उदाहरण |
|---|---|---|
JSON_EXTRACT(doc, path) | पथ से मान निकालें | JSON_EXTRACT(doc, '$[0].EmployeeName') |
->> | पथ से मान निकालें (अनक्वोटेड) | doc->>'$[0].EmployeeName' |
JSON_CONTAINS(doc, val, path) | पथ पर मान मौजूद है? | JSON_CONTAINS(doc, '"Chris"', '$[*].EmployeeName') |
JSON_ARRAY_APPEND() | सरणी में तत्व जोड़ें | JSON_ARRAY_APPEND(doc, '$', '{"id": "new"}') |
JSON_SET() | मान डालें/अपडेट करें | JSON_SET(doc, '$.name', 'New') |