一、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