Sprytne Okazje — promocje, kody rabatowe i wyprzedaże

Generator instrukcji SQL INSERT

Generuj kwerendy SQL INSERT z danych CSV lub formularza. Obsługuje MySQL, PostgreSQL, SQLite. Bulk insert, escape wartości. Bezpłatnie.

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";
}

Instrukcji INSERT

25

Tabela

customers

Dialekt SQL

mysql

Linie

33

Rozmiar

4,5 KB
-- Generated by SQL Insert Statements Generator
-- Rows: 25 | Dialect: mysql
-- Column format: name:type (supports int, uuid, email, varchar(n), text, date, datetime, boolean, decimal, json, enum(a,b,c))

START TRANSACTION;

INSERT INTO `customers` (`id`, `full_name`, `email`, `created_at`, `is_active`) VALUES (1, 'Bravo charlie delta echo', '[email protected]', '2026-10-20 14:52:12', 0);
INSERT INTO `customers` (`id`, `full_name`, `email`, `created_at`, `is_active`) VALUES (2, 'Charlie delta echo foxtrot golf', '[email protected]', '2026-10-20 14:51:35', 1);
INSERT INTO `customers` (`id`, `full_name`, `email`, `created_at`, `is_active`) VALUES (3, 'Delta echo foxtrot golf hotel india', '[email protected]', '2026-10-20 14:50:58', 0);
INSERT INTO `customers` (`id`, `full_name`, `email`, `created_at`, `is_active`) VALUES (4, 'Echo foxtrot golf hotel india juliet kilo', '[email protected]', '2026-10-20 14:50:21', 1);
INSERT INTO `customers` (`id`, `full_name`, `email`, `created_at`, `is_active`) VALUES (5, 'Foxtrot golf hotel india juliet kilo lima mango', '[email protected]', '2026-10-20 14:49:44', 0);
INSERT INTO `customers` (`id`, `full_name`, `email`, `created_at`, `is_active`) VALUES (6, 'Golf hotel india', '[email protected]', '2026-10-20 14:49:07', 1);
INSERT INTO `customers` (`id`, `full_name`, `email`, `created_at`, `is_active`) VALUES (7, 'Hotel india juliet kilo', '[email protected]', '2026-10-20 14:48:30', 0);
INSERT INTO `customers` (`id`, `full_name`, `email`, `created_at`, `is_active`) VALUES (8, 'India juliet kilo lima mango', '[email protected]', '2026-10-20 14:47:53', 1);
INSERT INTO `customers` (`id`, `full_name`, `email`, `created_at`, `is_active`) VALUES (9, 'Juliet kilo lima mango nova orbit', '[email protected]', '2026-10-20 14:47:16', 0);
INSERT INTO `customers` (`id`, `full_name`, `email`, `created_at`, `is_active`) VALUES (10, 'Kilo lima mango nova orbit pixel quantum', '[email protected]', '2026-10-20 14:46:39', 1);
INSERT INTO `customers` (`id`, `full_name`, `email`, `created_at`, `is_active`) VALUES (11, 'Lima mango nova orbit pixel quantum rocket sunset', '[email protected]', '2026-10-20 14:46:02', 0);
INSERT INTO `customers` (`id`, `full_name`, `email`, `created_at`, `is_active`) VALUES (12, 'Mango nova orbit', '[email protected]', '2026-10-20 14:45:25', 1);
INSERT INTO `customers` (`id`, `full_name`, `email`, `created_at`, `is_active`) VALUES (13, 'Nova orbit pixel quantum', '[email protected]', '2026-10-20 14:44:48', 0);
INSERT INTO `customers` (`id`, `full_name`, `email`, `created_at`, `is_active`) VALUES (14, 'Orbit pixel quantum rocket sunset', '[email protected]', '2026-10-20 14:44:11', 1);
INSERT INTO `customers` (`id`, `full_name`, `email`, `created_at`, `is_active`) VALUES (15, 'Bravo charlie delta echo foxtrot golf', '[email protected]', '2026-10-20 14:43:34', 0);
INSERT INTO `customers` (`id`, `full_name`, `email`, `created_at`, `is_active`) VALUES (16, 'Delta echo foxtrot golf hotel india juliet', '[email protected]', '2026-10-20 14:42:57', 1);
INSERT INTO `customers` (`id`, `full_name`, `email`, `created_at`, `is_active`) VALUES (17, 'Foxtrot golf hotel india juliet kilo lima mango', '[email protected]', '2026-10-20 14:42:20', 0);
INSERT INTO `customers` (`id`, `full_name`, `email`, `created_at`, `is_active`) VALUES (18, 'Bravo charlie delta', '[email protected]', '2026-10-20 14:41:43', 1);
INSERT INTO `customers` (`id`, `full_name`, `email`, `created_at`, `is_active`) VALUES (19, 'Delta echo foxtrot golf', '[email protected]', '2026-10-20 14:41:06', 0);
INSERT INTO `customers` (`id`, `full_name`, `email`, `created_at`, `is_active`) VALUES (20, 'Foxtrot golf hotel india juliet', '[email protected]', '2026-10-20 14:40:29', 1);
INSERT INTO `customers` (`id`, `full_name`, `email`, `created_at`, `is_active`) VALUES (21, 'Hotel india juliet kilo lima mango', '[email protected]', '2026-10-20 14:39:52', 0);
INSERT INTO `customers` (`id`, `full_name`, `email`, `created_at`, `is_active`) VALUES (22, 'Juliet kilo lima mango nova orbit pixel', '[email protected]', '2026-10-20 14:39:15', 1);
INSERT INTO `customers` (`id`, `full_name`, `email`, `created_at`, `is_active`) VALUES (23, 'Lima mango nova orbit pixel quantum rocket sunset', '[email protected]', '2026-10-20 14:38:38', 0);
INSERT INTO `customers` (`id`, `full_name`, `email`, `created_at`, `is_active`) VALUES (24, 'Hotel india juliet', '[email protected]', '2026-10-20 14:38:01', 1);
INSERT INTO `customers` (`id`, `full_name`, `email`, `created_at`, `is_active`) VALUES (25, 'Juliet kilo lima mango', '[email protected]', '2026-10-20 14:37:24', 0);

