Requête MySQL 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 la commande INSERT INTO MySQL :

INSERT INTO `table_name`(column_1,column_2,...) VALUES (value_1,value_2,...);

ICI

  • INSERT INTO `table_name` est la commande qui indique au serveur MySQL d'ajouter une nouvelle ligne dans une table nommée `table_name.`
  • (column_1,column_2,…) spécifie les colonnes à mettre à jour dans la nouvelle ligne MySQL
  • 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 suivantswing devrait être considéré:

  • 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 enfermer dans un seul ou double-citations.
  • 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 suitewing liste des nouveaux membres de la 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 Email
Léonard Hofstadter Homme Crête des bois 0845738767
Sheldon Cooper Homme Crête des bois 0976736763
Rajesh Koothrappali Homme Fairview 0938867763
Leslie Winkel 14/02/1984 Homme 0987636553
Howard Wolowitz 24/08/1981 Homme South Park Boîte postale 4563 0987786553 lwolowitz@email. Moi

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é


Changer 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 de l'instruction d'insertion MySQL. Si nous fournissons des valeurs pour TOUTES les colonnes du tableau, nous pouvons alors omettre les colonnes de la requête d'insertion MySQL.

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 email
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 Homme 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 Homme NULL Crête des bois NULL 845738767 NULL
6 Sheldon Cooper Homme NULL Crête des bois NULL 0976736763 NULL
7 Rajesh Koothrappali Homme NULL Crête des bois NULL 0938867763 NULL
8 Leslie Winkel Homme 14-02-1984 Crête des bois NULL 0987636553 NULL
9 Howard Wolowitz Homme 24-08-1981 Parc du Sud Boîte postale 4563 0987786553 lwolowitz@email. Moi

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 catégories_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 du tableau des catégories dans les catégories archive table. 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 les catégories archive table. 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 la suitewing résultats 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 une table MySQL

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 la suitewing types de requêtes :

  • insérer
  • Sélectionnez
  • Mises à jour
  • effacer

Il a le suivantwing syntaxe.

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.