Quels sont les conseils pour apprendre les insertions et mises à jour par lots MySQL ?
MySQL est un système de gestion de bases de données relationnelles populaire qui est largement utilisé dans divers types d'applications. Les insertions et mises à jour par lots sont l'une des techniques clés pour améliorer les performances des bases de données lors du traitement de grandes quantités de données. Cet article présentera plusieurs techniques d'insertion et de mise à jour par lots MySQL couramment utilisées et fournira des exemples de code correspondants.
1. Insérer des données par lots
INSERT INTO table_name (column1, column2, ...) VALUES (value1, value2, ...) , (value1, value2 , ...), ...
Par exemple, insérez plusieurs lignes de données sur les étudiants dans la table des étudiants :
INSERT INTO student (nom, âge, sexe) VALUES ('Alice', 18, 'femelle'), (« Bob », 20 ans, « homme »), (« Charlie », 19 ans, « homme ») ;
Cette méthode convient aux situations où les données sont connues et où la quantité de données est faible.
INSERT INTO nom_table (colonne1, colonne2, ...) SELECT colonne1, colonne2, ... FROM another_table WHERE condition ;
Par exemple, sélectionnez plusieurs éléments de données qui répondent aux conditions du tableau A et insérez-les dans le tableau B :
INSERT INTO table_B (column1, column2, ...) SELECT column1, column2, ... FROM table_A WHERE condition ;
Cette méthode convient aux situations où vous devez sélectionner des données d'une table en fonction de conditions et les insérer dans une autre table.
LOAD DATA INFILE 'file_path' INTO TABLE table_name
FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '
';
Par exemple, à partir d'une importation par lots de données d'un fichier csv dans une table :
CHARGER LE FICHIER DE DONNÉES '/data/students.csv' DANS LA TABLE étudiant
CHAMPS TERMINÉS PAR ',' ENCLOS PAR '"' LIGNES TERMINÉES PAR '
' ;
Cette méthode s'applique aux situations dans lesquelles les données doivent être importées par lots à partir de fichiers de données externes.
2. Mettre à jour les données par lots
REPLACE INTO nom_table (colonne1, colonne2, ...) VALUES (valeur1, valeur2, ...), (valeur1, valeur2 , .. .), ...
Cette instruction supprimera d'abord les données qui remplissent les conditions, puis insérera de nouvelles données. Si les données à mettre à jour existent déjà, elles seront supprimées et réinsérées.
UPDATE table_name
SET column1 = CASE
WHEN condition1 THEN value1 WHEN condition2 THEN value2 ... END, column2 = CASE WHEN condition1 THEN value1 WHEN condition2 THEN value2 ... END, ...
WHERE condition ;
Par exemple, mettez à jour les informations sur les étudiants par lots en fonction des conditions :
UPDATE student
SET age = CASE
WHEN name = 'Alice' THEN 19 WHEN name = 'Bob' THEN 21 ... END, gender = CASE WHEN name = 'Alice' THEN 'female' WHEN name = 'Bob' THEN 'male' ... END
WHERE name IN ('Alice', 'Bob', ...);
Cette méthode convient à la mise à jour des données par lots en fonction des conditions.
Ci-dessus sont plusieurs techniques d'insertion et de mise à jour par lots MySQL couramment utilisées. Vous pouvez choisir la méthode appropriée à utiliser en fonction de la situation réelle. Ce qui suit est un exemple complet qui illustre le scénario d'utilisation des instructions INSERT INTO VALUES et UPDATE pour insérer et mettre à jour les informations sur les étudiants par lots :
--Insérer les informations sur les étudiants par lots
INSERT INTO étudiant (nom, âge, sexe) VALUES
('Alice', 18 ans, 'femelle'),
('Bob', 20 ans, 'mâle'),
('Charlie', 19 ans, 'mâle');
-- Mettre à jour les informations sur les élèves par lots
MISE À JOUR de l'élève
SET age = CASE
WHEN name = 'Alice' THEN 19 WHEN name = 'Bob' THEN 21 ... END, gender = CASE WHEN name = 'Alice' THEN 'female' WHEN name = 'Bob' THEN 'male' ... END
WHERE name IN ('Alice', 'Bob', ...);
En apprenant et en appliquant ces techniques d'insertion et de mise à jour par lots, vous pouvez améliorer l'efficacité opérationnelle et les performances de votre base de données MySQL , en particulier lors du traitement de grandes quantités de scènes de données.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!