การสร้างตารางด้วยคอลัมน์ JSON
mysql> CREATE TABLE DemoTable1828 (
EmployeeId INT,
EmployeeRecords JSON
);
เพิ่มข้อมูล JSON Array
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;
ผลลัพธ์ (MySQL จัดรูปแบบ JSON ให้อัตโนมัติ):
+------------+--------------------------------------------------+
| EmployeeId | EmployeeRecords |
+------------+--------------------------------------------------+
| 1 | [{"EmployeeAge": 29, "EmployeeName": "Chris"},
| {"EmployeeAge": 27, "EmployeeName": "David"}] |
| 2 | [{"EmployeeAge": 36, "EmployeeName": "John"},
| {"EmployeeAge": 32, "EmployeeName": "Mike"}] |
+------------+--------------------------------------------------+
ข้อดีของการใช้ JSON
- จัดเก็บโครงสร้างข้อมูลซับซ้อนในคอลัมน์เดียว
- รองรับการ Query เข้าไปใน JSON ด้วยฟังก์ชัน JSON_*
- ยืดหยุ่น ไม่ต้องกำหนด Schema คงที่
- Validation อัตโนมัติป้องกันข้อมูลผิดรูปแบบ
ตัวอย่างการ Query ข้อมูลใน JSON
-- ดึงชื่อพนักงานคนแรก
SELECT JSON_EXTRACT(EmployeeRecords, '$[0].EmployeeName') FROM DemoTable1828;
-- ค้นหาพนักงานอายุ > 30
SELECT * FROM DemoTable1828
WHERE JSON_EXTRACT(EmployeeRecords, '$[*].EmployeeAge') > 30;