Przejdź do treści

Konwersja Excel do SQL

Upuść plik Excel i wybierz bazę danych, aby dostać skrypt SQL z instrukcjami CREATE TABLE i INSERT. Każda kolumna dostaje typ, a każda poprawka jest wymieniona z wierszem i kolumną.

Twój plik
xlsxclientes_2024.xlsxPlik przykładowy, 7 kB
Twoja baza danych

4 wiersze przekonwertowane, 10 poprawek, brak odrzuconych

Pokaż
Pierwsze wiersze pliku clientes_2024.xlsx, z zaznaczoną każdą poprawką
Wiersz
500127Peña Muñoz0123403/02/2024sí1.234,50
600128José Ángel0987015/02/2024noN/A
700129Zoë Ortíz4410029/02/2024sí-12,00
800130Ñuño Castañeda0670011/03/2024no980,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;

Poprawki

  1. Nagłówek jest w wierszu 4; wiersze nad nim pominięto.
  2. Wiersz 9 ("TOTAL") to suma, więc go pominięto.
  3. Kolumna "Nº Cliente" nazywa się teraz no_cliente, aby PostgreSQL czytał ją bez cudzysłowów.
  4. Kolumna "C.P." nazywa się teraz c_p, aby PostgreSQL czytał ją bez cudzysłowów.
  5. Zachowano zera wiodące w "Nº Cliente": 00127 pozostaje 00127, zapisane jako tekst.
  6. Zachowano zera wiodące w "C.P.": 01234 pozostaje 01234, zapisane jako tekst.
  7. 15/02/2024 dowodzi, że daty w "Alta" zaczynają się od dnia, więc 03/02/2024 jest odczytywane jako 2024‑02‑03.
  8. "Activo" zawiera słowa tak i nie (sí, no), zapisane jako wartości logiczne.
  9. Liczby w "Saldo" mają przecinek dziesiętny: 1.234,50 jest odczytywane jako 1234.50.
  10. 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:

Jeden plik Excel, sześć baz danych

Przykład powyżej, clientes_2024.xlsx, i typ, jaki każda jego kolumna dostaje w każdej bazie danych.

W plikuPierwsza wartośćPostgreSQLMySQLMariaDBSQLiteSQL ServerOracle
Nº Cliente00127textvarchar(8)varchar(8)TEXTnvarchar(8)VARCHAR2(8 CHAR)
NombrePeña Muñoztextvarchar(16)varchar(16)TEXTnvarchar(16)VARCHAR2(16 CHAR)
C.P.01234textvarchar(8)varchar(8)TEXTnvarchar(8)VARCHAR2(8 CHAR)
Alta03/02/2024datedatedateDATEdateDATE
Activosíbooleantinyint(1)tinyint(1)BOOLEANbitNUMBER(1)
Saldo1.234,50numeric(6,2)decimal(6,2)decimal(6,2)NUMERIC(6,2)decimal(6,2)NUMBER(6,2)

Załaduj skrypt do swojej bazy danych

Pobierasz zwykły plik .sql. Każda baza danych uruchamia go własnymi narzędziami.

  • PostgreSQL

    psql -v ON_ERROR_STOP=1 -d mydb -f clientes_2024.postgresql.sql

    ON_ERROR_STOP zatrzymuje psql przy pierwszym błędzie. Skrypt działa w jednej transakcji, więc nieudane ładowanie zostawia bazę bez zmian.

  • MySQL

    mysql --default-character-set=utf8mb4 mydb < clientes_2024.mysql.sql

    Skrypt sam ustawia utf8mb4; flaga sprawia, że klient wysyła go tak samo, więc polskie znaki docierają bez zmian.

  • MariaDB

    mariadb --default-character-set=utf8mb4 mydb < clientes_2024.mariadb.sql

    Skrypt sam ustawia utf8mb4; flaga sprawia, że klient wysyła go tak samo, więc polskie znaki docierają bez zmian.

  • SQLite

    sqlite3 clientes_2024.db < clientes_2024.sqlite.sql

    Plik bazy danych powstaje, jeśli nie istnieje. Konwerter pobiera też gotową bazę .sqlite, bez żadnego polecenia.

  • SQL Server

    sqlcmd -S localhost -d mydb -f 65001 -i clientes_2024.sql_server.sql

    -f 65001 odczytuje plik jako UTF-8, więc znaki diakrytyczne i ñ docierają tak, jak je zapisano.

  • Oracle

    sqlplus user@//localhost/mydb @clientes_2024.oracle.sql

    Skrypt wyłącza zmienne podstawiania (SET DEFINE OFF), więc znak & w danych pozostaje znakiem &.

