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.
-
1Wprowadź dane
Wpisz treść, wklej tekst lub załaduj plik z dysku. -
2Kliknij przycisk
Narzędzie natychmiast przetworzy Twoje dane w przeglądarce. -
3Pobierz wynik
Skopiuj gotowy tekst lub zapisz plik na urządzeniu.
return "Wynik gotowy w 0.1s";
}
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.
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.