COMMIT;

Wiersze opisują dokładnie to, co silnik wpisuje do wyniku przy aktualnych ustawieniach formularza — łącznie z pierwszą instrukcją wygenerowaną dla Twojej tabeli i kolumn.

Składnia INSERT generowana przez narzędzie (jedno INSERT na wiersz)
ElementW generowanym kodzieZnaczenie
Instrukcja INSERT INTO tabela (kolumny) VALUES (…); jedno INSERT na wiersz danych — silnik NIE skleja wielu wierszy w jedno wielowierszowe VALUES (buildSql pętli po wierszach)
Cytowanie identyfikatorów `tabela`, `kolumna` MySQL: grawisy; PostgreSQL i SQLite: cudzysłowy (dialectQuoter); podwojenie znaku cytuje sam znak wewnątrz nazwy
Escape apostrofów znak ' → '' standard SQL: apostrof w tekście podwaja się (escapeStr) — dotyczy każdej wartości tekstowej, także JSON-a
Transakcja (opcja „Header”) START TRANSACTION; … COMMIT; komentarz z liczbą wierszy i dialektem, BEGIN/START TRANSACTION na początku i COMMIT na końcu
Przykład (z silnika) INSERT INTO `customers` (`id`, `full_name`, `email`, `created_at`, `is_active`) VALUES (1, 'Bravo charlie delta echo', '[email protected]', '2026-10-20 14:52:12', 0); pierwsza instrukcja wygenerowana dla bieżącego formularza (wiersz 1, bez nagłówka)

Kolumny podajesz w formacie nazwa:typ (albo nazwa|typ), po jednej w wierszu — puste linie i wpisy bez dwukropka są pomijane, typ jest normalizowany do małych liter.