Wiersz poleceń za darmo ładuje pliki prosto do bazy SQLite. Z IntoSQL Pro wiersz poleceń i aplikacja na komputer ładują też do PostgreSQL, MySQL i MariaDB. Dla SQL Server i Oracle uruchom skrypt.

Co warto wiedzieć o plikach Excel i każdej bazie danych

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 każdej bazie danych

  • Wybierz bazę danych po otwarciu pliku: każda dostaje typy, które obsługuje.

Jak każdy rodzaj wartości jest zapisywany w każdej bazie danych

WartośćPostgreSQLMySQLMariaDBSQLiteSQL ServerOracle
Tak i niebooleantinyint(1)tinyint(1)BOOLEANbitNUMBER(1)
Liczby całkowiteintegerintintINTEGERintNUMBER(10)
Duże liczby całkowitebigintbigintbigintINTEGERbigintNUMBER(19)
Liczby dziesiętnenumeric(p,s)decimal(p,s)doubledecimal(p,s)doubleNUMERIC(p,s)TEXTdecimal(p,s)NUMBER(p,s)
Liczby zmiennoprzecinkowedouble precisiondoubledoubleREALfloatBINARY_DOUBLE
DatydatedatedateDATEdateDATE
Godzinytimetime(6)timetime(6)timeTIMEtimeINTERVAL DAY(0) TO SECOND
Daty z godzinątimestampdatetime(6)datetimedatetime(6)datetimeDATETIMEdatetime2TIMESTAMP
Daty z godziną i przesunięciemtimestamptzdatetime(6)datetimedatetime(6)datetimeDATETIMEdatetimeoffsetTIMESTAMP WITH TIME ZONE
Teksttextvarchar(n)textmediumtextlongtextvarchar(n)textmediumtextlongtextTEXTnvarchar(n)nvarchar(max)VARCHAR2(n CHAR)CLOB

Pytania o Excel do SQL

Nie ma tu odpowiedzi? Napisz do nas przez stronę kontaktu, a odpowie człowiek. Strona kontaktu

Jak przekonwertować Excel do SQL?

Upuść plik na konwerter u góry tej strony i wybierz bazę danych: PostgreSQL, MySQL, MariaDB, SQLite, SQL Server lub Oracle. Każda dostaje typy, które obsługuje. Pobierz skrypt i uruchom go w swojej bazie.

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 używa w każdej bazie danych?

Każda baza dostaje własne: wartości tak i nie to boolean w PostgreSQL, tinyint(1) w MySQL i MariaDB, bit w SQL Server i NUMBER(1) w Oracle. Tabela na tej stronie wymienia każdy rodzaj wartości.

Czy zachowuje zera wiodące?

Tak. Kod taki jak 00127 pozostaje tekstem w każdej bazie danych, zapisany jako '00127', więc żadne zero nie ginie.

Czy może załadować dane bez skryptu?

Tak. Wiersz poleceń za darmo ładuje do SQLite, a z IntoSQL Pro aplikacja na komputer i wiersz poleceń ładują do PostgreSQL, MySQL i MariaDB. Dla SQL Server i Oracle uruchom skrypt.

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ę.