Konwersja Excel do MySQL
Upuść plik Excel, aby dostać skrypt MySQL z instrukcjami CREATE TABLE i INSERT. Każda kolumna dostaje typ, a każda poprawka jest wymieniona z wierszem i kolumną.
4 wiersze przekonwertowane, 10 poprawek, brak odrzuconych
| Wiersz | ||||||
|---|---|---|---|---|---|---|
| 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 MySQL.
SET NAMES utf8mb4;
SET SESSION sql_mode = REPLACE(@@sql_mode, 'NO_BACKSLASH_ESCAPES', '');
START TRANSACTION;
CREATE TABLE clientes_2024 (
no_cliente varchar(8) NOT NULL COMMENT 'Nº Cliente',
nombre varchar(16) NOT NULL,
c_p varchar(8) NOT NULL COMMENT 'C.P.',
alta date NOT NULL,
activo tinyint(1) NOT NULL,
saldo decimal(6,2)
) DEFAULT CHARSET=utf8mb4;
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;
Poprawki
- Nagłówek jest w wierszu 4; wiersze nad nim pominięto.
- Wiersz 9 ("TOTAL") to suma, więc go pominięto.
- Kolumna "Nº Cliente" nazywa się teraz no_cliente, aby MySQL czytał ją bez cudzysłowów.
- Kolumna "C.P." nazywa się teraz c_p, aby MySQL czytał ją bez cudzysłowów.
- Zachowano zera wiodące w "Nº Cliente": 00127 pozostaje 00127, zapisane jako tekst.
- Zachowano zera wiodące w "C.P.": 01234 pozostaje 01234, zapisane jako tekst.
- 15/02/2024 dowodzi, że daty w "Alta" zaczynają się od dnia, więc 03/02/2024 jest odczytywane jako 2024‑02‑03.
- "Activo" zawiera słowa tak i nie (sí, no), zapisane jako wartości logiczne.
- Liczby w "Saldo" mają przecinek dziesiętny: 1.234,50 jest odczytywane jako 1234.50.
- N/A w "Saldo" odczytano jako puste (1 z 4 wartości).
Plik jest konwertowany na tym komputerze i nigdy nie jest wysyłany.
Inne przykłady:
Z Excel do MySQL, kolumna po kolumnie
Przykład powyżej, clientes_2024.xlsx, tak jak IntoSQL zapisuje go dla MySQL: co zawiera każda kolumna w pliku, jaki dostaje typ i jak jej pierwsza wartość trafia do skryptu.
| W pliku | Pierwsza wartość | Kolumna | Typ w MySQL | W skrypcie |
|---|---|---|---|---|
| Nº Cliente | 00127 | no_cliente | varchar(8) | '00127' |
| Nombre | Peña Muñoz | nombre | varchar(16) | 'Peña Muñoz' |
| C.P. | 01234 | c_p | varchar(8) | '01234' |
| Alta | 03/02/2024 | alta | date | '2024-02-03' |
| Activo | sí | activo | tinyint(1) | TRUE |
| Saldo | 1.234,50 | saldo | decimal(6,2) | 1234.50 |
Załaduj skrypt do MySQL
Pobierasz zwykły plik .sql. Uruchom go narzędziami MySQL.
Z terminala
mysql --default-character-set=utf8mb4 mydb < clientes_2024.mysql.sqlSkrypt sam ustawia utf8mb4; flaga sprawia, że klient wysyła go tak samo, więc polskie znaki docierają bez zmian.
Z narzędzia bazodanowego
W MySQL Workbench wybierz File, Run SQL Script i wskaż plik.
Bez skryptuPro
IntoSQL Pro ładuje plik prosto do MySQL z aplikacji na komputer lub wiersza poleceń, bez pisania skryptu.
intosql load clientes_2024.xlsx --into mysql://user@localhost/mydbCo warto wiedzieć o plikach Excel i MySQL
Co IntoSQL odczytuje w plikach Excel
- Wiersz nagłówka zostaje znaleziony, nawet gdy nad nim są tytuły lub notatki, a wiersz sum na końcu jest pomijany.
- Daty zapisane jako liczby seryjne Excela stają się prawdziwymi datami, zarówno w systemie dat 1900, jak i 1904.
- Kody z zerami na początku, takie jak 00127, pozostają tekstem. Gdy skoroszyt ma kilka arkuszy, sam wybierasz arkusz.
Co warto wiedzieć o MySQL
- Wartości tak i nie stają się tinyint(1). Tekst do 255 znaków to varchar; dłuższy tekst to text, mediumtext lub longtext, zależnie od rozmiaru.
- Skrypt używa utf8mb4 i ustawia tryb SQL, więc znaki diakrytyczne, emoji, ukośniki wsteczne i podziały wierszy ładują się tak, jak zostały zapisane.
- Typ datetime w MySQL nie zapisuje strefy czasowej.
Jak każdy rodzaj wartości jest zapisywany w MySQL
| Wartość | MySQL |
|---|---|
| Tak i nie | tinyint(1) |
| Liczby całkowite | int |
| Duże liczby całkowite | bigint |
| Liczby dziesiętne | decimal(p,s)double |
| Liczby zmiennoprzecinkowe | double |
| Daty | date |
| Godziny | time(6)time |
| Daty z godziną | datetime(6)datetime |
| Daty z godziną i przesunięciem | datetime(6)datetime |
| Tekst | varchar(n)textmediumtextlongtext |
Pytania o Excel do MySQL
Nie ma tu odpowiedzi? Napisz do nas przez stronę kontaktu, a odpowie człowiek. Strona kontaktu
Jak przekonwertować Excel do MySQL?
Upuść plik na konwerter u góry tej strony. Znajduje nagłówek, odczytuje każdą wartość i zapisuje skrypt MySQL, wymieniając każdą poprawkę. Pobierz skrypt i uruchom go za pomocą the mysql client.
Który arkusz skoroszytu jest konwertowany?
Pierwszy widoczny arkusz. Gdy skoroszyt ma ich więcej, pojawia się opcja Arkusz, w której wybierzesz inny.
Jakich typów MySQL używa?
Wartości tak i nie stają się tinyint(1), liczby całkowite int, liczby dziesiętne decimal(p,s), daty date, daty z godziną datetime(6), a tekst varchar(n). Rozmiary wynikają z najdłuższej wartości w każdej kolumnie.
Czy zachowuje zera wiodące w MySQL?
Tak. Kod taki jak 00127 pozostaje tekstem, więc MySQL przechowuje go jako varchar(8), a skrypt zapisuje go jako '00127'.
Czy może załadować dane do MySQL bez skryptu?
Tak, z IntoSQL Pro. Aplikacja na komputer i wiersz poleceń łączą się z MySQL i ładują wiersze bezpośrednio, najpierw tworząc tabelę.
Jak duży może być plik Excel?
W przeglądarce skoroszyt jest odczytywany w całości, więc limitem jest pamięć, jaką przeglądarka daje tej stronie. Aplikacja na komputer i wiersz poleceń przyjmują skoroszyty dowolnej wielkości; na laptopie z Apple M4 wiersz poleceń konwertuje skoroszyt 117 MB z milionem wierszy w około sekundę.