CSV в SQL: как загрузить файл в базу данных

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. Для соседних задач пригодятся эти разборы:

Оцените статью
0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
0
Оставьте комментарий! Напишите, что думаете по поводу статьи.x