mysql insert into table insert statement syntax examples
Ce didacticiel explique l'instruction de table MYSQL INSERT INTO avec la syntaxe de requête et des exemples. Apprenez également différentes variantes de la commande d'insertion MYSQL:
Dans MySQL, la commande INSERT est utilisée pour ajouter des données à la table. En utilisant cette commande, nous pouvons insérer des données dans une ou plusieurs lignes en une seule transaction. En outre, les données peuvent être ajoutées à une ou plusieurs tables en une seule transaction.
Nous passerons en revue tout cela dans les prochaines sections. Avant de continuer, veuillez noter que nous utilisons MySQL version 8.0. Vous pouvez le télécharger sur ici .
Ce que vous apprendrez:
- Syntaxe de la commande MySQL INSERT
- Variations de l'instruction MySQL INSERT
- Foire aux questions et réponses
- Conclusion
Syntaxe de la commande MySQL INSERT
INSERT (LOW_PRIORITY|DELAYED|HIGH_PRIORITY)(IGNORE) INTO tablename (column1, column2, column3...) VALUES (value1, value2, value3, ....); Explication de la syntaxe:
- La syntaxe commence par le mot-clé «INSERT INTO», informant ainsi le serveur MySQL du type d'activité à effectuer. Ceci est un mot-clé obligatoire et ne peut pas être omis.
- Vient ensuite le nom de la table sur laquelle l'action d'insertion doit être effectuée. Ceci est obligatoire et ne peut pas non plus être omis.
- Ensuite, seront les noms de colonnes à insérer avec leurs valeurs correspondantes. Encore une fois, cela est également obligatoire et ne peut être omis.
- Ensuite, sera la clause values. Dans cette clause, il faut fournir la valeur de chaque colonne que nous insérons dans la table. La séquence de valeurs et la séquence des noms de colonne doivent être synchronisées.
- Le nombre et les types de données des colonnes doivent être identiques à ceux des valeurs.
Modificateurs dans l'instruction INSERT
- PRIORITÉ BASSE: Ce modificateur informe le moteur MySQL de retarder l'exécution de l'instruction INSERT jusqu'à ce qu'il n'y ait pas de connexion avec la lecture de la table que nous tentons d'insérer. Cela aide à assurer la cohérence de toutes les autres opérations qui seront effectuées sur cette table.
- HAUTE PRIORITÉ: Ce modificateur informe le moteur MySQL d'accorder une priorité élevée à l'instruction INSERT par rapport à toute autre instruction / transaction qui est exécuté sur la table.
- IGNORER: Ce modificateur informe MySQL Engine d'ignorer toute erreur pouvant survenir en raison de l'exécution de l'instruction INSERT. Toutes les erreurs qui surviennent seraient traitées comme de simples avertissements et l'insertion d'enregistrements dans la table se déroulerait sans entrave.
- RETARDÉ: Il s'agit de l'extension MySQL du SQL standard. Lorsque INSERT DELAYED est émis par l'utilisateur, le serveur met toutes les lignes en file d'attente et les données sont insérées dans la table ultérieurement, lorsque la table n'est pas utilisée par d'autres transactions.
Exemple MySQL INSERT
Ce qui suit est un exemple de table créé dans MySQL.
Nom du schéma: pacifique
Nom de la table: des employés
Noms de colonne:
- empNum - Contient des valeurs entières pour le numéro d'employé.
- lastName - Contient les valeurs varchar pour le nom de famille de l'employé.
- firstName - Contient les valeurs varchar pour le prénom de l'employé.
- email - Contient les valeurs varchar pour l'ID de messagerie de l'employé.
- deptNum - Contient varchar pour l'ID de service auquel appartient un employé.
- salaire - Contient les valeurs décimales du salaire de chaque employé.
- start_date - Contient les valeurs de date pour la date d'adhésion de l'employé.

Nom du schéma: pacifique
Nom de la table: employés_history
Noms de colonne:
- empNum - Contient des valeurs entières pour le numéro d'employé.
- lastName - Contient les valeurs varchar pour le nom de famille de l'employé.
- firstName - Contient les valeurs varchar pour le prénom de l'employé.
- email - Contient les valeurs varchar pour l'ID de messagerie de l'employé.
- deptNum - Contient varchar pour l'ID de service auquel appartient un employé.
- salaire - Contient des valeurs décimales de salaire pour chaque employé.
- start_date - Contient les valeurs de date pour la date d'adhésion de l'employé.

