MySQL Requête INSERT INTO : Comment ajouter une ligne dans un tableau (exemple)

⚡ Résumé intelligent

MySQL La requête INSERT INTO ajoute de nouvelles lignes à une table, soit en spécifiant explicitement les colonnes cibles, soit en fournissant une valeur pour chaque colonne. L'utilisation correcte des guillemets pour les chaînes de caractères, les nombres et les dates est essentielle pour que les données stockées soient conservées intactes.

  • (I.e. Syntaxe de base : INSERT INTO `table_name`(column_1,column_2) VALUES (value_1,value_2) crée une nouvelle ligne dans la table nommée.
  • 🔤 Règle de citation : Les valeurs de type chaîne de caractères et date nécessitent des guillemets simples ; les valeurs numériques sont fournies sans guillemets.
  • 0️⃣ Piège du zéro principal : Un numéro de téléphone sans guillemets est lu comme un nombre, le zéro initial est donc omis silencieusement.
  • 🔀 Ordre des colonnes : L'ordre des colonnes dans la requête est sans importance, pourvu que chaque valeur corresponde à sa colonne correspondante.
  • 🕳️ Colonnes omises : Les colonnes non incluses dans l'instruction reçoivent la valeur NULL ou leur valeur par défaut déclarée.
  • 📑 Table à table : INSERT INTO … SELECT copie les lignes entre les tables lorsque les structures de colonnes correspondent.

Qu’est-ce que INSÉRER DANS ?

INSÉRER DANS Elle sert à stocker des données dans les tables. La commande INSERT crée une nouvelle ligne dans la table pour y insérer des données. Ces données proviennent généralement d'applications qui s'exécutent sur 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. (en anglais seulement)

  • 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 encadrer de guillemets simples ou doubles.
  • Types de données de date – entourez les valeurs de date entre guillemets simples au format « AAAA-MM-JJ ».

Insertion simultanée de plusieurs lignes

Une seule instruction INSERT peut contenir plusieurs lignes. Séparez chaque ensemble de valeurs par une virgule. Une seule instruction est plus rapide que plusieurs, car l'index est mis à jour une seule fois.

INSERT INTO `categories`(`category_name`,`remarks`) VALUES
('Documentary', 'Factual films'),
('Musical', 'Song driven films');

MySQL Exemple de requête INSERT INTO

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 Crête des bois 0938867763
Leslie Winkel 14/02/1984 Masculin Crête des bois 0987636553
Howard Wolowitz 24/08/1981 Masculin Parc du Sud Tel: 4563 0987786553 lwolowitz@email.me

Insérons les données ligne par ligne, en commençant par Leonard Hofstadter. Nous traiterons le numéro de téléphone comme un type de données numériques et ne l'entourerons pas de 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 téléphone de Leonard, car la valeur est traitée comme numérique et un zéro initial 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');

⚠️ Astuce : Stockez les numéros de téléphone, les codes postaux et autres identifiants similaires dans une colonne de type texte, comme VARCHAR. Les colonnes numériques ne peuvent pas commencer par un zéro.

Modifier l'ordre des colonnes

La modification de l'ordre des colonnes n'a aucun effet sur la requête INSERT dans MySQL, à condition que les valeurs correctes aient été associées aux colonnes appropriées. La requête ci-dessous illustre ce point.

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ère des valeurs NULL dans les colonnes omises de la requête INSERT.

Insérons maintenant l'enregistrement de Leslie, pour lequel la date de naissance est renseignée. 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');

Omission de la liste des colonnes

Toutes les requêtes ci-dessus ont nommé les colonnes et les ont associées à des valeurs. Si nous fournissons des valeurs pour TOUTES les colonnes de la table, la liste des colonnes peut être omise. MySQL insérer une requête.

INSERT INTO `members` VALUES (9,'Howard Wolowitz','Male','1981-08-24',
'SouthPark','P.O. Box 4563', '0987786553', 'lwolowitz@email.me');

Utilisons maintenant le Instruction SELECT pour afficher toutes les lignes du tableau des membres.

SELECT * FROM `members`;
numéro de membre noms complets le sexe date de naissance adresse physique adresse postale numéro de contact en nous envoyant un mail
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 Tel: 4563 0987786553 lwolowitz@email.me

Remarquez que le numéro de téléphone de Leonard Hofstadter a perdu son zéro initial, comme prévu. Les numéros cités le conservent.

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;

Nous allons maintenant créer une table factice pour les catégories de films, appelée categories_archive. Le script 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 « categories » dans la table « categories archive ».

INSERT INTO `categories_archive` SELECT * FROM `categories`;

Pour que ce script fonctionne, la structure des tables doit être identique. Un script plus robuste établit une correspondance entre les noms de colonnes de la table de destination et ceux de la table contenant les données, comme illustré ci-dessous.

INSERT INTO `categories_archive`(category_id,category_name,remarks) SELECT category_id,category_name,remarks FROM `categories`;

L'exécution de la requête SELECT ci-dessous donne les résultats suivants.

SELECT * FROM `categories_archive`;
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 Il exécute des requêtes PHP. Il gère indifféremment les instructions INSERT, SELECT, UPDATE et DELETE, et possède 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.
  • « $db_handle » est le lien de connexion au serveur renvoyé par mysqli_connect.

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);
}

FAQ

MySQL La requête est rejetée en raison d'une erreur de doublon. Utilisez INSERT IGNORE pour ignorer la ligne sans avertissement, ou INSERT … ON DUPLICATE KEY UPDATE pour mettre à jour la ligne existante.

Exécutez SELECT LAST_INSERT_ID() immédiatement après l'insertion, ou appelez mysqli_insert_id($conn) en PHP. Cette fonction renvoie la clé AUTO_INCREMENT générée pour la dernière ligne sur votre connexion.

Ne jamais concaténer les données saisies par l'utilisateur dans la chaîne de requête. Utilisez des requêtes préparées avec des paramètres liés, afin que les valeurs soient transmises séparément de la chaîne de requête. SQL et ne peuvent pas être exécutés comme des commandes.

Oui. Les assistants IA transforment les feuilles de calcul ou les descriptions simples en instructions INSERT, et MySQL Workbench Vous pouvez les exécuter. Vérifiez l'ordre des colonnes et les guillemets, car un modèle peut deviner le schéma.

Insérez-le d'abord dans une copie de développement. Les lignes générées par l'IA peuvent casser les clés étrangères, dépasser la longueur des colonnes ou inclure des dates invalides. Exécutez le traitement par lots dans une transaction afin de pouvoir l'annuler.

Résumez cet article avec :