378 total views , 1 views today
測試環境為 CentOS 8 x86_64
使用關聯式資料庫( RDBMS : Relational Database Management System )的 MariaDB 也可以儲存與查詢 NoSQL ( Not Only SQL : 使用非關聯式資料庫的資料庫,資料儲存不需要固定的欄位 ) 的 JSON ( JavaScript Object Notation )資料格式.
先來看一下 JSON 不同的資料類型 (透過 JSON_TYPE 函數來檢視目前資料是哪一種型態):
- 物件 (Object) : 使用 { } , 無序成對 (pair) 的 {鍵 Key name :值 value} 方式來儲存,鍵值之間使用逗號來分隔.
MariaDB [(none)]> SELECT JSON_TYPE(
'{"A":"1"}'
);
+------------------------+
| JSON_TYPE(
'{"A":"1"}'
) |
+------------------------+
| OBJECT |
+------------------------+
1 row in set (0.000 sec)
- 陣列 (Array) : 使用 [ ] , 資料彼此間使用逗號來分割,如:[value, value] .
MariaDB [(none)]> SELECT JSON_TYPE(
'[0,1]'
);
+--------------------+
| JSON_TYPE(
'[0,1]'
) |
+--------------------+
| ARRAY |
+--------------------+
1 row in set (0.000 sec)
- 數字 (Number) : 直接使用整數 (INTEGER) 或是浮點數 (DOUBLE).
MariaDB [(none)]> SELECT JSON_TYPE(
'0'
);
+----------------+
| JSON_TYPE(
'0'
) |
+----------------+
| INTEGER |
+----------------+
1 row in set (0.000 sec)
MariaDB [(none)]> SELECT JSON_TYPE(
'0.1'
);
+------------------+
| JSON_TYPE(
'0.1'
) |
+------------------+
| DOUBLE |
+------------------+
1 row in set (0.000 sec)
- 字串 (String) : 使用 “” (括號)來表示字串.
MariaDB [(none)]> SELECT JSON_TYPE(
'"ST"'
);
+-------------------+
| JSON_TYPE(
'"ST"'
) |
+-------------------+
| STRING |
+-------------------+
1 row in set (0.000 sec)
- 布林函數 (Boolean) : 使用 TRUE 或 FALSE.
MariaDB [(none)]> SELECT JSON_TYPE(
'true'
);
+-------------------+
| JSON_TYPE(
'true'
) |
+-------------------+
| BOOLEAN |
+-------------------+
1 row in set (0.000 sec)
MariaDB [(none)]> SELECT JSON_TYPE(
'false'
);
+--------------------+
| JSON_TYPE(
'false'
) |
+--------------------+
| BOOLEAN |
+--------------------+
1 row in set (0.000 sec)
- NULL 類型.
MariaDB [(none)]> SELECT JSON_TYPE(NULL);
+-----------------+
| JSON_TYPE(NULL) |
+-----------------+
| NULL |
+-----------------+
1 row in set (0.000 sec)
JSON 語法
- JSON – https://benjr.tw/103200
- Nested Object 的 JSON – https://benjr.tw/103211
- JSON Path – https://benjr.tw/103526
JSON 函數
- 常用 JSON 函數 – https://benjr.tw/103860
- JSON_KEYS , JSON_QUERY , JSON_VALUE 與 JSON_EXTRACT – https://benjr.tw/103237
- JSON_CONTAINS – https://benjr.tw/103258
- JSON_MERGE , JSON_MERGE_PRESERVE – https://benjr.tw/103395
- JSON_SEARCH – https://benjr.tw/103447
- JSON_TYPE , JSON_LENGTH 與 JSON_DEPTH – https://benjr.tw/103896
- JSON_QUOTE , JSON_UNQUOTE – https://benjr.tw/104064
綜合應用
- JSON 轉成 Table (Rows & Columns) – https://benjr.tw/103501
- Convert CSV to JSON – https://benjr.tw/103317
- JSON 陣列加總函數 (SUM JSON Array) – https://benjr.tw/16112
- Remove JSON None (or null) attributes – https://benjr.tw/105135
沒有解決問題,試試搜尋本站其他內容