Wartości przykładowe dokłane przez silnik dla każdego typu (wiersz 3)
Typ kolumnyPrzykładowa wartośćSkąd się bierze
int 3 kolejny numer wiersza
uuid '19fe5413-f59b-40a4-ba5d-443cf1b3c2fc' losowy UUID v4 (random_bytes)
email '[email protected]' [email protected] / demo.test / toolsti.dev / mail.test
full_name 'Taylor Hayes' imiona i nazwiska z pul silnika
varchar(24) 'Delta echo foxtrot golf ' słowa alfabetu fonetycznego, obcięte do długości
text 'Delta echo foxtrot golf hotel india' to samo źródło słów, bez limitu długości
date '2026-10-17' data wstecz o (numer wiersza % 365) dni
datetime '2026-10-20 14:50:58' czas wstecz o (numer wiersza × 37 s % 20 000 s)
boolean 0 naprzemiennie 0/1 (parzystość wiersza)
decimal 3.25 reszta z dzielenia przez 97 plus 0,25
json '{"id":3,"tag":"demo","active":false}' poprawny JSON {id, tag, active} w apostrofach
enum(basic,pro,team) 'team' losowa opcja z listy w nawiasie

Typy uuid i enum(…) są losowe (random_bytes / array_rand), więc każdy przebieg daje inne wartości — to celowe, dane testowe mają się różnić między wierszami.

Warto wiedzieć — dane testowe w SQL

Wiele INSERT-ów czy jedno VALUES?

To narzędzie generuje osobną instrukcję dla każdego wiersza — łatwiej wyłuskać problematyczny rekord z logu błędu. Przy dużych wolumenach szybsze bywa wielowierszowe VALUES (…),(…) albo COPY/LOAD DATA; transakcja z opcji „Header” i tak spina całość w jedną atomową jednostkę.

Escape apostrofów

