Создать таблицу из CSV в MySQL
Файлы CSV (значения, разделенные запятыми) представляют собой файл, содержащий фреймы данных, разделенные запятой (как правило). Эти файлы имеют текстовый формат и не привязаны к конкретной программе или стандарту, благодаря чему они широко используются. Фреймы данных довольно часто хранятся в виде файлов CSV, которые впоследствии можно легко использовать для извлечения данных.
В этой статье мы узнаем, как создать таблицу из файла CSV в MySQL.
Дистрибутив MySQL должен быть установлен в операционной системе. В целях демонстрации мы будем использовать следующий файл CSV для создания таблицы:
Этот файл CSV содержит 4 столбца:
- СВИДАНИЕ
- ОБЩЕЕ ВРЕМЯ
- ЧАСЫ
- МИНУТЫ
Создание скелетной таблицы:
ШАГ 1: Мы создадим таблицу в MySQL, содержащую информацию о каждом столбце CSV-файла. Затем мы скопировали данные из CSV-файла в каждый из столбцов.
Запрос:
CREATE TABLE table_name ( csv_column_1 DATATYPE, csv_column_2 DATATYPE, csv_column_3 DATATYPE ....);
Где последние 2 записи могут быть расширены до количества столбцов в файле CSV. т. е. csv_column_2/3/4… переходит к количеству столбцов в файле CSV. В нашем случае есть 4 столбца, каждый из которых имеет следующие типы данных:
DATE => Date TOTAL_TIME => INT HOURS => INT MINUTES => INT
Таким образом, чтобы создать таблицу для вышеуказанного файла, запрос будет таким:
Запрос:
CREATE TABLE TRANSFER ( DATE DATE, TOTAL_TIME INT, HOURS INT, MINUTES INT);
Это создаст таблицу. Для просмотра таблицы введите запрос:
Запрос:
SELECT * FROM TRANSFER;
Который отображает пустую таблицу. Поскольку мы не добавили в него никаких данных.
ШАГ 2:
Теперь, чтобы добавить в него данные из файла CSV, выполните следующее:
Запрос:
LOAD DATA INFILE "file.csv" INTO TABLE TRANSFER FIELDS TERMINATED BY "," ENCLOSED BY """ LINES TERMINATED BY " " IGNORE 1 ROWS;
Оператор LOAD DATA INFILE позволяет считывать данные из текстового файла и импортировать данные файла в базу данных. После выполнения вышеуказанного оператора мы снова отображаем таблицу, используя:
Запрос:
SELECT * FROM TRANSFER;
К чему результирующая таблица:
Таким образом, вы можете импортировать данные из CSV-файла в базу данных MySQL.
Объяснение:
Первая строка указывает компилятору загрузить данные из файла с именем « file.csv » в таблицу с именем TRANSFER. Во второй строке указано, что поля (разные ячейки) заканчиваются запятой, данные ячейки могут быть заключены в двойные кавычки (чтобы разрешить использование запятых внутри ячейки), а строки заканчиваются символом новой строки. Третья строка указывает компилятору игнорировать первую строку, так как она содержит имена столбцов таблицы, о которых мы уже упоминали при создании таблицы.
Поэтому план загрузки данных в таблицу будет таким:
Запрос:
LOAD DATA INFILE "_path_to_csv_" INTO TABLE TABLE_NAME FIELDS TERMINATED BY "," ENCLOSED BY """ LINES TERMINATED BY " " IGNORE 1 ROWS; where, _path_to_csv_ => path to the csv file TABLE_NAME => Name of the table (skel table) in which the data is to be copied
Если файл Excel имеет другие разделители, это также можно указать во второй строке.