Chuyển CSV sang MariaDB
Thả tệp CSV để nhận tập lệnh MariaDB 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.
Đã chuyển đổi 5 hàng, 8 bản sửa, không hàng nào bị từ chối
| Hàng | ||||||
|---|---|---|---|---|---|---|
| 5 | 00412 | Peña Muñoz | Mérida | 15/02/2024 | 1.234,50 | sí |
| 6 | 00413 | José Ángel Ruiz | León | 03/02/2024 | 99,90 | no |
| 7 | 00414 | Zoë Ortíz | Querétaro | 29/02/2024 | N/A | sí |
| 8 | 00415 | Ñuño Castañeda | Oaxaca | 28/02/2024 | 7,25 | no |
| 9 | 00416 | Iñaki Olaizola | Mazatlán | 11/03/2024 | 980,75 | sí |
-- Written by IntoSQL for MariaDB.
SET NAMES utf8mb4;
SET SESSION sql_mode = REPLACE(@@sql_mode, 'NO_BACKSLASH_ESCAPES', '');
START TRANSACTION;
CREATE TABLE ventas_2024 (
folio varchar(8) NOT NULL,
cliente varchar(16) NOT NULL,
ciudad varchar(16) NOT NULL,
fecha date NOT NULL,
importe decimal(6,2),
pagado tinyint(1) NOT NULL
) DEFAULT CHARSET=utf8mb4;
INSERT INTO ventas_2024 (folio, cliente, ciudad, fecha, importe, pagado) VALUES
('00412', 'Peña Muñoz', 'Mérida', '2024-02-15', 1234.50, TRUE),
('00413', 'José Ángel Ruiz', 'León', '2024-02-03', 99.90, FALSE),
('00414', 'Zoë Ortíz', 'Querétaro', '2024-02-29', NULL, TRUE),
('00415', 'Ñuño Castañeda', 'Oaxaca', '2024-02-28', 7.25, FALSE),
('00416', 'Iñaki Olaizola', 'Mazatlán', '2024-03-11', 980.75, TRUE);
COMMIT;
Bản sửa
- Tệp được ghi bằng windows‑1252; tệp đã được chuyển sang UTF-8.
- Tiêu đề nằm ở dòng 4; các dòng phía trên đã bị bỏ qua.
- Dòng 10 ("TOTAL") là dòng tổng, nên đã bị bỏ qua.
- Giữ số 0 ở đầu trong "Folio": 00412 vẫn là 00412, lưu dưới dạng văn bản.
- 15/02/2024 chứng minh ngày trong "Fecha" ghi ngày trước tháng, nên 03/02/2024 được đọc là 2024‑02‑03.
- Số trong "Importe" dùng dấu phẩy thập phân: 1.234,50 được đọc là 1234.50.
- N/A trong "Importe" được đọc là trống (1 trên 5 giá trị).
- "Pagado" chứa các từ có và không (sí, no), 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ừ CSV sang MariaDB, từng cột một
Tệp mẫu ở trên, ventas_2024.csv, khi IntoSQL viết cho MariaDB: 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ệp | Giá trị đầu tiên | Cột | Kiểu MariaDB | Trong tập lệnh |
|---|---|---|---|---|
| Folio | 00412 | folio | varchar(8) | '00412' |
| Cliente | Peña Muñoz | cliente | varchar(16) | 'Peña Muñoz' |
| Ciudad | Mérida | ciudad | varchar(16) | 'Mérida' |
| Fecha | 15/02/2024 | fecha | date | '2024-02-15' |
| Importe | 1.234,50 | importe | decimal(6,2) | 1234.50 |
| Pagado | sí | pagado | tinyint(1) | TRUE |
Nạp tập lệnh vào MariaDB
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 MariaDB.
Từ terminal
mariadb --default-character-set=utf8mb4 mydb < ventas_2024.mariadb.sqlTậ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 HeidiSQL hoặc DBeaver, mở tập lệnh và chạy.
Không cần tập lệnhPro
IntoSQL Pro nạp tệp thẳng vào MariaDB 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 ventas_2024.csv --into mariadb://user@localhost/mydbNhững điều cần biết về tệp CSV và MariaDB
IntoSQL đọc gì trong tệp CSV
- Bảng mã được nhận diện, kể cả Windows-1252 và UTF-16, nên dấu và ký tự ñ được giữ nguyên.
- Dấu phân cách được nhận diện: dấu phẩy, dấu chấm phẩy, tab hoặc thanh dọc. Với dấu chấm phẩy, dấu phẩy thập phân như 1.234,50 được đọc là số.
- Giá trị trong dấu ngoặc kép có thể chứa dấu phân cách và xuống dòng.
Những điều cần biết về MariaDB
- 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 MariaDB không lưu múi giờ.
Cách mỗi loại giá trị được lưu trong MariaDB
| Giá trị | MariaDB |
|---|---|
| Có và không | tinyint(1) |
| Số nguyên | int |
| Số nguyên lớn | bigint |
| Số thập phân | decimal(p,s)double |
| Số dấu phẩy động | double |
| Ngày | date |
| Giờ trong ngày | time(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ản | varchar(n)textmediumtextlongtext |
Câu hỏi về CSV sang MariaDB
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 CSV sang MariaDB?
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 MariaDB, 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 mariadb client.
Nếu CSV của tôi dùng dấu chấm phẩy hoặc tab thì sao?
Dấu phân cách được tự nhận diện: dấu phẩy, dấu chấm phẩy, tab hoặc thanh dọc. Bạn cũng có thể đặt nó trong Tùy chọn khác. Với dấu chấm phẩy, số thập phân dùng dấu phẩy như 1.234,50 được đọc là số.
Nó dùng những kiểu MariaDB 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 MariaDB không?
Có. Một mã như 00412 vẫn là văn bản, nên MariaDB lưu nó dưới dạng varchar(8) và tập lệnh viết nó là '00412'.
Có thể nạp dữ liệu vào MariaDB 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 MariaDB, tạo bảng trước rồi nạp thẳng các hàng vào.
Tệp CSV có thể lớn đến đâu?
Trình duyệt đọc CSV theo luồng, nên tệp vài gigabyte vẫn chạy được. Trên laptop Apple M4, dòng lệnh chuyển đổi CSV 174 MB với một triệu hàng trong chưa đầy một giây.