Variations de l'instruction MySQL INSERT
# 1) MySQL insérer une seule ligne
Tout d'abord, nous examinerons un scénario dans lequel nous avons spécifié à la fois les noms de colonnes et les valeurs à insérer à l'aide du mot clé INSERT INTO.
Par exemple, Ici, nous allons essayer d'insérer un nouvel employé. Nous ajouterons le numéro d'employé, le prénom et le nom, ainsi que nous mettrons à jour l'ID de messagerie, le salaire et l'ID du service auquel le nouvel employé devrait appartenir.
La requête et les résultats correspondants sont les suivants:

Comme illustré dans l'image ci-dessus, l'instruction INSERT s'est exécutée avec succès et a inséré une ligne dans la table de l'employé.
L'instruction de sortie ci-dessous montre l'heure à laquelle l'instruction a été exécutée, l'instruction MySQL qui a été exécutée et le nombre de lignes affectées.
Veuillez noter ici, que la valeur de chaque colonne est mentionnée dans le même ordre que celui des noms de colonne. Notez également que la colonne avec le type de données entier / décimal n'est pas entourée de virgules inversées, cependant, les types de colonne avec le type de données varchar / char ont été entourés de virgules inversées.
Afin de vérifier la sortie de cette instruction INSERT, exécutons l'instruction SELECT sur cette table avec l'empNum comme 1012.

Mettre en doute:
INSERT INTO employees ( empNum, lastName, firstName, email, deptNum, salary ) VALUES ( 1012, 'Luther', 'Martin', 'ml@gmail.com', 3, 13000 ) ;Instantané du tableau après:
| empNum | nom de famille | Prénom | deptNum | Un salaire | ||
|---|---|---|---|---|---|---|
| 1007 | Schmitt | James | js@gmail.com | 4 | 21780 | 0001-01-01 |
| 1012 | Luther | Martin | ml@gmail.com | 3 | 13 000 |
# 2) MySQL Insertion de données uniquement dans la colonne spécifiée
Ensuite, est une autre façon d'insérer des données dans une table, mais en insérant des enregistrements uniquement dans les colonnes requises et pas dans toutes les colonnes. Cependant, veuillez noter que nous ne pouvons pas omettre les colonnes clés dans ce scénario. Dans le cas de la table de nos employés, la colonne clé est la colonne empNum. Essayons ceci.
Par exemple, Nous allons insérer un nouvel enregistrement dans la table des employés avec des données uniquement sur empNum, lastName, firstName. Nous n'attribuerons aucun identifiant de messagerie, service ou salaire pour cet employé.
Voici la requête et son résultat:

Comme illustré dans l'image ci-dessus, l'instruction d'insertion s'est exécutée avec succès et a inséré une ligne dans la table de l'employé.
qu'est-ce qu'une clé de sécurité wifi
Veuillez noter, que pour insérer uniquement les colonnes sélectionnées, les colonnes que nous avons ignorées doivent être déclarées NULL ou avoir une valeur par défaut qui serait remplie au cas où cette colonne serait ignorée. Si cette condition n'est pas satisfaite, l'instruction d'insertion échouera.
Vérifions l'exécution de l'instruction INSERT ci-dessus en exécutant une instruction SELECT pour empNum = 1013.

Mettre en doute:
INSERT INTO employees ( empNum, lastName, firstName ) VALUES ( 1013, 'Nolan', 'Chris' ) ;Instantané du tableau après:
| empNum | nom de famille | Prénom | deptNum | Un salaire | |
|---|---|---|---|---|---|
| 1013 | Nolan | Chris | NUL | NUL | NUL |
# 3) MySQL insérer plusieurs lignes
Ensuite, nous passerons par le scénario où nous devons insérer plusieurs lignes dans la table avec la même instruction INSERT.
Par exemple, dans ce cas, nous devons mentionner les noms de colonnes une seule fois, mais nous pouvons continuer à répéter les valeurs de ces colonnes autant de fois que nécessaire.
Voici la requête avec les résultats qui lui sont associés:

