Що це
Щоб завантажити таблицю в базу даних, зазвичай доводиться вручну писати визначення таблиці й довгий список операторів INSERT, екрануючи кожен апостроф. Цей інструмент зробить це за вас: вставте CSV і отримайте готовий до запуску SQL-скрипт з оператором CREATE TABLE і багаторядковими INSERT, розбитими на пакети.
Він дотримується RFC 4180: обробляє поля в лапках, коми й переведення рядка всередині клітинок, подвоєні лапки. Рядки екрануються правильно для вибраної СУБД, зокрема зворотні скісні риски в MySQL і Unicode-рядки N'…' у SQL Server.
Як користуватися
- Вставте CSV, завантажте файл
.csvчи.tsvабо натисніть Приклад. - Укажіть Назву таблиці. Для схеми використовуйте крапку, наприклад
public.ordersчиdbo.orders. - Виберіть Діалект: MySQL / MariaDB, PostgreSQL, SQLite або SQL Server.
- Виберіть кількість Рядків в одному INSERT і вимкніть CREATE TABLE, якщо таблиця вже існує.
- Скопіюйте SQL або завантажте його як файл
.sqlі виконайте в клієнті бази даних.
Роздільник визначається автоматично; можна також явно задати кому, крапку з комою, табуляцію чи вертикальну риску. Якщо в першому рядку дані, а не назви стовпців, вимкніть Перший рядок — заголовок, і стовпці матимуть назви column_1, column_2 і так далі.
Приклад
Такий CSV:
id,name,price,in_stock
1,Ada's Tea,4.50,true
2,Coffee,,false
перетворюється на такий скрипт для 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);
Апостроф у Ada's подвоєно, порожня ціна стала NULL, а числа й логічні значення записано без лапок.
Типи та діалекти
- MySQL / MariaDB: ідентифікатори у зворотних лапках,
INT,DECIMAL,BOOLEAN,DATE,DATETIME,VARCHAR(255)абоTEXT; зворотні скісні риски в рядках екрануються. - PostgreSQL: ідентифікатори в подвійних лапках,
INTEGER,NUMERIC,BOOLEAN,DATE,TIMESTAMPіTEXT. - SQLite: ідентифікатори в подвійних лапках і класи зберігання SQLite
INTEGER,REALіTEXT; логічні значення записуються як 1 і 0. - SQL Server: ідентифікатори у квадратних дужках,
INT,DECIMAL,BIT,DATE,DATETIME2іNVARCHAR, рядкові літералиN'…'і не більше 1000 рядків в одному INSERT. - Порожні клітинки стають
NULL. Вимкніть Порожні клітинки як NULL, щоб у текстових стовпцях лишалися порожні рядки. - Перевірте визначені типи, перш ніж запускати скрипт на робочих даних: стовпцю, де у зразку лише малі числа, згодом може знадобитися ширший тип.
Часті запитання
› Які бази даних підтримуються?
MySQL (і MariaDB), PostgreSQL, SQLite та Microsoft SQL Server. Від діалекту залежить, як беруться в лапки назви таблиць і стовпців, як екрануються рядки, які типи стовпців використовуються і як записуються логічні значення.
› Як вибираються типи стовпців?
Кожен стовпець переглядається: цілі числа стають INT або BIGINT, дробові — DECIMAL з достатньою точністю, true/false — BOOLEAN (BIT у SQL Server), дати ISO — DATE або DATETIME, усе інше — текстом. Числа з провідними нулями, як-от поштові індекси, лишаються текстом. Вимкніть «Визначати типи», щоб усі стовпці були текстовими.
› Чому в SQL Server не більше 1000 рядків в одному INSERT?
SQL Server відхиляє список VALUES довший за 1000 рядків, тому для цього діалекту більший розмір пакета обмежується 1000. Інші СУБД приймають більші пакети, але 100–1000 рядків на оператор — добрий баланс між швидкістю і розміром.
› Мій CSV кудись надсилається?
Ні. Розбір і генерація SQL виконуються повністю у браузері, дані не залишають ваш пристрій.