CSV в SQL загружают, когда нужно перенести табличные данные из файла в базу данных. Это может быть выгрузка из Excel, отчет, список клиентов, справочник товаров или результаты парсинга. Сам CSV — это просто текстовый файл с разделителями, а SQL-база должна получить из него строки и столбцы
Общий порядок такой:
проверить CSV → создать таблицу → импортировать файл → проверить количество строк и типы данных
Самая частая ошибка — сразу импортировать файл, не посмотрев разделитель, кодировку, заголовки и формат дат
Подготовка CSV перед импортом
Откройте CSV и проверьте, есть ли строка заголовков, какой используется разделитель, нет ли лишних пустых строк, как записаны даты и десятичные числа. В русскоязычных файлах часто встречается разделитель ;, а в примерах из документации чаще показывают ,
Пример CSV:
id,name,price
1,Монитор,18000
2,Клавиатура,2500
3,Мышь,900
Под такой файл можно создать таблицу:
CREATE TABLE products (
id INTEGER,
name VARCHAR(100),
price INTEGER
);
Импорт CSV в SQL Server
В SQL Server можно использовать мастер импорта в SSMS или BULK INSERT
BULK INSERT products
FROM 'C:\Import\products.csv'
WITH (
FIRSTROW = 2,
FIELDTERMINATOR = ',',
ROWTERMINATOR = '\n',
CODEPAGE = '65001'
);
FIRSTROW = 2 означает, что первая строка — заголовки, а данные начинаются со второй. CODEPAGE = '65001' указывает UTF-8, если файл сохранен в этой кодировке
Импорт CSV в PostgreSQL
В PostgreSQL часто используют COPY
COPY products (id, name, price)
FROM '/tmp/products.csv'
WITH (FORMAT csv, HEADER true);
Если команда выполняется на сервере, путь должен быть доступен серверу PostgreSQL. В клиенте psql часто используют \copy, потому что он читает файл с компьютера пользователя
Импорт CSV в MySQL и SQLite
В MySQL встречается LOAD DATA
LOAD DATA INFILE '/tmp/products.csv'
INTO TABLE products
FIELDS TERMINATED BY ','
LINES TERMINATED BY '\n'
IGNORE 1 LINES;
В SQLite удобно использовать команду клиента:
.mode csv
.import products.csv products
Эти команды выполняются не одинаково во всех инструментах. Например, команды с точкой в SQLite работают в консольном клиенте, а не внутри обычного SQL-запроса в каждой программе
Как проверить результат
После импорта проверьте количество строк
SELECT COUNT(*) AS rows_count
FROM products;
Затем посмотрите первые строки
SELECT *
FROM products
ORDER BY id
LIMIT 10;
В SQL Server вместо LIMIT используйте TOP
SELECT TOP 10 *
FROM products
ORDER BY id;
Мини-практика
Сделайте маленький CSV на 3 строки, создайте таблицу products, импортируйте файл и проверьте COUNT(*). Если количество строк совпадает, поменяйте тип price на текст и попробуйте понять, чем такой вариант хуже для сортировки и расчетов
Для первой тренировки не берите огромный файл. Лучше загрузить 3-10 строк и отладить схему, чем сразу пытаться импортировать миллион строк с ошибкой в кодировке
Частые ошибки
Первая ошибка — неверный разделитель. Если файл разделен точкой с запятой, а импорт ждет запятую, строки могут попасть в один столбец
Вторая ошибка — неправильная кодировка. Русские буквы могут превратиться в нечитаемые символы, если база или команда импорта ожидает другую кодировку
Третья ошибка — импортировать числа и даты как текст. Данные загрузятся, но сортировка, фильтрация и расчеты будут работать хуже или неправильно
Что почитать дальше по SQL
Если нужен общий маршрут по теме, откройте рубрику SQL. Для соседних задач пригодятся эти разборы:
- Как базу данных Access сделать SQL: перенос в SQL Server без иллюзий
- Как очистить базу данных SQL: безопасные варианты
- Как перенести базу данных SQL Server на другой диск
- Как подключить базу данных SQL к Visual Studio



