Sprytne Okazje — promocje, kody rabatowe i wyprzedaże

Konwerter CSV na SQL

Zamień poprawnie zacytowany CSV na bezpieczniejszy skrypt MySQL z CREATE TABLE i INSERT.

Bezpieczne (SSL)
Przetwarzanie Lokalne
100% Darmowe
Instrukcja
  • 1
    Wprowadź dane
    Wpisz treść, wklej tekst lub załaduj plik z dysku.
  • 2
    Kliknij przycisk
    Narzędzie natychmiast przetworzy Twoje dane w przeglądarce.
  • 3
    Pobierz wynik
    Skopiuj gotowy tekst lub zapisz plik na urządzeniu.
function runTool() {
  return "Wynik gotowy w 0.1s";
}
Wierszy: 3 Kolumn: 4

Parser obsługuje pola w cudzysłowach, przecinki i rekordy wieloliniowe. Puste pola oraz tekst NULL przy wnioskowaniu stają się NULL. Literały są escapowane dla MySQL; przed importem zawsze sprawdź wynik.

Oceń to narzędzie:

Powiązane narzędzia

Inne narzędzia, które mogą Ci się przydać

Konwerter CSV na SQL — od pliku tabelarycznego do instrukcji INSERT

Konwerter CSV na SQL odczytuje nagłówki i rekordy z danych rozdzielanych przecinkiem, średnikiem albo tabulatorem, a następnie buduje skrypt MySQL. Może dołączyć definicję CREATE TABLE i wygenerować osobne lub zbiorcze instrukcje INSERT. Interfejs działa online, lecz komponent nie łączy się z docelową bazą i nie wykonuje wyniku.

Wklej dane razem z pierwszym rekordem zawierającym nazwy pól. Parser korzysta z reguł CSV, dlatego przecinek wewnątrz pola należy otoczyć cudzysłowami, a cudzysłów zapisać podwójnie. Obsługiwane są także zakończenia linii CRLF oraz tekst obejmujący kilka linii. Jeśli chcesz najpierw obejrzeć tabelę bez generowania poleceń, użyj przeglądarki CSV online.

Jak parser rozpoznaje rekordy, cudzysłowy i wielolinie

Rekord nie jest dzielony prostym wyszukiwaniem znaku nowej linii. Strumieniowy parser czyta kompletne pola, więc wartość "Warszawa, Polska" pozostaje jedną komórką, a opis zapisany w cudzysłowie może zawierać przejście do następnego wiersza. Puste fizyczne linie są pomijane, lecz puste pole w rekordzie pozostaje na swojej pozycji. Każdy rekord musi mieć dokładnie tyle pól, ile nagłówek; różnica zatrzymuje konwersję zamiast przesunąć dane do niewłaściwych kolumn.

Nagłówki są normalizowane do konserwatywnych identyfikatorów ASCII dozwolonych w MySQL. Spacje i znaki specjalne stają się podkreśleniami, nazwa zaczynająca się cyfrą otrzymuje bezpieczny prefiks, a duplikaty po normalizacji dostają kolejne sufiksy. To zabezpiecza składnię, ale przed importem warto sprawdzić, czy nazwy odpowiadają schematowi docelowemu.

Wnioskowanie typów i sposób tworzenia tabeli

Po włączeniu opcji wnioskowania wszystkie niepuste wartości w danej kolumnie są analizowane łącznie. Dzięki temu pojedyncze słowo nie wymusi typu liczbowego, a liczba całkowita w kolumnie z kwotami nie zablokuje typu dziesiętnego. Wartość NULL oraz puste pole nie wpływają na wybór typu. Numery z zerem wiodącym, identyfikatory z nietypowym formatem i liczby wykraczające poza bezpieczny zakres są zachowywane jako tekst.

Dane w kolumnieGenerowany typWażna uwaga
same true/falseTINYINT(1)w INSERT powstaje 1 albo 0
liczby całkowite w zakresieBIGINTzera wiodące kierują kolumnę do tekstu
liczby z częścią ułamkowąDECIMAL(p,s)precyzja i skala wynikają z danych
krótki tekstVARCHAR(255)dobry dla nazw i kodów
długi lub wieloliniowy tekstTEXT / LONGTEXTchroni przed obcięciem do 255 znaków

Jeśli wyłączysz wnioskowanie, wszystkie kolumny zostaną potraktowane tekstowo. To rozsądny wybór dla kodów pocztowych, numerów katalogowych i identyfikatorów, których zapis ma znaczenie. Bardziej ręczną kontrolę nad pojedynczym poleceniem zapewnia generator instrukcji SQL INSERT.

Pojedyncze i zbiorcze INSERT-y

