MySQL JSON 操作

一、MySQL 操作題

MySQL 是一個流行的關係型資料庫管理系統,用於存儲和管理數據。在進行 MySQL JSON 操作之前,需要先了解 MySQL 基礎操作。

1.創建資料庫


CREATE DATABASE test_db;

2.選擇資料庫


USE test_db;

3.創建表


CREATE TABLE users(
    id INT NOT NULL,
    name VARCHAR(30) NOT NULL,
    age INT NOT NULL,
    PRIMARY KEY (id)
);

4.插入數據


INSERT INTO users (id, name, age) VALUES (1, 'Lucy', 20);
INSERT INTO users (id, name, age) VALUES (2, 'Lily', 22);
INSERT INTO users (id, name, age) VALUES (3, 'Tom', 25);

二、MySQL 的 JSON 操作

MySQL 5.7 及以上版本支持 JSON 類型,可以將 JSON 數據存儲在 MySQL 資料庫中,並且可以對 JSON 數據進行操作。

1.創建 JSON 欄位


CREATE TABLE products(
    id INT NOT NULL,
    name VARCHAR(50) NOT NULL,
    detail JSON,
    PRIMARY KEY (id)
);

2.插入 JSON 數據


INSERT INTO products (id, name, detail) VALUES (1, 'computer', '{"brand":"Apple","color":"silver"}');
INSERT INTO products (id, name, detail) VALUES (2, 'car', '{"brand":"BMW","color":"white"}');
INSERT INTO products (id, name, detail) VALUES (3, 'phone', '{"brand":"Samsung","color":"black"}');

3.查詢 JSON 數據


SELECT * FROM products WHERE detail->>'$.brand' = 'Apple';

4.更新 JSON 數據


UPDATE products SET detail = JSON_REPLACE(detail, '$.color', 'rose gold') WHERE id = 1;

5.刪除 JSON 數據


UPDATE products SET detail = JSON_REMOVE(detail, '$.brand') WHERE id = 3;

三、MySQL 操作

MySQL 還提供了其他重要的操作,如數據導入導出和指定行、列的篩選。

1.導出數據為 CSV 文件


SELECT *
FROM products
INTO OUTFILE '/path/to/file/products.csv'
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
LINES TERMINATED BY '\n';

2.導入 CSV 文件到資料庫


LOAD DATA INFILE '/path/to/file/products.csv'
INTO TABLE products
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
LINES TERMINATED BY '\n';

3.指定行、列篩選


SELECT name, age FROM users WHERE age > 21;

四、MySQL 操作 Excel

MySQL 還支持將 Excel 文件中的數據導入到資料庫,並且可以進行 SQL 查詢。

1.創建新表用於存儲 Excel 數據


CREATE TABLE excel_data(
    name VARCHAR(50) NOT NULL,
    age INT,
    address VARCHAR(255)
);

2.導入 Excel 數據到資料庫


LOAD DATA INFILE '/path/to/file/excel_data.xls'
IGNORE INTO TABLE excel_data
FIELDS TERMINATED BY '\t'
LINES TERMINATED BY '\r\n'
IGNORE 1 ROWS;

3.查詢 Excel 數據


SELECT name, age FROM excel_data WHERE age > 21;

五、MySQL JSON 欄位壞處

MySQL JSON 欄位雖然提供了操作 JSON 數據的便利性,但也存在一些壞處。

1.不支持索引

由於 JSON 數據的不規則性,MySQL 不支持在 JSON 欄位上創建索引。這可能導致查詢效率降低。

2.難以調試

在 JSON 欄位上進行複雜查詢時,很難調試 SQL 語句,尤其是在 JSON 數據存在多層嵌套時。

3.存儲空間

JSON 數據通常比字元串類型數據佔用更多的存儲空間,這會增加資料庫的存儲開銷。

以上是對 MySQL JSON 操作的詳細闡述,其中涉及基礎操作、JSON 操作、數據導入導出和 Excel 操作等多個方面。

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/256495.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-15 12:41
下一篇 2024-12-15 12:41

相關推薦

  • 如何修改mysql的埠號

    本文將介紹如何修改mysql的埠號,方便開發者根據實際需求配置對應埠號。 一、為什麼需要修改mysql埠號 默認情況下,mysql使用的埠號是3306。在某些情況下,我們需…

    編程 2025-04-29
  • Python棧操作用法介紹

    如果你是一位Python開發工程師,那麼你必須掌握Python中的棧操作。在Python中,棧是一個容器,提供後進先出(LIFO)的原則。這篇文章將通過多個方面詳細地闡述Pytho…

    編程 2025-04-29
  • Python操作數組

    本文將從多個方面詳細介紹如何使用Python操作5個數組成的列表。 一、數組的定義 數組是一種用於存儲相同類型數據的數據結構。Python中的數組是通過列表來實現的,列表中可以存放…

    編程 2025-04-29
  • Python操作MySQL

    本文將從以下幾個方面對Python操作MySQL進行詳細闡述: 一、連接MySQL資料庫 在使用Python操作MySQL之前,我們需要先連接MySQL資料庫。在Python中,我…

    編程 2025-04-29
  • Python代碼實現迴文數最少操作次數

    本文將介紹如何使用Python解決一道經典的迴文數問題:給定一個數n,按照一定規則對它進行若干次操作,使得n成為迴文數,求最少的操作次數。 一、問題分析 首先,我們需要了解迴文數的…

    編程 2025-04-29
  • Python磁碟操作全方位解析

    本篇文章將從多個方面對Python磁碟操作進行詳細闡述,包括文件讀寫、文件夾創建、刪除、文件搜索與遍歷、文件重命名、移動、複製、文件許可權修改等常用操作。 一、文件讀寫操作 文件讀寫…

    編程 2025-04-29
  • JSON的MD5

    在Web開發過程中,JSON(JavaScript Object Notation)是最常用的數據格式之一。MD5(Message-Digest Algorithm 5)是一種常用…

    編程 2025-04-29
  • 使用Java將JSON寫入HDFS

    本篇文章將從以下幾個方面詳細闡述Java將JSON寫入HDFS的方法: 一、HDFS簡介 首先,先來了解一下Hadoop分散式文件系統(HDFS)。HDFS是一個可擴展性高的分散式…

    編程 2025-04-29
  • MySQL遞歸函數的用法

    本文將從多個方面對MySQL遞歸函數的用法做詳細的闡述,包括函數的定義、使用方法、示例及注意事項。 一、遞歸函數的定義 遞歸函數是指在函數內部調用自身的函數。MySQL提供了CRE…

    編程 2025-04-29
  • Python元祖操作用法介紹

    本文將從多個方面對Python元祖的操作進行詳細闡述。包括:元祖定義及初始化、元祖遍歷、元祖切片、元祖合併及比較、元祖解包等內容。 一、元祖定義及初始化 元祖在Python中屬於序…

    編程 2025-04-29

發表回復

登錄後才能評論