Công cụ này làm gì
Đưa một bảng tính vào cơ sở dữ liệu thường có nghĩa là phải tự viết định nghĩa bảng và một danh sách dài câu lệnh INSERT, thoát từng dấu nháy đơn. Công cụ này làm việc đó thay bạn: dán CSV và nhận một tập lệnh SQL chạy được ngay, gồm câu lệnh CREATE TABLE và các câu INSERT nhiều dòng chia theo lô.
Công cụ tuân theo RFC 4180: xử lý trường trong dấu ngoặc kép, dấu phẩy và xuống dòng trong ô, và dấu ngoặc kép viết đôi. Chuỗi được thoát đúng cho cơ sở dữ liệu đã chọn, bao gồm dấu gạch chéo ngược trong MySQL và chuỗi Unicode N'…' của SQL Server.
Cách dùng
- Dán CSV, tải lên tệp
.csvhoặc.tsv, hoặc bấm Ví dụ. - Nhập Tên bảng. Dùng dấu chấm cho schema, ví dụ
public.ordershoặcdbo.orders. - Chọn Hệ quản trị CSDL: MySQL / MariaDB, PostgreSQL, SQLite hoặc SQL Server.
- Chọn Số dòng mỗi INSERT, và tắt CREATE TABLE nếu bảng đã tồn tại.
- Sao chép SQL hoặc tải xuống tệp
.sqlrồi chạy bằng công cụ quản lý cơ sở dữ liệu.
Dấu phân cách được tự động nhận diện; bạn cũng có thể chọn rõ dấu phẩy, dấu chấm phẩy, tab hoặc dấu gạch đứng. Nếu hàng đầu là dữ liệu chứ không phải tên cột, hãy tắt Hàng đầu là tiêu đề; các cột sẽ được đặt tên column_1, column_2, v.v.
Ví dụ
CSV sau:
id,name,price,in_stock
1,Ada's Tea,4.50,true
2,Coffee,,false
sẽ thành tập lệnh PostgreSQL này:
CREATE TABLE "products" (
"id" INTEGER,
"name" TEXT,
"price" NUMERIC(3, 2),
"in_stock" BOOLEAN
);
INSERT INTO "products" ("id", "name", "price", "in_stock") VALUES
(1, 'Ada''s Tea', 4.50, TRUE),
(2, 'Coffee', NULL, FALSE);
Dấu nháy trong Ada's được viết đôi, giá trống thành NULL, còn số và boolean được viết không có dấu nháy.
Kiểu dữ liệu và phương ngữ
- MySQL / MariaDB: định danh trong dấu backtick,
INT,DECIMAL,BOOLEAN,DATE,DATETIME,VARCHAR(255)hoặcTEXT; dấu gạch chéo ngược trong chuỗi được thoát. - PostgreSQL: định danh trong dấu ngoặc kép,
INTEGER,NUMERIC,BOOLEAN,DATE,TIMESTAMPvàTEXT. - SQLite: định danh trong dấu ngoặc kép và các lớp lưu trữ của SQLite
INTEGER,REALvàTEXT; boolean được viết là 1 và 0. - SQL Server: định danh trong ngoặc vuông,
INT,DECIMAL,BIT,DATE,DATETIME2vàNVARCHAR, chuỗi dạngN'…'và tối đa 1000 dòng mỗi INSERT. - Ô trống thành
NULL. Tắt Ô trống thành NULL để giữ chuỗi rỗng trong các cột văn bản. - Hãy kiểm tra các kiểu đã suy ra trước khi chạy tập lệnh trên dữ liệu thật: một cột chỉ có số nhỏ trong mẫu có thể cần kiểu rộng hơn về sau.
Câu hỏi thường gặp
› Hỗ trợ những cơ sở dữ liệu nào?
MySQL (và MariaDB), PostgreSQL, SQLite và Microsoft SQL Server. Lựa chọn này quyết định cách đặt tên bảng và cột trong dấu trích dẫn, cách thoát chuỗi, kiểu cột được dùng và cách viết giá trị boolean.
› Kiểu cột được chọn thế nào?
Mỗi cột được quét: số nguyên thành INT hoặc BIGINT, số thập phân thành DECIMAL với độ chính xác đủ dùng, true/false thành BOOLEAN (BIT trong SQL Server), ngày ISO thành DATE hoặc DATETIME, còn lại là văn bản. Số có chữ số 0 ở đầu, như mã bưu chính, vẫn giữ là văn bản. Tắt Nhận diện kiểu để mọi cột đều là văn bản.
› Vì sao SQL Server bị giới hạn 1000 dòng mỗi INSERT?
SQL Server từ chối danh sách VALUES dài hơn 1000 dòng, nên với hệ này kích thước lô lớn hơn sẽ bị giới hạn ở 1000. Các cơ sở dữ liệu khác chấp nhận lô lớn hơn, nhưng 100 đến 1000 dòng mỗi câu lệnh là mức cân bằng tốt giữa tốc độ và độ dài.
› CSV của tôi có bị tải lên không?
Không. Việc phân tích và tạo SQL diễn ra hoàn toàn trong trình duyệt, dữ liệu không bao giờ rời khỏi thiết bị của bạn.