MySQL 5.7+ का JSON डेटा प्रकार एक ही सेल में जटिल संरचित डेटा (सरणी, ऑब्जेक्ट) संग्रहीत करने की अनुमति देता है, जिससे संबंधपरक मॉडल में लचीलापन आता है।
टेबल बनाएं
mysql> CREATE TABLE DemoTable1828 (
EmployeeId INT,
EmployeeRecords JSON
);
JSON सरणी डालें
mysql> INSERT INTO DemoTable1828 VALUES(1,
'[{"EmployeeName":"Chris","EmployeeAge":29},{"EmployeeName":"David","EmployeeAge":27}]');
mysql> INSERT INTO DemoTable1828 VALUES(2,
'[{"EmployeeName":"John","EmployeeAge":36},{"EmployeeName":"Mike","EmployeeAge":32}]');
डेटा देखें
mysql> SELECT * FROM DemoTable1828;
+------------+--------------------------------------------------------------+
| EmployeeId | EmployeeRecords |
+------------+--------------------------------------------------------------+
| 1 | [{"EmployeeAge": 29, "EmployeeName": "Chris"}, ...] |
| 2 | [{"EmployeeAge": 36, "EmployeeName": "John"}, ...] |
+------------+--------------------------------------------------------------+
JSON क्वेरी उदाहरण
पहले कर्मचारी का नाम प्राप्त करें
mysql> SELECT JSON_UNQUOTE(JSON_EXTRACT(EmployeeRecords, '$[0].EmployeeName')) AS FirstEmp
FROM DemoTable1828;
सभी कर्मचारी नाम निकालें (MySQL 8.0+)
mysql> SELECT EmployeeId,
JSON_UNQUOTE(JSON_EXTRACT(EmployeeRecords, '$[*].EmployeeName')) AS AllNames
FROM DemoTable1828;
लाभ
- स्कीमा-लेस लचीलापन: प्रत्येक पंक्ति में अलग संरचना हो सकती है।
- मान्य JSON ही संग्रहीत होता है (अमान्य डालने पर त्रुटि)।
Generated Columns+ इंडेक्स के साथ तेज़ खोज संभव।
सावधानी
- अत्यधिक JSON उपयोग संबंधपरक लाभ (जॉइन, बाधाएं, प्रकार सुरक्षा) खो देता है।
- बड़े JSON दस्तावेज़ों पर क्वेरी धीमी हो सकती है।
- सामान्यीकृत टेबल डिज़ाइन अक्सर बेहतर होता है।