Chuyển đến nội dung

Chuyển JSON sang MySQL

Thả tệp JSON để nhận tập lệnh MySQL với câu lệnh CREATE TABLE và INSERT. Mỗi cột được gán kiểu, và mọi bản sửa đều được liệt kê kèm hàng và cột.

Tệp của bạn
jsonpedidos_2024.jsonTệp mẫu, 771 B
Cơ sở dữ liệu của bạn

Đã chuyển đổi 4 hàng, 2 bản sửa, không hàng nào bị từ chối

Hiển thị
Những hàng đầu tiên của pedidos_2024.json, mỗi bản sửa đều được đánh dấu
Hàng
2000481Peña Muñoz2024-02-03T10:15:00Z1234.5true
3000482José Ángel Ruiz2024-02-15T16:40:00Z99.9falseEntrega en la tarde
4000483Zoë Ortíz2024-02-29T09:05:00Z12true
5000484Ñuño Castañeda2024-03-11T13:30:00Z980.75síFactura con "RFC"
-- Written by IntoSQL for MySQL.

SET NAMES utf8mb4;
SET SESSION sql_mode = REPLACE(@@sql_mode, 'NO_BACKSLASH_ESCAPES', '');
START TRANSACTION;

CREATE TABLE pedidos_2024 (
    pedido varchar(8) NOT NULL,
    cliente varchar(16) NOT NULL,
    fecha datetime NOT NULL,
    total decimal(6,2) NOT NULL,
    pagado tinyint(1) NOT NULL,
    notas varchar(32)
) DEFAULT CHARSET=utf8mb4;

INSERT INTO pedidos_2024 (pedido, cliente, fecha, total, pagado, notas) VALUES
('000481', 'Peña Muñoz', '2024-02-03 10:15:00', 1234.5, TRUE, NULL),
('000482', 'José Ángel Ruiz', '2024-02-15 16:40:00', 99.9, FALSE, 'Entrega en la tarde'),
('000483', 'Zoë Ortíz', '2024-02-29 09:05:00', 12, TRUE, NULL),
('000484', 'Ñuño Castañeda', '2024-03-11 13:30:00', 980.75, TRUE, 'Factura con "RFC"');

COMMIT;

Bản sửa

  1. Giữ số 0 ở đầu trong "pedido": 000481 vẫn là 000481, lưu dưới dạng văn bản.
  2. "pagado" chứa các từ có và không (sí), lưu dưới dạng boolean.

Tệp được chuyển đổi ngay trên máy tính này và không bao giờ được tải lên.

Mẫu khác:

Từ JSON sang MySQL, từng cột một

Tệp mẫu ở trên, pedidos_2024.json, khi IntoSQL viết cho MySQL: mỗi cột chứa gì trong tệp, kiểu dữ liệu nhận được và giá trị đầu tiên xuất hiện thế nào trong tập lệnh.

Trong tệpGiá trị đầu tiênCộtKiểu MySQLTrong tập lệnh
pedido000481pedidovarchar(8)'000481'
clientePeña Muñozclientevarchar(16)'Peña Muñoz'
fecha2024-02-03T10:15:00Zfechadatetime'2024-02-03 10:15:00'
total1234.5totaldecimal(6,2)1234.5
pagadotruepagadotinyint(1)TRUE
notas-notasvarchar(32)NULL

Nạp tập lệnh vào MySQL

Tệp tải xuống là một tệp .sql thông thường. Chạy nó bằng công cụ riêng của MySQL.

Từ terminal

mysql --default-character-set=utf8mb4 mydb < pedidos_2024.mysql.sql

Tập lệnh tự đặt utf8mb4; cờ này khiến client gửi theo cùng cách, nên dấu được giữ nguyên.

Từ công cụ cơ sở dữ liệu

Trong MySQL Workbench, chọn File, Run SQL Script, rồi chọn tệp.

Không cần tập lệnhPro

IntoSQL Pro nạp tệp thẳng vào MySQL từ ứng dụng máy tính hoặc dòng lệnh, không cần tạo tập lệnh.

intosql load pedidos_2024.json --into mysql://user@localhost/mydb

Những điều cần biết về tệp JSON và MySQL

IntoSQL đọc gì trong tệp JSON

  • Tệp có thể là một mảng đối tượng, một đối tượng chứa mảng đó dưới một khóa như data, hoặc mỗi dòng một đối tượng (NDJSON).
  • Mỗi khóa trở thành một cột. Đối tượng và mảng bên trong một giá trị được giữ dưới dạng văn bản JSON.
  • Số giữ nguyên từng chữ số, và ngày ISO 8601 trở thành ngày hoặc dấu thời gian.

Những điều cần biết về MySQL

  • Giá trị có và không trở thành tinyint(1). Văn bản đến 255 ký tự là varchar; văn bản dài hơn là text, mediumtext hoặc longtext tùy kích thước.
  • Tập lệnh dùng utf8mb4 và đặt chế độ SQL, nên dấu, emoji, dấu gạch chéo ngược và xuống dòng được nạp đúng như đã viết.
  • Kiểu datetime của MySQL không lưu múi giờ.

Cách mỗi loại giá trị được lưu trong MySQL

Giá trịMySQL
Có và khôngtinyint(1)
Số nguyênint
Số nguyên lớnbigint
Số thập phândecimal(p,s)double
Số dấu phẩy độngdouble
Ngàydate
Giờ trong ngàytime(6)time
Ngày kèm giờdatetime(6)datetime
Ngày kèm giờ và độ lệch múi giờdatetime(6)datetime
Văn bảnvarchar(n)textmediumtextlongtext

Câu hỏi về JSON sang MySQL

Chưa có câu trả lời ở đây? Hãy viết cho chúng tôi từ trang liên hệ, sẽ có người trả lời. Trang liên hệ

Làm sao để chuyển JSON sang MySQL?

Thả tệp vào trình chuyển đổi ở đầu trang này. Nó tìm tiêu đề, đọc mọi giá trị và viết tập lệnh MySQL, kèm danh sách từng bản sửa. Tải tập lệnh xuống và chạy bằng the mysql client.

Tệp JSON cần có cấu trúc thế nào?

Một mảng đối tượng, một đối tượng chứa mảng đó dưới một khóa như data, hoặc mỗi dòng một đối tượng (NDJSON). Mỗi khóa trở thành một cột.

Nó dùng những kiểu MySQL nào?

Giá trị có/không thành tinyint(1), số nguyên thành int, số thập phân thành decimal(p,s), ngày thành date, ngày kèm giờ thành datetime(6) và văn bản thành varchar(n). Kích thước lấy theo giá trị dài nhất trong mỗi cột.

Số 0 ở đầu có được giữ trong MySQL không?

Có. Một mã như 000481 vẫn là văn bản, nên MySQL lưu nó dưới dạng varchar(8) và tập lệnh viết nó là '000481'.

Có thể nạp dữ liệu vào MySQL mà không cần tập lệnh không?

Có, với IntoSQL Pro. Ứng dụng máy tính và dòng lệnh kết nối tới MySQL, tạo bảng trước rồi nạp thẳng các hàng vào.

Tệp JSON có thể lớn đến đâu?

NDJSON, mỗi dòng một đối tượng, được đọc theo luồng, nên tệp vài gigabyte vẫn chạy được trong trình duyệt. Tài liệu JSON được đọc toàn bộ, nên giới hạn là bộ nhớ trình duyệt cấp cho trang này. Ứng dụng máy tính và dòng lệnh nhận tệp ở mọi kích thước.