MySQL 5.7+ का नेटिव JSON डेटा प्रकार संरचित JSON दस्तावेज़ संग्रहीत करने, मान्य करने और क्वेरी करने की अनुमति देता है।
टेबल बनाएं
mysql> CREATE TABLE DemoTable1876 (
EmployeeInformation JSON
);
JSON ऑब्जेक्ट डालें
mysql> INSERT INTO DemoTable1876 VALUES('{
"EmployeeData": {
"Name": "Chris",
"Age": 27
}
}');
mysql> INSERT INTO DemoTable1876 VALUES('{
"EmployeeData": {
"Name": "David",
"Age": 24
}
}');
डेटा देखें
mysql> SELECT * FROM DemoTable1876;
+------------------------------------------------+
| EmployeeInformation |
+------------------------------------------------+
| {"EmployeeData": {"Age": 27, "Name": "Chris"}} |
| {"EmployeeData": {"Age": 24, "Name": "David"}} |
+------------------------------------------------+
JSON क्वेरी फ़ंक्शन (MySQL 5.7+)
| फ़ंक्शन | उदाहरण | परिणाम |
|---|---|---|
JSON_EXTRACT(col, path) | JSON_EXTRACT(col, '$.EmployeeData.Name') | "Chris" (उद्धरण सहित) |
col->path | col->'$.EmployeeData.Name' | शॉर्टकट, उद्धरण सहित |
col->>path | col->>'$.EmployeeData.Name' | Chris (बिना उद्धरण) |
JSON_UNQUOTE() | JSON_UNQUOTE(JSON_EXTRACT(...)) | उद्धरण हटाता है |
JSON_CONTAINS() | मान मौजूद है जांचें | बूलियन |
उदाहरण: सभी नाम निकालें
SELECT EmployeeInformation->>'$.EmployeeData.Name' AS Name FROM DemoTable1876;
इंडेक्सिंग (Generated Column)
ALTER TABLE DemoTable1876 ADD COLUMN EmpName VARCHAR(20) GENERATED ALWAYS AS (EmployeeInformation->>'$.EmployeeData.Name'), ADD INDEX idx_emp_name (EmpName);
लाभ
- स्वचालित JSON मान्यता (अमान्य JSON डालने पर त्रुटि)।
- बाइनरी फॉर्मेट में संग्रहीत (पार्सिंग तेज़)।
- पथ-आधारित निष्कर्षण और खोज।