Перейти к содержанию

Введение

При работе с базами данных и различными информационными системами часто возникает необходимость обмена данными между программами.

Разные программы могут использовать различные форматы хранения информации, поэтому нужен универсальный и простой формат, который смогут понимать разные системы.

Одним из самых распространённых форматов обмена табличными данными является CSV (Comma-Separated Values).

Формат CSV широко используется: - при экспорте данных из баз данных; - при импорте данных в таблицы; - при переносе данных между системами; - для резервного копирования информации; - для анализа данных.

CSV поддерживается большинством программ, включая: - системы управления базами данных; - электронные таблицы (Excel, LibreOffice Calc, Google Sheets); - языки программирования; - аналитические и BI-системы.

Благодаря своей простоте CSV стал одним из стандартных форматов обмена табличными данными.


Что такое CSV

CSV (Comma-Separated Values) — это текстовый формат хранения табличных данных, в котором значения разделяются специальным символом-разделителем.

CSV-файл представляет собой обычный текстовый файл, где: - каждая строка — это запись; - каждое значение — это поле таблицы; - разделитель отделяет одно значение от другого.

Чаще всего используется разделитель:

,

Но также могут применяться: - точка с запятой ; - табуляция - другой символ-разделитель.


Структура CSV-файла

Рассмотрим простой пример CSV-файла.

id,name,age
1,Ivan,20
2,Anna,21
3,Petr,19

Разберём структуру: - первая строка — названия столбцов; - каждая следующая строка — отдельная запись; - значения разделяются запятыми.

Табличное представление данных:

id name age
1 Ivan 20
2 Anna 21
3 Petr 19

Таким образом CSV-файл фактически представляет таблицу в текстовом виде.


Использование разных разделителей

В разных странах и программах могут использоваться разные разделители.

Например:

id;name;age
1;Ivan;20
2;Anna;21
3;Petr;19

Такой формат часто используется в странах, где запятая используется как десятичный разделитель (например: 3,14).

Другие возможные разделители: - ; — точка с запятой - \t — табуляция - | — вертикальная черта

Программы импорта обычно позволяют указать разделитель вручную.


Экранирование значений

Иногда текстовое значение может содержать разделитель.

Например:

New York, USA

Если записать это без кавычек, программа может воспринять запятую как разделитель.

Поэтому такие значения помещаются в кавычки.

Пример:

id,name,city
1,"Ivan Ivanov","New York, USA"

Правила:

  • текст с разделителями заключается в " "

  • кавычки внутри текста экранируются двойными кавычками

Пример:

"He said ""Hello"""

CSV и базы данных

CSV активно используется при работе с базами данных для:

  • импорта данных;

  • экспорта таблиц;

  • резервного копирования;

  • обмена информацией между системами.

Фактически CSV позволяет перенести таблицу базы данных в текстовый файл и наоборот.

Пример данных из таблицы товаров:

id,name,price
1,Keyboard,1500
2,Mouse,800
3,Monitor,12000

Этот файл можно:

  • открыть в Excel;

  • загрузить в другую базу данных;

  • использовать для анализа данных.


Экспорт данных в CSV

Экспорт — это процесс выгрузки данных из базы данных в файл.

Например, можно экспортировать таблицу из базы данных в CSV-файл для дальнейшей обработки.

Пример экспорта (MySQL / MariaDB)

SELECT id, name, price
INTO OUTFILE '/tmp/products.csv'
FIELDS TERMINATED BY ','
LINES TERMINATED BY '\n'
FROM products;

Что происходит:

  • выполняется SQL-запрос;

  • результаты запроса сохраняются в CSV-файл;

  • поля разделяются запятой.


Импорт CSV в базу данных

Импорт — это процесс загрузки данных из файла в базу данных.

CSV-файл может использоваться для заполнения таблицы.

Пример импорта (MySQL / MariaDB)

LOAD DATA INFILE '/tmp/products.csv'
INTO TABLE products
FIELDS TERMINATED BY ','
LINES TERMINATED BY '\n'
IGNORE 1 ROWS;

Объяснение:

  • LOAD DATA INFILE — загрузка данных из файла

  • FIELDS TERMINATED BY — разделитель

  • LINES TERMINATED BY — конец строки

  • IGNORE 1 ROWS — пропустить строку заголовков

После выполнения команды данные из CSV будут добавлены в таблицу.


Импорт CSV в электронные таблицы

CSV-файлы можно легко открыть в программах электронных таблиц:

  • Microsoft Excel

  • LibreOffice Calc

  • Google Sheets

При открытии файла программа:

  1. считывает строки файла;

  2. определяет разделитель;

  3. автоматически формирует таблицу.

Если разделитель не определяется автоматически, пользователь может указать его вручную.


Использование CSV в программировании

CSV-файлы часто используются в программировании для:

  • хранения данных;

  • обмена данными между системами;

  • загрузки данных в программы.

Пример чтения CSV в Python:

import csv

with open("students.csv") as file:
    reader = csv.reader(file)

    for row in reader:
        print(row)

Пример записи CSV:

import csv

with open("students.csv", "w", newline="") as file:
    writer = csv.writer(file)
    writer.writerow(["id", "name", "age"])
    writer.writerow([1, "Ivan", 20])

Преимущества формата CSV

Формат CSV имеет несколько важных преимуществ.

Простота

CSV — это обычный текстовый файл.
Его можно открыть любым текстовым редактором.

Универсальность

CSV поддерживается большинством программ и систем.

Малый размер

CSV не содержит служебной информации, поэтому файлы имеют небольшой размер.

Удобство обмена

CSV легко передавать между программами и системами.


Недостатки формата CSV

Несмотря на удобство, CSV имеет ряд ограничений.

Отсутствие типов данных

CSV не хранит информацию о типах данных:

  • число

  • текст

  • дата

  • логическое значение

Типы определяются программой при импорте.

Отсутствие структуры базы данных

CSV не хранит информацию о:

  • первичных ключах;

  • связях между таблицами;

  • ограничениях;

  • индексах.

Возможные ошибки разделителей

Если данные содержат разделитель и не экранированы, файл может быть прочитан неправильно.


Когда используется CSV

CSV применяется в следующих случаях:

  • экспорт данных из баз данных;

  • перенос данных между системами;

  • загрузка данных в аналитические системы;

  • резервное копирование таблиц;

  • импорт данных в электронные таблицы.

Этот формат особенно удобен, когда требуется простая передача табличной информации.


Итоги

  • CSV — это текстовый формат хранения табличных данных.

  • Каждая строка файла представляет запись.

  • Значения разделяются специальным символом (обычно запятой).

  • CSV широко используется для импорта и экспорта данных.

  • Формат поддерживается большинством программ и СУБД.

  • Основное ограничение — отсутствие структуры и типов данных.