MySQL Requête INSERT INTO : Comment ajouter une ligne dans un tableau (exemple)
Qu’est-ce que INSÉRER DANS ?
INSÉRER DANS est utilisé pour stocker les données dans les tables. La commande INSERT crée une nouvelle ligne dans la table pour stocker les données. Les données sont généralement fournies par des programmes d'application qui s'exécutent au-dessus de la base de données.
Syntaxe de base
Regardons la syntaxe de base de INSERT INTO MySQL commander:
INSERT INTO `table_name`(column_1,column_2,...) VALUES (value_1,value_2,...);
ICI
- INSERT INTO `table_name` est la commande qui indique MySQL serveur pour ajouter une nouvelle ligne dans une table nommée `table_name.`
- (column_1,column_2,…) précise les colonnes à mettre à jour dans le nouveau MySQL rangée
- VALUES (value_1,value_2,…) spécifie les valeurs à ajouter dans la nouvelle ligne
Lors de la fourniture des valeurs de données à insérer dans le nouveau tableau, les éléments suivants doivent être pris en compte :
- Types de données chaîne – toutes les valeurs de chaîne doivent être placées entre guillemets simples.
- Types de données numériques : toutes les valeurs numériques doivent être fournies directement sans les mettre entre guillemets simples ou doubles.
- Types de données de date – entourez les valeurs de date entre guillemets simples au format « AAAA-MM-JJ ».
Mise en situation :
Supposons que nous ayons la liste suivante de nouveaux membres de bibliothèque qui doivent être ajoutés à la base de données.
Noms complets | Date de naissance | le sexe | Adresse physique | Adresse postale | Numéro de contact | Adresse Email |
---|---|---|---|---|---|---|
Léonard Hofstadter | Masculin | Crête des bois | 0845738767 | |||
Sheldon Cooper | Masculin | Crête des bois | 0976736763 | |||
Rajesh Koothrappali | Masculin | Fairview | 0938867763 | |||
Leslie Winkel | 14/02/1984 | Masculin | 0987636553 | |||
Howard Wolowitz | 24/08/1981 | Masculin | South Park | P.O. Box 4563 | 0987786553 | lwolowitz@email.me |
INSÉRONS les données une par une. Nous commencerons par Leonard Hofstadter. Nous traiterons le numéro de contact comme un type de données numérique et ne mettrons pas le numéro entre guillemets simples.
INSERT INTO `members` (`full_names`,`gender`,`physical_address`,`contact_number`) VALUES ('Leonard Hofstadter','Male','Woodcrest',0845738767);
L'exécution du script ci-dessus supprime le 0 du numéro de contact de Leonard. En effet, la valeur sera traitée comme une valeur numérique et le zéro (0) au début est supprimé car il n'est pas significatif.
Pour éviter de tels problèmes, la valeur doit être placée entre guillemets simples comme indiqué ci-dessous :
INSERT INTO `members` (`full_names`,`gender`,`physical_address`,`contact_number`) VALUES ('Sheldon Cooper','Male','Woodcrest', '0976736763');
Dans le cas ci-dessus, zéro(0) ne sera pas supprimé
La modification de l'ordre des colonnes n'a aucun effet sur la requête INSERT dans MySQL tant que les valeurs correctes ont été mappées aux colonnes correctes.
La requête ci-dessous démontre le point ci-dessus.
INSERT INTO `members` (`contact_number`,`gender`,`full_names`,`physical_address`) VALUES ('0938867763','Male','Rajesh Koothrappali','Woodcrest');
Les requêtes ci-dessus ont ignoré la colonne date de naissance. Par défaut, MySQL insérera des valeurs NULL dans les colonnes omises dans la requête INSERT.
Insérons maintenant le dossier de Leslie, sur lequel la date de naissance est fournie. La valeur de la date doit être placée entre guillemets simples au format « AAAA-MM-JJ ».
INSERT INTO `members` (`full_names`,`date_of_birth`,`gender`,`physical_address`,`contact_number`) VALUES ('Leslie Winkle','1984-02-14','Male','Woodcrest', '0987636553');
Toutes les requêtes ci-dessus spécifiaient les colonnes et les mappaient aux valeurs du MySQL insérer une déclaration. Si nous fournissons des valeurs pour TOUTES les colonnes du tableau, nous pouvons alors omettre les colonnes du MySQL insérer une requête.
Exemple:-
INSERT INTO `members` VALUES (9,'Howard Wolowitz','Male','1981-08-24', 'SouthPark','P.O. Box 4563', '0987786553', 'lwolowitz[at]email.me');
Utilisons maintenant le Instruction SELECT pour afficher toutes les lignes de la table du membre.
SELECT * FROM `members`;
numéro de membre | noms complets | le sexe | date de naissance | adresse physique | adresse postale | numéro de contact | |
---|---|---|---|---|---|---|---|
1 | Janet Jones | femme | 21-07-1980 | Terrain de la première rue n° 4 | Sac privé | 0759 253 542 | janetjones@yagoo.cm |
2 | Janet Smith Jones | femme | 23-06-1980 | Melrose 123 | NULL | NULL | jj@fstreet.com |
3 | Robert Phil | Masculin | 12-07-1989 | 3e rue 34 | NULL | 12345 | rm@tstreet.com |
4 | Gloria Williams | femme | 14-02-1984 | 2e rue 23 | NULL | NULL | NULL |
5 | Léonard Hofstadter | Masculin | NULL | Crête des bois | NULL | 845738767 | NULL |
6 | Sheldon Cooper | Masculin | NULL | Crête des bois | NULL | 0976736763 | NULL |
7 | Rajesh Koothrappali | Masculin | NULL | Crête des bois | NULL | 0938867763 | NULL |
8 | Leslie Winkel | Masculin | 14-02-1984 | Crête des bois | NULL | 0987636553 | NULL |
9 | Howard Wolowitz | Masculin | 24-08-1981 | Parc du Sud | P.O. Box 4563 | 0987786553 | lwolowitz@email.me |
Notez que le numéro de contact de Leonard Hofstadter a supprimé le zéro (0) du numéro de contact. Les autres numéros de contact n'ont pas laissé tomber le zéro (0) au début.
Insertion dans une table à partir d'une autre table
La commande INSERT peut également être utilisée pour insérer des données dans une table à partir d'une autre table. La syntaxe de base est la suivante.
INSERT INTO table_1 SELECT * FROM table_2;
Regardons maintenant un exemple pratique. Nous allons créer une table factice pour les catégories de films à des fins de démonstration. Nous appellerons la nouvelle table des catégories categories_archive. Le script présenté ci-dessous crée le tableau.
CREATE TABLE `categories_archive` ( `category_id` int(11) AUTO_INCREMENT, `category_name` varchar(150) DEFAULT NULL, `remarks` varchar(500) DEFAULT NULL, PRIMARY KEY (`category_id`))
Exécutez le script ci-dessus pour créer la table.
Insérons maintenant toutes les lignes de la table des catégories dans la table d'archive des catégories. Le script présenté ci-dessous nous aide à y parvenir.
INSERT INTO `categories_archive` SELECT * FROM `categories`;
L'exécution du script ci-dessus insère toutes les lignes de la table des catégories dans la table d'archive des catégories. Notez que les structures des tables devront être les mêmes pour que le script fonctionne. Un script plus robuste est celui qui mappe les noms de colonnes de la table d'insertion à ceux de la table contenant les données.
La requête ci-dessous démontre son utilisation.
INSERT INTO `categories_archive`(category_id,category_name,remarks) SELECT category_id,category_name,remarks FROM `categories`;
Exécution de la requête SELECT
SELECT * FROM `categories_archive`
donne les résultats suivants présentés ci-dessous.
id_catégorie | Nom de catégorie | Remarques |
---|---|---|
1 | Comédie | Films avec humour |
2 | Romantiques | Histoires d'amour |
3 | Épique | Films anciens |
4 | Horreur | NULL |
5 | Science-fiction | NULL |
6 | Thriller | NULL |
7 | Action | NULL |
8 | Comédie romantique | NULL |
9 | Dessins animés | NULL |
10 | Dessins animés | NULL |
Exemple PHP : Insérer dans MySQL lampe de table
La fonction mysqli_query est utilisée pour exécuter SQL requêtes.
La fonction SQL insert into table peut être utilisée pour exécuter les types de requêtes suivants :
- insérer
- Choisir
- Mises à jour
- effacer
Il a la syntaxe suivante.
mysqli_query($db_handle,$query);
ICI,
« mysqli_query(…) » est la fonction qui exécute les requêtes SQL.
« $query » est la requête SQL à exécuter
« $link_identifier » est facultatif, il peut être utilisé pour transmettre le lien de connexion au serveur
Exemple
$servername = "localhost"; $username = "alex"; $password = "yPXuPT"; $dbname = "afmznf"; // Create connection $conn = mysqli_connect($servername, $username, $password, $dbname); // Check connection if (!$conn) { die("Connection failed: " . mysqli_connect_error()); } $sql= "INSERT INTO addkeyworddata(link, keyword)VALUES ('https://www.guru99.com/','1000')"; if (mysqli_query($conn, $sql)) { echo "New record created successfully".'<br>'; } else { echo "Error: " . $sql. "<br>" . mysqli_error($conn); } }
Résumé
- La commande INSERT est utilisée pour ajouter de nouvelles données dans une table. MySql ajoutera une nouvelle ligne une fois la commande exécutée.
- Les valeurs de date et de chaîne doivent être placées entre guillemets simples.
- Les valeurs numériques n'ont pas besoin d'être placées entre guillemets.
- La commande INSERT peut également être utilisée pour insérer des données d'une table dans une autre.