Chuyển Excel sang SQL
Thả tệp Excel và chọn cơ sở dữ liệu để nhận tập lệnh SQL 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 4 hàng, 10 bản sửa, không hàng nào bị từ chối
| Hàng | ||||||
|---|---|---|---|---|---|---|
| 5 | 00127 | Peña Muñoz | 01234 | 03/02/2024 | sí | 1.234,50 |
| 6 | 00128 | José Ángel | 09870 | 15/02/2024 | no | N/A |
| 7 | 00129 | Zoë Ortíz | 44100 | 29/02/2024 | sí | -12,00 |
| 8 | 00130 | Ñuño Castañeda | 06700 | 11/03/2024 | no | 980,75 |
-- Written by IntoSQL for PostgreSQL.
SET client_encoding = 'UTF8';
BEGIN;
CREATE TABLE clientes_2024 (
no_cliente text NOT NULL,
nombre text NOT NULL,
c_p text NOT NULL,
alta date NOT NULL,
activo boolean NOT NULL,
saldo numeric(6,2)
);
COMMENT ON COLUMN clientes_2024.no_cliente IS 'Nº Cliente';
COMMENT ON COLUMN clientes_2024.c_p IS 'C.P.';
INSERT INTO clientes_2024 (no_cliente, nombre, c_p, alta, activo, saldo) VALUES
('00127', 'Peña Muñoz', '01234', '2024-02-03', TRUE, 1234.50),
('00128', 'José Ángel', '09870', '2024-02-15', FALSE, NULL),
('00129', 'Zoë Ortíz', '44100', '2024-02-29', TRUE, -12.00),
('00130', 'Ñuño Castañeda', '06700', '2024-03-11', FALSE, 980.75);
COMMIT;
Bản sửa
- Tiêu đề nằm ở dòng 4; các dòng phía trên đã bị bỏ qua.
- Dòng 9 ("TOTAL") là dòng tổng, nên đã bị bỏ qua.
- Cột "Nº Cliente" giờ có tên no_cliente để PostgreSQL đọc được mà không cần dấu ngoặc kép.
- Cột "C.P." giờ có tên c_p để PostgreSQL đọc được mà không cần dấu ngoặc kép.
- Giữ số 0 ở đầu trong "Nº Cliente": 00127 vẫn là 00127, lưu dưới dạng văn bản.
- Giữ số 0 ở đầu trong "C.P.": 01234 vẫn là 01234, lưu dưới dạng văn bản.
- 15/02/2024 chứng minh ngày trong "Alta" ghi ngày trước tháng, nên 03/02/2024 được đọc là 2024‑02‑03.
- "Activo" chứa các từ có và không (sí, no), lưu dưới dạng boolean.
- Số trong "Saldo" dùng dấu phẩy thập phân: 1.234,50 được đọc là 1234.50.
- N/A trong "Saldo" được đọc là trống (1 trên 4 giá trị).
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:
Một tệp Excel, sáu cơ sở dữ liệu
Tệp mẫu ở trên, clientes_2024.xlsx, và kiểu dữ liệu mà mỗi cột nhận được trong từng cơ sở dữ liệu.
| Trong tệp | Giá trị đầu tiên | PostgreSQL | MySQL | MariaDB | SQLite | SQL Server | Oracle |
|---|---|---|---|---|---|---|---|
| Nº Cliente | 00127 | text | varchar(8) | varchar(8) | TEXT | nvarchar(8) | VARCHAR2(8 CHAR) |
| Nombre | Peña Muñoz | text | varchar(16) | varchar(16) | TEXT | nvarchar(16) | VARCHAR2(16 CHAR) |
| C.P. | 01234 | text | varchar(8) | varchar(8) | TEXT | nvarchar(8) | VARCHAR2(8 CHAR) |
| Alta | 03/02/2024 | date | date | date | DATE | date | DATE |
| Activo | sí | boolean | tinyint(1) | tinyint(1) | BOOLEAN | bit | NUMBER(1) |
| Saldo | 1.234,50 | numeric(6,2) | decimal(6,2) | decimal(6,2) | NUMERIC(6,2) | decimal(6,2) | NUMBER(6,2) |
Nạp tập lệnh vào cơ sở dữ liệu của bạn
Tệp tải xuống là một tệp .sql thông thường. Mỗi cơ sở dữ liệu chạy nó bằng công cụ riêng.
PostgreSQL
psql -v ON_ERROR_STOP=1 -d mydb -f clientes_2024.postgresql.sqlON_ERROR_STOP khiến psql dừng ở lỗi đầu tiên. Tập lệnh chạy trong một giao dịch, nên nếu nạp thất bại, cơ sở dữ liệu vẫn giữ nguyên.
MySQL
mysql --default-character-set=utf8mb4 mydb < clientes_2024.mysql.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.
MariaDB
mariadb --default-character-set=utf8mb4 mydb < clientes_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.
SQLite
sqlite3 clientes_2024.db < clientes_2024.sqlite.sqlTệp cơ sở dữ liệu được tạo nếu chưa có. Trình chuyển đổi cũng tải xuống sẵn một cơ sở dữ liệu .sqlite, không cần lệnh nào.
SQL Server
sqlcmd -S localhost -d mydb -f 65001 -i clientes_2024.sql_server.sql-f 65001 đọc tệp dưới dạng UTF-8, nên dấu và ñ được nạp đúng như đã viết.
Oracle
sqlplus user@//localhost/mydb @clientes_2024.oracle.sqlTập lệnh tắt biến thay thế (SET DEFINE OFF), nên dấu & trong dữ liệu vẫn là dấu &.
Dòng lệnh nạp tệp thẳng vào cơ sở dữ liệu SQLite miễn phí. Với IntoSQL Pro, dòng lệnh và ứng dụng máy tính còn nạp vào PostgreSQL, MySQL và MariaDB. Với SQL Server và Oracle, hãy chạy tập lệnh.
Những điều cần biết về tệp Excel và từng cơ sở dữ liệu
IntoSQL đọc gì trong tệp Excel
- Dòng tiêu đề vẫn được tìm thấy dù phía trên có tiêu đề hoặc ghi chú, và dòng tổng ở cuối được bỏ qua.
- Ngày lưu dưới dạng số sê-ri của Excel trở thành ngày thật, ở cả hệ ngày 1900 lẫn 1904.
- Mã có số 0 ở đầu, như 00127, vẫn là văn bản. Khi sổ làm việc có nhiều trang tính, bạn chọn trang tính.
Những điều cần biết về từng cơ sở dữ liệu
- Chọn cơ sở dữ liệu sau khi mở tệp: mỗi cơ sở dữ liệu nhận các kiểu mà nó hỗ trợ.
Cách mỗi loại giá trị được lưu trong từng cơ sở dữ liệu
| Giá trị | PostgreSQL | MySQL | MariaDB | SQLite | SQL Server | Oracle |
|---|---|---|---|---|---|---|
| Có và không | boolean | tinyint(1) | tinyint(1) | BOOLEAN | bit | NUMBER(1) |
| Số nguyên | integer | int | int | INTEGER | int | NUMBER(10) |
| Số nguyên lớn | bigint | bigint | bigint | INTEGER | bigint | NUMBER(19) |
| Số thập phân | numeric(p,s) | decimal(p,s)double | decimal(p,s)double | NUMERIC(p,s)TEXT | decimal(p,s) | NUMBER(p,s) |
| Số dấu phẩy động | double precision | double | double | REAL | float | BINARY_DOUBLE |
| Ngày | date | date | date | DATE | date | DATE |
| Giờ trong ngày | time | time(6)time | time(6)time | TIME | time | INTERVAL DAY(0) TO SECOND |
| Ngày kèm giờ | timestamp | datetime(6)datetime | datetime(6)datetime | DATETIME | datetime2 | TIMESTAMP |
| Ngày kèm giờ và độ lệch múi giờ | timestamptz | datetime(6)datetime | datetime(6)datetime | DATETIME | datetimeoffset | TIMESTAMP WITH TIME ZONE |
| Văn bản | text | varchar(n)textmediumtextlongtext | varchar(n)textmediumtextlongtext | TEXT | nvarchar(n)nvarchar(max) | VARCHAR2(n CHAR)CLOB |
Câu hỏi về Excel sang SQL
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 Excel sang SQL?
Thả tệp vào trình chuyển đổi ở đầu trang này và chọn cơ sở dữ liệu: PostgreSQL, MySQL, MariaDB, SQLite, SQL Server hoặc Oracle. Mỗi cơ sở dữ liệu nhận các kiểu mà nó hỗ trợ. Tải tập lệnh xuống và chạy trong cơ sở dữ liệu.
Trang tính nào trong sổ làm việc được chuyển đổi?
Trang tính hiển thị đầu tiên. Khi sổ làm việc có nhiều trang tính, tùy chọn Trang tính sẽ xuất hiện để bạn chọn trang khác.
Nó dùng những kiểu nào trong từng cơ sở dữ liệu?
Mỗi cơ sở dữ liệu có kiểu riêng: giá trị có/không là boolean trong PostgreSQL, tinyint(1) trong MySQL và MariaDB, bit trong SQL Server và NUMBER(1) trong Oracle. Bảng trên trang này liệt kê mọi loại giá trị.
Số 0 ở đầu có được giữ không?
Có. Một mã như 00127 vẫn là văn bản trong mọi cơ sở dữ liệu, được viết là '00127', nên không mất số 0 nào.
Có thể nạp dữ liệu mà không cần tập lệnh không?
Có. Dòng lệnh nạp vào SQLite miễn phí, và với IntoSQL Pro, ứng dụng máy tính và dòng lệnh nạp vào PostgreSQL, MySQL và MariaDB. Với SQL Server và Oracle, hãy chạy tập lệnh.
Tệp Excel có thể lớn đến đâu?
Trong trình duyệt, sổ làm việc đượ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 sổ làm việc ở mọi kích thước; trên laptop Apple M4, dòng lệnh chuyển đổi sổ làm việc 117 MB với một triệu hàng trong khoảng một giây.