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 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 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.