Podwajanie apostrofu (' → '') to standard SQL wspólny dla MySQL, PostgreSQL i SQLite. To wystarcza dla danych testowych, ale prawdziwe aplikacje powinny używać parametryzowanych zapytań / prepared statements — składanie SQL z danych wejściowych to prosta droga do SQL injection.

Różnice dialektów

MySQL cytuje identyfikatory grawisami (`), PostgreSQL i SQLite cudzysłowami ("); transakcję otwiera START TRANSACTION albo BEGIN. Ten sam plik SQL nie zawsze przejdzie w drugiej bazie — wybierz dialekt zgodny z celem przed wygenerowaniem.

Fałszywe, nie prawdziwe dane

Silnik produkuje dane fikcyjne ([email protected], słowa fonetyczne) — nie wrzucaj do seedów ani backupów testowych prawdziwych e-maili czy numerów PESEL. Do wymagających realności zbiorów użyj bibliotek typu Faker, a przed udostępnieniem zrzutu i tak zanonimizuj kolumny wrażliwe.

Oceń to narzędzie:

Powiązane narzędzia

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

Generator instrukcji SQL INSERT – bulk insert z CSV i formularza

Ręczne pisanie kwerend INSERT dla wielu rekordów jest żmudne i podatne na błędy. Generator automatycznie tworzy poprawne instrukcje INSERT INTO z danych wklejonych z arkusza kalkulacyjnego, CSV lub formularza, z obsługą różnych dialektów SQL.

generator SQL INSERT kwerenda INSERT SQL bulk insert SQL SQL INSERT generator online

Składnia SQL INSERT

INSERT INTO tabela (kol1, kol2) VALUES (val1, val2). Bulk insert: INSERT INTO tabela (kol1, kol2) VALUES (v1,v2),(v3,v4),(v5,v6). MySQL: do 65535 wierszy naraz. PostgreSQL: bez limitu (praktycznie). SQLite: INSERT OR REPLACE INTO (upsert). INSERT INTO ... SELECT ...: kopiuj z innej tabeli. INSERT IGNORE (MySQL): pomiń błędy duplikatów.

Escaping wartości w SQL

Stringi: otocz apostrofami. Apostrofy w wartości: podwój: O'Connor → 'O''Connor'. Parametryzowane zapytania: bezpieczniejsze (?, $1, :name). NULL: bez apostrofów. Liczby: bez apostrofów. Daty: zależy od bazy. MySQL: '2024-01-15'. PostgreSQL: '2024-01-15'::date. Uwaga: SQL injection! Nigdy nie wklejaj nieoczyszczonych danych użytkownika do SQL.

Bulk insert – wydajność

Bulk insert znacznie szybszy niż pojedyncze INSERT w pętli. MySQL: INSERT INTO t VALUES (1,2),(3,4),(5,6) = jedna transakcja. Transakcje: BEGIN; INSERT; INSERT; COMMIT; – szybsze niż autocommit. Wyłącz indeksy przed bulk: ALTER TABLE t DISABLE KEYS; INSERT...; ENABLE KEYS; (MySQL). PostgreSQL: COPY jest najszybszy dla dużych danych. SQLite: journal_mode=WAL + jedna transakcja.

Dialekty SQL – różnice INSERT

MySQL: INSERT IGNORE (pomiń błędy), INSERT ... ON DUPLICATE KEY UPDATE (upsert). PostgreSQL: INSERT ... ON CONFLICT DO NOTHING/UPDATE (upsert). SQLite: INSERT OR REPLACE / INSERT OR IGNORE. SQL Server: MERGE INTO (upsert). Oracle: MERGE INTO. Standard SQL: brak wbudowanego upsert (był od SQL:2003 jako MERGE). Sprawdź dokumentację swojej bazy.

Najczęstsze pytania

Jak wygenerować INSERT z arkusza Excel/Google Sheets?

Metoda 1: Formuła concatenate: ="INSERT INTO users (name, email) VALUES ('",A2,"','",B2,"');" Metoda 2: Kopiuj → CSV → wklej do generatora online. Metoda 3: Python pandas: df.to_sql("users", engine) lub ręcznie generuj INSERT. Metoda 4: DBeaver/DataGrip: import CSV bezpośrednio do tabeli. Generator online: wklej dane tabelaryczne, wybierz kolumny, generuj.

Jak bezpiecznie wstawiać dane do SQL (SQL injection)?

Nigdy: $sql = "INSERT INTO users (name) VALUES ('" . $userInput . "')". Zawsze: prepared statements (PDO PHP: $stmt->bindParam(), Java PreparedStatement, Python cursor.execute("%s")). ORM: Eloquent, SQLAlchemy, Django ORM automatycznie parametryzują. Walidacja: sprawdź typ danych przed wstawieniem. Uprawnienia: użytkownik bazy tylko INSERT, nie DROP/ALTER.

Jak sprawdzić ile rekordów INSERT wstawiło?

MySQL: SELECT ROW_COUNT() po INSERT. PHP PDO: $pdo->lastInsertId() (ostatnie ID). $stmt->rowCount() (liczba wstawionych). PostgreSQL: INSERT INTO ... RETURNING id (zwraca wstawione rekordy). JDBC Java: getUpdateCount(). Python: cursor.rowcount. Transakcja: COMMIT zwraca liczbę zmienionych wierszy w niektórych klientach.

Jaka jest różnica między INSERT a UPSERT?

INSERT: wstaw nowy rekord. Błąd jeśli klucz istnieje (duplicate key). UPSERT (insert or update): jeśli istnieje → aktualizuj, jeśli nie → wstaw. MySQL: INSERT INTO t VALUES (...) ON DUPLICATE KEY UPDATE col=VALUES(col). PostgreSQL: INSERT INTO t VALUES (...) ON CONFLICT (id) DO UPDATE SET col=EXCLUDED.col. Zastosowanie: synchronizacja danych, idempotentne operacje.

Jak importować duże pliki CSV do bazy SQL?

MySQL: LOAD DATA INFILE 'plik.csv' INTO TABLE t FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '\n'. PostgreSQL: COPY t FROM 'plik.csv' CSV HEADER. SQLite: .import plik.csv tabela (w sqlite3 CLI). Szybkość: LOAD DATA/COPY znacznie szybsze niż INSERT row by row. PHP: PDO + fgetcsv() + bulk INSERT (1000 rows/batch).

Powiązane narzedzia: kwerenda SQL SELECT generator, formatter SQL i tester zapytań SQL.

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