Comme le montre l'image ci-dessus, l'exécution de la déclaration a réussi.
Observez la partie message, qui indique que 3 lignes ont été affectées, cela implique que cette seule instruction INSERT a inséré 3 enregistrements avec l'exécution de cette instruction INSERT.
Lectures complémentaires = >> Didacticiel sur l'instruction MySQL If
Vérifions la sortie de notre instruction INSERT en exécutant l'instruction SELECT pour les nouveaux ID d'employé 1014, 1015 et 1016.
Les détails sont les suivants:

Mettre en doute:
INSERT INTO employees ( empNum, lastName, firstName, email, deptNum, salary ) VALUES (1014, 'Murray', 'Keith', 'km@gmail.com', 1, 25000), (1015, 'Branson', 'John', 'jb@gmail.com', 2, 15000), (1016, 'Martin', 'Richard', 'rm@gmail.com', 4, 5000) ;Instantané du tableau après:
| empNum | nom de famille | Prénom | deptNum | Un salaire | |
|---|---|---|---|---|---|
| 1014 | Murray | Keith | km@gmail.com | 1 | 25 000 |
| 1015 | Branson | John | jb@gmail.com | deux | 15 000 |
| 1016 | Martin | Richard | rm@gmail.com | 4 | 5000 |
# 4) Date d'insertion MySQL
Ensuite, nous passerons par le scénario dans lequel nous devons insérer des valeurs dans la colonne de date.
Par exemple, L'insertion de valeurs dans la colonne de date peut être délicate. La date dans MySQL peut être ajoutée au format «AAAA-MM-JJ». Pour ce faire, ajoutons une colonne start_date avec la valeur par défaut «0001-01-01».
Cela implique que tous les enregistrements existants dans la table de l’employé avec la date de début seront mis à jour en tant que «0001-01-01». L'instruction alter sera la suivante.
Mettre en doute:
ALTER TABLE employees ADD start_date DATE default '0001-01-01' ;Vérifions la sortie de la requête ci-dessus en exécutant une simple instruction SELECT sur la table:

Nous avons donc ajouté une nouvelle colonne de date avec le type de données 'DATE' avec la valeur par défaut '0001-01-01'. Insérons maintenant deux nouveaux enregistrements d'employés, l'un avec la date actuelle et l'autre avec une date particulière.
convertir youtube en mp3 pendant plus de 30 minutes
Voici les requêtes avec les détails:

Comme le montre l'image ci-dessus, nous avons utilisé la fonctionnalité d'insertion de plusieurs lignes dans le tableau comme expliqué dans la section précédente.
Le premier enregistrement a été inséré avec la fonction CURRENT_DATE (). Cette fonction renvoie la date système actuelle. Le deuxième enregistrement a été inséré avec une date particulière au format «AAAA-MM-JJ».
Ensuite, nous vérifierons la sortie de notre instruction INSERT avec une instruction SELECT pour empNum 1017 et 1018.

Le premier enregistrement, avec empNum = 1017, a la même date de début que la date actuelle qui est 25eNov 2019 (dans ce cas, la date à laquelle ce didacticiel a été rédigé) au format «AAAA-MM-JJ».
Mettre en doute:
INSERT INTO employees ( empNum, lastName, firstName, email, deptNum, salary, start_date ) VALUES (1017, 'Johnson', 'Eve', 'ej@gmail.com', 3, 5500, CURRENT_DATE()), (1018, 'Bond', 'Nolan', 'nb@gmail.com', 2, 15000, '2019-09-13') ;Instantané du tableau après:
| empNum | nom de famille | Prénom | deptNum | Un salaire | Date de début | |
|---|---|---|---|---|---|---|
| 1017 | Johnson | Veille | ej@gmail.com | 3 | 5500 | 2019-11-25 00:00:00 |
| 1018 | Lier | Nolan | nb@gmail.com | deux | 15 000 | 2019-09-13 00:00:00 |
# 5) MySQL insérer dans une table à partir d'une autre table
Ensuite, nous passerons par le scénario où nous devons insérer des données dans une nouvelle table à partir d'une table existante.
Par exemple, Prenons un scénario dans lequel nous devons périodiquement déplacer des données de notre table existante vers une table historique ou d'archive. Pour ce faire, créons une nouvelle table employee_history.
Notre tâche consiste à déplacer les données de la table employee vers la table employee_history.
L'instruction CREATE est la suivante:
Mettre en doute:
CREATE TABLE employees_history LIKE employees ;Vérifions la sortie de la requête ci-dessus en exécutant une simple instruction DESC sur la nouvelle table qui nous donnera la structure de table de la nouvelle table:
meilleure application de téléchargement de mp3 pour android

