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 :