測試環境為 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
沒有解決問題,試試搜尋本站其他內容