Chuyển đổi SQL sang JSON (INSERT … VALUES)

Chuyển câu lệnh SQL INSERT sang JSON: VALUES nhiều dòng, định danh trong dấu nháy, dấu nháy được thoát, NULL, TRUE/FALSE và số, trên nhiều bảng. Miễn phí.

Chạy hoàn toàn trong trình duyệt. Dữ liệu của bạn không bao giờ bị tải lên.

Công cụ Liên quan

Xem Tất cả

SQL sang JSON là gì?

Dán SQL có chứa câu lệnh INSERT – bản dump cơ sở dữ liệu, tệp seed hoặc migration – để nhận các dòng dữ liệu dưới dạng JSON. Mỗi dòng trở thành một đối tượng với khóa là tên cột; INSERT vào nhiều bảng tạo ra một đối tượng có mỗi bảng một mảng.

Cách sử dụng SQL sang JSON

  1. Dán SQL vào ô Dữ liệu SQL đầu vào, hoặc dùng Tải ví dụ hay Mở tệp.
  2. Giữ Thoát ký tự bằng dấu gạch chéo ngược (MySQL) được bật cho bản dump MySQL, hoặc tắt đi với SQL chuẩn / PostgreSQL.
  3. Chọn mức Thụt lề cho JSON.
  4. Kết quả JSON cập nhật ngay khi bạn gõ; dùng Sao chép hoặc Tải xuống.

Ví dụ

Đầu vào
INSERT INTO users (id, name) VALUES (1, 'O''Brien'), (2, NULL);
Đầu ra
[
  {
    "id": 1,
    "name": "O'Brien"
  },
  {
    "id": 2,
    "name": null
  }
]

Khi nào nên dùng SQL sang JSON

Dùng để trích xuất dữ liệu từ bản dump SQL hoặc tệp seed mà không cần chạy cơ sở dữ liệu. Công cụ không thực thi SQL: các câu lệnh SELECT, UPDATE và DDL bị bỏ qua, và hàm không được tính toán.

SQL sang JSON hoạt động như thế nào

Bộ tách token đọc chuỗi (dấu nháy nhân đôi '', thoát bằng gạch chéo ngược kiểu MySQL tùy chọn, tiền tố N'…' và E'…'), định danh trong dấu nháy ("…", backtick, […]), số và chú thích (--, #, /* */). Sau đó trình phân tích tìm INSERT [IGNORE] INTO table [(columns)] VALUES (…), (…) và bỏ qua mọi câu lệnh khác. NULL, TRUE và FALSE được ánh xạ sang null và boolean của JSON; số nguyên quá lớn với JavaScript được giữ chính xác. Biểu thức như NOW() được giữ nguyên văn bản gốc. Dòng không có danh sách cột nhận khóa column1, column2, …

Các Trường Hợp Sử Dụng Phổ Biến

  • Biến một đoạn mysqldump thành fixture JSON
  • Xem dữ liệu seed trong tệp migration
  • Chuyển vài dòng từ SQL sang kho NoSQL
  • Kiểm tra một câu lệnh INSERT thực sự chứa những giá trị nào

Câu Hỏi Thường Gặp

Công cụ hỗ trợ những phương ngữ SQL nào?

Cú pháp INSERT của MySQL/MariaDB, PostgreSQL, SQLite và SQL Server: mọi kiểu đặt định danh trong dấu nháy của chúng đều được nhận diện. Hãy tắt thoát ký tự bằng gạch chéo ngược với bản dump không phải MySQL có chứa đường dẫn Windows.

Còn INSERT … SELECT thì sao?

Chỉ danh sách VALUES mới chứa dữ liệu cụ thể; câu lệnh INSERT … SELECT bị bỏ qua.

Vì sao NOW() lại là chuỗi?

Công cụ không chạy SQL, nên biểu thức được giữ nguyên văn bản gốc.

Bước tiếp theo nên làm

Khám phá thêm danh mục