MySQL – это популярная RDMS, используемая для управления данными веб-сайта или приложения с помощью языка запросов, известного как SQL. Данные веб-сайтов хранятся в виде таблиц, и для вставки больших объемов данных потребуется довольно много времени, для этого SQL предлагает различные способы для массовой вставки данных. В этом посте мы изучим вставку большого количества данных с помощью одного запроса в таблицу MySQL.
Много раз в базе данных нужно делать много записей с использованием одного и того же запроса, например, чтобы создать карточку результатов студентов, вместо того, чтобы вставлять запись результатов каждого студента отдельно, что займет много времени, рекомендуется обновить запись всех студентов, использующих единый запрос.
Есть два разных способа массовой вставки данных в MySQL.
Другой метод – вставка данных из файла CSV, чтобы понять это, мы создадим таблицу имен учителей с их предметами, которые они преподают в классе, с помощью команды:
CREATE TABLE teacher_names (teacher_id INT, teacher_name VARCHAR(50), subject VARCHAR(50));
Откройте текстовый файл и введите следующие данные:
teacher_id,teacher_name,subject 1,”Andreyex”,”Programming” 2,”Olga”,”Science” 3,”Maxim”,”Arts”
Сохраните текстовый файл под именем «teacher_names.csv». Вы можете столкнуться с ошибкой параметра –secure-file-priv при загрузке данных, как показано на изображении ниже:
LOAD DATA INFILE '/home/teacher_names.csv' INTO TABLE teacher_names FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '\n' IGNORE 1 ROWS;
Чтобы решить эту проблему, вам необходимо переместить файл teacher_names.csv в папку переменных secure_file_priv. Выполните команду, чтобы найти путь к переменной secure_file_priv:
SHOW VARIABLES LIKE "secure_file_priv";
Теперь переместите файл csv в папку /var/lib/mysql-myfiles.
Выполните следующую команду, чтобы импортировать все данные из teacher_names.csv файла в teacher_names таблицу MySQL:
LOAD DATA INFILE '/var/lib/mysql-files/teacher_names.csv' INTO TABLE teacher_names FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '\n' IGNORE 1 ROWS;
Чтобы открыть и проверить файл:
SELECT * FROM teacher_names;
Первый метод заключается в использовании команды вставки для вставки массовых данных. Давайте обсудим общий синтаксис использования команды для вставки массовых данных в MySQL.
Общий синтаксис вставки массовых значений в таблицу в MySQL:
INSERT INTO table_name VALUES (data), (data), (data);
Объяснение приведенного выше общего синтаксиса простое:
Чтобы понять, как это работает, давайте рассмотрим пример, мы создадим таблицу «class_result», используя команду:
CREATE TABLE class_result (st_id INT, st_name VARCHAR(50), st_grade CHAR(25));
Мы вставим результат пяти студентов с помощью единственной команды:
INSERT INTO class_result VALUES (1,’Andreyex’,’A’),(2,’Anna’,’D’),(3,’Olga’,’B’),(4,’Maxim’,’B’),(5,’Saira’,’A’);
Чтобы отобразить содержимое таблицы:
SELECT*FROM class_result;
Из вышеприведенного вывода мы видим, что мы вставили большой объем данных, используя один запрос, вместо того, чтобы вставлять данные разными запросами.
Это экономит много времени на вставку большого количества данных с помощью одного запроса в MySQL. В этом посте мы узнаем, как вставить большую часть значений в таблицу MySQL с помощью одной команды. Мы создали таблицу, вставили несколько строк записей в таблицы с помощью одного запроса MySQL и попытались объяснить, как массив данных может быть вставлен в таблицу MySQL. Мы также объясняем вставку данных из файла формата CSV в таблицу MySQL с помощью запроса LOAD TABLE.