Nous avons donc créé une nouvelle table. Maintenant, chargeons les données dans cette nouvelle table à partir de la table des employés.
=> En savoir plus sur MySQL CRÉER UNE COMMANDE DE TABLE .
Voici la requête et ses détails:

Comme le montre l'image ci-dessus, l'insertion de données dans la nouvelle table à partir de la table existante a réussi.
Veuillez observer, la colonne de message dans l'onglet de sortie. Il dit 18 lignes affectées. Cela implique que toutes les 18 lignes de la table existante ont été copiées dans la nouvelle table Employees_history.
Ensuite, nous vérifierons la sortie de notre instruction INSERT avec une instruction SELECT sur la table Employees_history.
L'image ci-dessus illustre toutes les lignes copiées à partir de la table des employés dans la table Employees_history.

L'image ci-dessus représente toutes les lignes copiées à partir de la table des employés dans la table des employés_history.
Mettre en doute:
INSERT INTO employees_history ( empNum, lastName, firstName, email, deptNum, salary, start_date ) SELECT empNum, lastName, firstName, email, deptNum, salary, start_date FROM employees ;Instantané du tableau après:
| empNum | nom de famille | Prénom | deptNum | Un salaire | Date de début | |
|---|---|---|---|---|---|---|
| 1001 | Andrews | Jack | ja@gmail.com | 1 | 3182,7 | 0001-01-01 |
| 1002 | Schwatz | Mike | ms@gmail.com | 1 | 5304,5 | 0001-01-01 |
| 1003 | Langley | Margaret | margaret.langley@gmail.com | deux | 8820 | 0001-01-01 |
| 1004 | Harera | Sandra | sh@gmail.com | 1 | 10609 | 0001-01-01 |
| 1005 | lire | Peter | pl@gmail.com | deux | 14333 | 0001-01-01 |
| 1006 | Keith | Jenny | jk@gmail.com | deux | 16538 | 0001-01-01 |
| 1008 | Bailey | Oliver | oliver.bailey@gmail.com | 3 | 24494 | 0001-01-01 |
| 1009 | tasse | Harry | hb@gmail.com | 5 | 30646 | 0001-01-01 |
| 1010 | Armstrong | Jacob | jacob.armstrong@gmail.com | 4 | 32670 | 0001-01-01 |
| 1011 | Hanks | À M | th@gmail.com | NUL | 10100 | 0001-01-01 |
| 1012 | Luther | Martin | ml@gmail.com | 3 | 13 000 | 0001-01-01 |
| 1013 | Nolan | Chris | NUL | NUL | NUL | 0001-01-01 |
| 1014 | Murray | Keith | km@gmail.com | 1 | 25 000 | 0001-01-01 |
| 1015 | Branson | John | jb@gmail.com | deux | 15 000 | 0001-01-01 |
| 1016 | Martin | Richard | rm@gmail.com | 4 | 5000 | 0001-01-01 |
| 1017 | Johnson | Veille | ej@gmail.com | 3 | 5500 | 2019-11-25 00:00:00 |
| 1018 | Lier | Nolan | nb@gmail.com | deux | 15 000 | 2019-09-13 00:00:00 |
Foire aux questions et réponses
Q # 1) Comment insérez-vous des données dans la table dans MySQL?
Répondre: Pour insérer des données dans une table MySQL, MySQL nous fournit un mot clé important «INSERT INTO». Ceci est suivi du nom de la table, de la liste des colonnes et de la liste des valeurs correspondantes qui doivent être insérées. Nous pouvons utiliser ce mot-clé pour insérer une ou plusieurs colonnes dans la même transaction.
Q # 2) Expliquez la clause «INSERT IGNORE INTO».
Répondre: Lorsque nous tentons d'insérer plus d'une ligne dans une seule instruction INSERT, il se peut que l'exécution échoue en raison de données incorrectes pour une ligne particulière. Cela entraînera l'arrêt de la transaction et la restauration de la validation précédente.
Afin d'éviter de tels scénarios, 'INSÉRER IGNORE DANS' est utilisé. Cette clause ignore l'erreur provoquant des enregistrements non valides et insère uniquement les enregistrements valides afin que la transaction ne s'arrête pas. Ceci est utile lorsque vous devez effectuer des insertions groupées et que vous ne pouvez pas vous permettre de le refaire pour les mauvaises données d'une ligne.
Q # 3) Comment mettre à jour les attributs dans MySQL?
Répondre: Nous pouvons mettre à jour les attributs à l'aide de l'instruction MySQL Update, l'instruction commençant par le mot clé UPDATE suivi du nom de la table. Vient ensuite la clause SET suivie d'un nom de colonne et d'une clause WHERE.
Q # 4) Puis-je insérer plusieurs enregistrements dans une seule transaction d'insertion MySQL?
Répondre: Comme illustré ci-dessus, sous le 'Insertion de données sur plusieurs lignes' section, nous pouvons insérer plusieurs lignes dans une seule transaction d'insertion. Nous pouvons utiliser la clause INSERT INTO suivie du nom de la table et de la liste des colonnes, mais au lieu d'une liste de valeurs, nous devons mentionner plusieurs listes de valeurs pour chacune des colonnes.
Q # 5) D'où téléchargez-vous MySQL?
Répondre: Vous pouvez télécharger la version 8.0 de MySQL à partir d'ici: MySQL .
Lire aussi => Comment télécharger MySQL
Q # 6) La clause SELECT peut-elle être utilisée dans l'instruction MySQL INSERT?
Répondre: Oui, SELECT peut être utilisé avec l'instruction MySQL INSERT. Cela a été expliqué dans la section «MySQL Insertion d'une table à partir d'une autre table». Ceci est utilisé lorsque nous devons insérer des lignes dans une table, en utilisant les données déjà présentes dans une autre table.
Par exemple, déplacer les données de la table actuelle vers la table historique dans l'entrepôt de données.
Q # 7) Comment MySQL stocke-t-il la date dans les tables?
Répondre: MySQL utilise le format «AAAA-MM-JJ» pour stocker la date dans les tables. Le type de données ici est DATE. La plage de dates prise en charge par MySQL va de «1000-01-01» à «9999-12-31».
MySQL a également un type de données DATETIME pour stocker la date et l'heure. Le format est «AAAA-MM-JJ hh: mm: ss». La plage acceptable va de «1000-01-01 00:00:00» à «9999-12-31 23:59:59».
Lecture recommandée = >> Tutoriel sur les types de données MySQL
Conclusion
Ainsi, dans ce didacticiel, nous avons découvert les cinq façons différentes d'exécuter des instructions INSERT dans MySQL.
- MySQL insertion d'une seule ligne
- MySQL Insertion de données uniquement dans la colonne spécifiée
- MySQL Insertion de données dans plusieurs lignes
- Date d'insertion MySQL
- MySQL Insertion d'une table à partir d'une autre table
Nous pouvons utiliser l'un ou l'autre, en fonction des exigences de notre projet.
Bonne lecture!!
lecture recommandée
- Différence entre SQL et MySQL et SQL Server (avec exemples)
- Top 40 des meilleures questions et réponses d'entretien MySQL (questions 2021)
- Didacticiel de déclaration de mise à jour MySQL - Syntaxe de requête de mise à jour et exemples
- Syntaxe des commandes Unix Cat, options avec exemples
- Commande de tri Unix avec syntaxe, options et exemples
- Insérer plusieurs documents dans MongoDB à l'aide de tableaux
- Tutoriel sur l'utilisation de l'instruction C # et la méthode virtuelle C # avec des exemples
- Structure du programme C # et syntaxe de base avec des exemples