MySQL 如何导入 JSON 数据到 MySQL 中

MySQL 如何导入 JSON 数据到 MySQL 中

MySQL是一种关系型数据库管理系统。随着大量的数据被存储,将 JSON 数据导入 MySQL 中成为一种常见的需求。本文将探讨如何导入 JSON 数据到 MySQL 中。

阅读更多:MySQL 教程

数据准备

在导入 JSON 数据到 MySQL 之前,我们需要准备好一些数据。首先,我们需要生成 JSON 格式的数据。我们可以使用 Python 生成大量的 JSON 数据,例如:

import json
import random

data = []
for i in range(10):
    d = {'id': i, 'name': f'name{i}', 'age': random.randint(18, 60)}
    data.append(d)

with open('data.json', 'w') as f:
    json.dump(data, f)

现在,我们已经生成了一个名为 data.json 的文件,其中包含 10 条记录。

[
  {"id": 0, "name": "name0", "age": 44},
  {"id": 1, "name": "name1", "age": 36},
  {"id": 2, "name": "name2", "age": 50},
  {"id": 3, "name": "name3", "age": 47},
  {"id": 4, "name": "name4", "age": 58},
  {"id": 5, "name": "name5", "age": 31},
  {"id": 6, "name": "name6", "age": 55},
  {"id": 7, "name": "name7", "age": 52},
  {"id": 8, "name": "name8", "age": 29},
  {"id": 9, "name": "name9", "age": 28}
]

导入数据

创建表

在导入 JSON 数据之前,我们需要先创建一个表。我们可以使用以下语句创建一个名为 users 的表,并添加三个字段 idnameage

CREATE TABLE users (
  id INT,
  name VARCHAR(50),
  age INT
);

导入数据

在创建表之后,我们可以使用 LOAD DATA 关键词直接将 JSON 文件导入到表中。以下是一个基本的 LOAD DATA 语句:

LOAD DATA INFILE '/path/to/data.json'
INTO TABLE users

在这个例子中,/path/to/data.json 是我们生成的 JSON 文件的路径。这个语句将文件的内容导入到 users 表中。

然而,由于默认情况下 MySQL 并不支持直接导入 JSON 格式的数据,我们需要使用 JSON 方法将 JSON 字符串转化为 MySQL 中的数据类型。以下是一个能够正确导入 JSON 的 LOAD DATA 语句:

LOAD DATA INFILE '/path/to/data.json'
INTO TABLE users
FIELDS TERMINATED BY ',' 
ENCLOSED BY '"' 
LINES TERMINATED BY '\n'
(@id, @name, @age)
SET id = JSON_EXTRACT(@id, ".id"),
    name = JSON_EXTRACT(@name, ".name"),
    age = JSON_EXTRACT(@age, "$.age");

在这个语句中,我们使用了 JSON_EXTRACT 函数将 JSON 字符串转化为具体的数据类型,然后将其插入到 users 表中。

总结

通过这篇文章的学习,我们了解到了如何将 JSON 数据导入到 MySQL 中。我们需要先生成 JSON 文件,然后在创建表之后使用 LOAD DATA 将其导入到 MySQL 中,并使用 JSON_EXTRACT 函数将 JSON 字符串转化为 MySQL 中的数据类型。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程