Tryb pojedynczy tworzy jedno polecenie na rekord. Jest czytelny, ułatwia znalezienie błędnego wiersza i pozwala wykonywać fragmenty skryptu. Tryb zbiorczy używa jednej listy VALUES (...), (...), więc zwykle zmniejsza narzut importu. Bardzo duży wsad nadal warto podzielić na transakcje i uwzględnić limit rozmiaru pakietu serwera. Sam konwerter ogranicza wejście do 1 MB i 5000 rekordów, aby przypadkowe wklejenie ogromnego pliku nie przeciążyło żądania.

  1. Wybierz separator zgodny z plikiem i wklej nagłówek wraz z rekordami.
  2. Ustaw nazwę tabeli, zdecyduj o CREATE TABLE i wnioskowaniu typów.
  3. Wybierz pojedyncze albo zbiorcze polecenie INSERT.
  4. Skopiuj wynik i przejrzyj typy, nazwy, wartości NULL oraz kodowanie.
  5. Najpierw uruchom skrypt w bazie testowej i transakcji, dopiero potem w środowisku docelowym.

Escaping wartości i ograniczenie ryzyka SQL injection

Wynik jest przeznaczony dla MySQL: identyfikatory są ograniczone do liter, cyfr i podkreśleń oraz ujmowane w backticki. W tekstach podwajane są apostrofy, a backslash, bajt zerowy, znak nowej linii, powrót karetki i znak Control-Z otrzymują bezpieczną reprezentację. Dzięki temu pole takie jak O'Brien nie kończy literału, a wieloliniowy opis nie rozrywa instrukcji. Tekst NULL staje się słowem SQL NULL tylko przy włączonym wnioskowaniu; po jego wyłączeniu pozostaje tekstem.

Wygenerowany skrypt nadal jest kodem, który może zmieniać bazę. Nie wykonuj bez kontroli pliku pochodzącego od niezaufanej osoby. W aplikacji przyjmującej dane użytkownika używaj zapytań parametryzowanych zamiast budowania SQL przez konkatenację. Ten konwerter służy do kontrolowanego importu, a nie do zastąpienia parametrów.

Po skopiowaniu możesz uporządkować zapis w formaterze SQL. Sprawdź także docelową składnię: backticki i TINYINT(1) są typowe dla MySQL, podczas gdy PostgreSQL wymaga dostosowania identyfikatorów i części typów. Konwerter nie dodaje kluczy głównych, indeksów, ograniczeń UNIQUE, relacji ani ustawień silnika i kodowania — te elementy wynikają z projektu bazy, nie z próbki CSV.

Kontrola jakości przed importem

Najczęstsze problemy nie wynikają z samego escapingu, lecz z semantyki: przecinek dziesiętny bywa pomylony z separatorem, data może mieć różne formaty, a pusty ciąg nie zawsze oznacza brak wartości. Porównaj liczbę rekordów i kolumn pokazaną nad wynikiem z plikiem źródłowym. Zwróć uwagę na kodowanie UTF-8, nazwy po normalizacji, maksymalną długość tekstu i dokładność kwot. Jeżeli dalszy proces wymaga JSON, dane możesz niezależnie sprawdzić w konwerterze CSV na JSON.

Najczęściej zadawane pytania

Czy przecinek i nowa linia mogą znajdować się wewnątrz pola?

Tak. Pole musi być ujęte w cudzysłowy zgodnie z CSV. Parser czyta rekordy wieloliniowe i nie rozdziela ich prostym wyrażeniem po znaku nowej linii.

Jak są traktowane puste pola oraz słowo NULL?

Puste pole daje NULL. Przy włączonym wnioskowaniu także tekst bez rozróżnienia wielkości liter NULL daje wartość SQL NULL; po wyłączeniu wnioskowania jest cytowanym tekstem.

Czy wynik jest odporny na SQL injection?

Identyfikatory są normalizowane, a tekst escapowany dla MySQL, co blokuje zamknięcie literału przez apostrof lub backslash. Mimo to wynik jest wykonywalnym skryptem i wymaga przeglądu; w kodzie aplikacji właściwą ochroną pozostają parametry.

Dlaczego kod pocztowy albo numer z zerem wiodącym jest tekstem?

Zapis 00123 nie jest uznawany za liczbę, ponieważ konwersja usunęłaby istotne zera. Kolumna otrzymuje typ tekstowy i zachowuje oryginalną wartość.

Czy wygenerowany SQL działa w PostgreSQL lub SQLite?

Nie bez gwarancji. Skrypt celuje w MySQL i używa jego identyfikatorów oraz typów. Dane i apostrofy są przenośne w dużej części, lecz definicję tabeli trzeba dopasować do wybranego silnika.

Zainstaluj Webp.pl Miej narzędzia we własnej kieszeni!