Do czego służy
Wczytanie arkusza do bazy danych zwykle oznacza ręczne pisanie definicji tabeli i długiej listy instrukcji INSERT z escapowaniem każdego apostrofu. To narzędzie zrobi to za Ciebie: wklej CSV i otrzymaj gotowy do uruchomienia skrypt SQL z instrukcją CREATE TABLE i wielowierszowymi instrukcjami INSERT podzielonymi na partie.
Narzędzie stosuje RFC 4180: obsługuje pola w cudzysłowach, przecinki i znaki nowego wiersza w komórkach oraz podwojone cudzysłowy. Ciągi są poprawnie escapowane dla wybranej bazy, łącznie z ukośnikami wstecznymi w MySQL i ciągami Unicode N'…' w SQL Server.
Jak używać
- Wklej CSV, wgraj plik
.csvlub.tsvalbo kliknij Przykład. - Wpisz Nazwę tabeli. Schemat oddziel kropką, np.
public.orderslubdbo.orders. - Wybierz Dialekt: MySQL / MariaDB, PostgreSQL, SQLite lub SQL Server.
- Wybierz liczbę Wierszy na INSERT i wyłącz CREATE TABLE, jeśli tabela już istnieje.
- Skopiuj SQL lub pobierz go jako plik
.sqli uruchom w kliencie bazy danych.
Separator jest wykrywany automatycznie; możesz też wybrać przecinek, średnik, tabulator lub kreskę pionową. Jeśli pierwszy wiersz zawiera dane, a nie nazwy kolumn, wyłącz Pierwszy wiersz to nagłówek — kolumny otrzymają nazwy column_1, column_2 itd.
Przykład
Taki plik CSV:
id,name,price,in_stock
1,Ada's Tea,4.50,true
2,Coffee,,false
zamienia się w taki skrypt dla PostgreSQL:
CREATE TABLE "products" (
"id" INTEGER,
"name" TEXT,
"price" NUMERIC(3, 2),
"in_stock" BOOLEAN
);
INSERT INTO "products" ("id", "name", "price", "in_stock") VALUES
(1, 'Ada''s Tea', 4.50, TRUE),
(2, 'Coffee', NULL, FALSE);
Apostrof w Ada's zostaje podwojony, pusta cena staje się NULL, a liczby i wartości logiczne są zapisane bez cudzysłowów.
Typy i dialekty
- MySQL / MariaDB: identyfikatory w grawisach,
INT,DECIMAL,BOOLEAN,DATE,DATETIME,VARCHAR(255)lubTEXT; ukośniki wsteczne w ciągach są escapowane. - PostgreSQL: identyfikatory w podwójnych cudzysłowach,
INTEGER,NUMERIC,BOOLEAN,DATE,TIMESTAMPiTEXT. - SQLite: identyfikatory w podwójnych cudzysłowach i klasy przechowywania SQLite
INTEGER,REALiTEXT; wartości logiczne zapisywane są jako 1 i 0. - SQL Server: identyfikatory w nawiasach kwadratowych,
INT,DECIMAL,BIT,DATE,DATETIME2iNVARCHAR, literałyN'…'i najwyżej 1000 wierszy na INSERT. - Puste komórki stają się
NULL. Wyłącz Puste komórki jako NULL, aby zachować puste ciągi w kolumnach tekstowych. - Przed uruchomieniem skryptu na danych produkcyjnych sprawdź wykryte typy: kolumna, która w próbce ma tylko małe liczby, może później potrzebować szerszego typu.
FAQ
› Jakie bazy danych są obsługiwane?
MySQL (i MariaDB), PostgreSQL, SQLite oraz Microsoft SQL Server. Dialekt decyduje o tym, jak cytowane są nazwy tabel i kolumn, jak escapowane są ciągi, jakie typy kolumn są używane i jak zapisywane są wartości logiczne.
› Jak dobierane są typy kolumn?
Każda kolumna jest analizowana: liczby całkowite stają się INT lub BIGINT, dziesiętne DECIMAL o wystarczającej precyzji, true/false BOOLEAN (BIT w SQL Server), daty ISO DATE lub DATETIME, a cała reszta tekstem. Liczby z zerami na początku, jak kody pocztowe, pozostają tekstem. Wyłącz Wykrywaj typy, aby wszystkie kolumny były tekstowe.
› Dlaczego SQL Server ma limit 1000 wierszy na INSERT?
SQL Server odrzuca listę VALUES dłuższą niż 1000 wierszy, więc w tym dialekcie większe partie są ograniczane do 1000. Inne bazy przyjmują większe partie, ale 100–1000 wierszy na instrukcję to dobry kompromis między szybkością a rozmiarem.
› Czy mój plik CSV jest gdzieś wysyłany?
Nie. Parsowanie i generowanie SQL odbywają się w całości w przeglądarce, więc dane nigdy nie opuszczają Twojego urządzenia.