Chuyển CSV sang SQL
Biến file xuất từ bảng tính thành script mà cơ sở dữ liệu của bạn chạy được. Dòng tiêu đề đặt tên cho các cột, mỗi dòng dữ liệu thành một lệnh INSERT, và cách đặt dấu trích dẫn theo đúng phương ngữ SQL bạn chọn.
Chuyển đổi dữ liệu
hoặc thả tệp CSV, TSV, TXT … vào đây ·
Tối đa 95 MB mỗi tệp· Tối đa 20 tệp· Xóa sau 30 phút
Tệp được xử lý trên máy chủ của chúng tôi và bị xóa sau 30 phút.
Ký tự ngăn cách các cột trong tệp CSV và văn bản, dùng cho cả đọc và ghi. Tự động sẽ nhận diện từ dữ liệu đầu vào và ghi bằng dấu phẩy.
UTF-8 dùng được cho mọi ngôn ngữ. Chọn UTF-8 có BOM nếu Excel trên Windows hiển thị sai ký tự có dấu hoặc ký tự châu Á khi mở tệp CSV.
Với đầu vào Excel, ODS và Numbers: chỉ chuyển trang tính đầu tiên, hoặc mọi trang tính (mỗi trang tính một tệp CSV trong tệp ZIP, hoặc mỗi trang tính một khóa JSON).
Tên thẻ trang tính trong bảng tính mới, tối đa 31 ký tự.
Mảng đối tượng dùng tên cột làm khóa cho từng dòng; mảng của mảng gọn hơn và giữ tiêu đề làm mảng đầu tiên.
Tên phần tử ngoài cùng bao tất cả các dòng; mỗi dòng trở thành một <row> bên trong nó.
Dùng trong các câu lệnh CREATE TABLE và INSERT. Chỉ gồm chữ cái, chữ số và dấu gạch dưới.
Cách đặt dấu trích dẫn và kiểu cột hơi khác nhau giữa các cơ sở dữ liệu; hãy chọn hệ bạn sẽ nhập vào.
Ghi lại các ô ngày tháng theo một định dạng thống nhất. ISO (2026-10-18) an toàn nhất cho cơ sở dữ liệu và mã nguồn; giữ nguyên để chúng như trong tệp gốc.
Cách sử dụng công cụ này
- 1
Tải file CSV lên
Thêm một file CSV hoặc tối đa 20 file, mỗi file không quá 95 MB. File dùng dấu chấm phẩy và tab được nhận diện tự động.
- 2
Đặt tên bảng và chọn phương ngữ SQL
Trong Cài đặt nâng cao, nhập Tên bảng SQL và chọn Phương ngữ SQL: MySQL, PostgreSQL, SQLite hoặc SQL Server. Ngày tháng được đặt theo chuẩn ISO để giá trị ngày được nạp vào mà không phải đoán định dạng.
- 3
Chuyển đổi và chạy script
Nhấn Chuyển sang SQL, xem dòng CREATE TABLE, rồi chạy script trong trình quản lý cơ sở dữ liệu hoặc màn hình nhập dữ liệu của bạn.
Công cụ chuyển CSV sang SQL tạo câu lệnh CREATE TABLE từ dòng tiêu đề và một câu INSERT cho mỗi dòng dữ liệu, đặt dấu trích dẫn phù hợp với MySQL, PostgreSQL, SQLite hoặc SQL Server, để bảng tính được nạp vào cơ sở dữ liệu chỉ bằng một script.
Vì sao nên chuyển CSV thành các lệnh SQL INSERT
Cơ sở dữ liệu nào cũng có công cụ nạp CSV nhanh, và công cụ nào cũng có điểm vướng. LOAD DATA LOCAL INFILE bị tắt mặc định trên máy chủ từ MySQL 8.0, COPY FROM một file trong PostgreSQL cần quyền superuser hoặc thuộc một vai trò đặc biệt, còn BULK INSERT của SQL Server đọc đường dẫn trên máy chủ chứ không phải laptop của bạn. Cơ sở dữ liệu được lưu trữ thuê ngoài thường chỉ có trình soạn thảo truy vấn.
Script INSERT tránh được tất cả những vướng mắc đó. Nó là văn bản nên bạn có thể đọc, đưa vào quản lý phiên bản làm dữ liệu khởi tạo và chạy trong bất kỳ trình quản lý nào. Đổi lại là tốc độ: hàng chục nghìn dòng nạp tốt, còn hàng triệu dòng nên dùng công cụ nạp hàng loạt gốc. Nếu bạn lưu dữ liệu tham chiếu trong workbook, có thể bỏ qua bước CSV bằng Excel sang SQL.
Ví dụ chuyển CSV sang SQL cho MySQL
CREATE TABLE `my_table` ( `id` INT, `name` VARCHAR(255), `joined` DATE ); INSERT INTO `my_table` (`id`, `name`, `joined`) VALUES (1, 'Trần Thị Mai', '2026-03-02'), (2, 'Liam O''Brien', '2026-04-15');
Bốn phương ngữ SQL khác nhau thế nào trong kết quả
Tên định danh được đặt trong dấu backtick, như order date, nhờ đó từ khóa dành riêng như order cũng dùng được làm tên cột.
- Cũng phù hợp với MariaDB
- Lựa chọn mặc định tốt khi nhập bằng phpMyAdmin
Tên định danh dùng dấu nháy kép chuẩn. Tên đặt trong dấu trích dẫn giữ nguyên chữ hoa chữ thường, nên "Email" và email là hai cột khác nhau.
- Tên dài hơn 63 byte bị cắt bớt
Cũng dùng dấu nháy kép, với kiểu dữ liệu linh hoạt: cột khai báo INT vẫn nhận văn bản trừ khi bảng được khai báo STRICT, tùy chọn có từ SQLite 3.37.0.
- Chạy trong shell sqlite3 hoặc DB Browser for SQLite
Tên định danh đặt trong dấu ngoặc vuông, như [order date]. Cột văn bản chứa ký tự không phải Latin cần NVARCHAR và giá trị dạng N'…'.
- Chạy trong SSMS hoặc Azure Data Studio
| Tổ chức | Yêu cầu | Nguồn |
|---|---|---|
| MySQL 8.0 | max_allowed_packet mặc định là 64 MB; một câu lệnh đơn lớn hơn mức đó sẽ bị từ chối | — |
| SQL Server | Một danh sách INSERT … VALUES chấp nhận tối đa 1.000 biểu thức giá trị dòng | — |
| PostgreSQL | Tên định danh dài hơn 63 byte bị cắt bớt mà không có cảnh báo | — |
| SQLite | Một bảng có tối đa 2.000 cột trong bản dựng mặc định | — |
Kiểm tra những điểm sau trước khi chạy script
Hãy xem dòng CREATE TABLE trước. Kiểu cột được đoán từ giá trị, và đoán có thể sai: mã ZIP và số điện thoại trông như số nhưng phải giữ dạng văn bản, nếu không 02134 sẽ mất số 0 ở đầu. Hãy sửa kiểu trong script trước khi chạy, hoặc tự tạo bảng rồi chỉ chạy phần INSERT.
Hãy nhập tên thật vào Tên bảng SQL thay cho my_table, và chạy script trong một transaction nếu trình quản lý của bạn cho phép, để một dòng lỗi sẽ hoàn tác toàn bộ. Các định dạng đích khác cho cùng file CSV có trong trang chuyển đổi dữ liệu.
Định dạng CSV và script SQL
CSV
Giá trị phân tách bằng dấu phẩy (CSV)
CSV là định dạng văn bản thuần cho bảng, trong đó mỗi dòng là một hàng và dấu phẩy phân tách các cột. Định dạng đã được dùng từ những ngày đầu của ngành máy tính và được mô tả trong RFC 4180, dù nhiều biến thể dùng dấu chấm phẩy hoặc tab và các bảng mã văn bản khác nhau. Gần như mọi bảng tính, cơ sở dữ liệu và công cụ phân tích đều nhập và xuất được CSV, nên đây là định dạng mặc định để chuyển dữ liệu giữa các hệ thống. CSV chỉ lưu giá trị, không có công thức, định dạng trình bày, nhiều trang tính hay kiểu dữ liệu.
- Nén
- –
- Độ trong suốt
- –
- Ảnh động
- –
- Ra mắt
- –
SQL
Tập lệnh SQL
Tệp SQL là một tập lệnh văn bản thuần gồm các câu lệnh Structured Query Language, chẳng hạn CREATE TABLE và INSERT, được cơ sở dữ liệu thực thi theo thứ tự. Tệp thường được dùng để sao lưu cơ sở dữ liệu, di chuyển dữ liệu (migration) và chia sẻ dữ liệu mẫu. Bản thân ngôn ngữ này là một chuẩn ISO, nhưng MySQL, PostgreSQL, SQLite và SQL Server đều có phương ngữ riêng, nên tập lệnh thường cần chỉnh sửa nhỏ khi chuyển giữa các hệ thống. Mọi trình soạn thảo văn bản đều mở được tệp SQL, còn muốn thực thi thì cần một trình khách cơ sở dữ liệu.
- Nén
- –
- Độ trong suốt
- –
- Ảnh động
- –
- Ra mắt
- –
CSV được chuyển thành SQL khi file cần trở thành một bảng trong cơ sở dữ liệu mà bạn chỉ truy cập được qua cửa sổ truy vấn: tạo dữ liệu ban đầu cho ứng dụng mới, nạp danh sách tham chiếu hoặc đưa bảng tính vào MySQL hay PostgreSQL khi không có quyền truy cập máy chủ.
Câu hỏi thường gặp về chuyển CSV sang SQL
Vì sao nên dùng file SQL thay cho LOAD DATA hoặc COPY?
Các công cụ nạp hàng loạt như LOAD DATA INFILE của MySQL và COPY của PostgreSQL nhanh hơn nhưng cần quyền truy cập file trên máy chủ hoặc thêm tham số ở máy khách. Một script thông thường chạy được ở bất cứ nơi nào bạn dán được SQL: bảng điều khiển cơ sở dữ liệu trên đám mây, phpMyAdmin hoặc một bản migration đã được rà soát.
Dấu nháy đơn trong tên như O'Brien được ghi thế nào?
Trong chuỗi SQL, dấu nháy đơn được thoát bằng cách viết đôi, nên giá trị được ghi thành 'O''Brien'. Cả bốn phương ngữ đều chấp nhận dạng này, vì vậy tên có dấu nháy đơn không làm hỏng câu lệnh INSERT.
Tiêu đề cột trong CSV sẽ trở thành gì trong bảng?
Là tên cột, được đặt trong dấu trích dẫn theo cách phương ngữ đã chọn yêu cầu. Tiêu đề như Unit Price vẫn dùng được, nhưng tên có dấu cách và dấu trích dẫn thì ở mọi truy vấn sau này cũng phải đặt trong dấu trích dẫn, nên nếu có thể hãy đổi tiêu đề thành unit_price trước khi chuyển.
Có thể nhập file SQL qua phpMyAdmin không?
Có, ở tab Import. Giới hạn ở đó là upload_max_filesize của PHP, mặc định là 2 MB trong php.ini gốc; nhiều nhà cung cấp hosting nâng giới hạn này lên và trang hiển thị mức giới hạn hiện tại. Nếu script lớn hơn mức đó, hãy chia file CSV lớn thành nhiều file.
Có cách nào chuyển ngược từ bảng về CSV không?
Xuất bảng ra file dump rồi chuyển bằng SQL sang CSV, hoặc dùng chức năng xuất CSV có sẵn của trình quản lý cơ sở dữ liệu. Cả hai cách đều cho ra các dòng mà bảng tính có thể mở lại.
- Chuyển Excel sang SQLChuyển trang tính Excel thành script SQL cho MySQL, PostgreSQL, SQLite hoặc SQL Server. Tiêu đề thành cột, mỗi hàng thành một câu lệnh INSERT.
- Chuyển SQL sang CSVChuyển các câu lệnh INSERT trong file dump .sql thành dòng CSV mở được bằng Excel hoặc Google Sheets. Hỗ trợ dump MySQL, phpMyAdmin, SQLite, SQL Server.
- Chuyển CSV sang XLSXChuyển CSV sang file Excel XLSX, giữ nguyên số 0 ở đầu, mã ID dài và chữ có dấu. Tự nhận diện file phân cách bằng dấu phẩy, chấm phẩy và tab.
- Chuyển CSV sang XMLChuyển các dòng CSV thành XML chuẩn với thẻ gốc tùy chọn. Tự thoát ký tự đặc biệt, tự nhận dấu phân cách, xuất UTF-8. Tối đa 20 file cùng lúc.
- Chuyển CSV sang ParquetChuyển CSV sang Apache Parquet có kiểu cột và nén sẵn, dùng ngay với pandas, DuckDB, Spark, BigQuery hoặc Athena. Không cần cài Python hay Spark.
- Chuyển Parquet sang CSVChuyển file Apache Parquet sang CSV online để mở bằng Excel, Google Sheets hoặc mọi công cụ nhập dữ liệu. Không cần Python, Spark hay DuckDB. Tối đa 20 file.