Le numéro de page est placé sur la table des matières. Numérotation des pages de travaux de cours. Formulation des cours

Dernière mise à jour : 13/07/2017

Pour ajouter des données, utilisez la commande INSERT, qui a la syntaxe formelle suivante :

INSERT table_name [(column_list)] VALEURS (valeur1, valeur2, ... valeurN)

Vient d'abord l'expression INSERT INTO, puis entre parenthèses vous pouvez spécifier une liste de colonnes séparées par des virgules auxquelles les données doivent être ajoutées, et à la fin, après le mot VALEURS, les valeurs à ajouter pour les colonnes sont répertoriées dans parenthèses.

Par exemple, supposons que la base de données suivante ait été créée précédemment :

CRÉER UNE BASE DE DONNÉES productsdb ; ALLEZ UTILISER productsdb ; Produits CREATE TABLE (Id INT IDENTITY PRIMARY KEY, ProductName NVARCHAR(30) NOT NULL, Fabricant NVARCHAR(20) NOT NULL, ProductCount INT DEFAULT 0, Price MONEY NOT NULL)

Ajoutons-y une ligne à l'aide de la commande INSERT :

INSÉRER LES VALEURS DES PRODUITS ("iPhone 7", "Apple", 5, 52000)

Après une exécution réussie dans SQL Server Management Studio, le message « 1 ligne(s) affectée(s) » doit apparaître dans le champ du message :

Il convient de considérer que les valeurs des colonnes entre parenthèses après le mot-clé VALUES sont transmises dans l'ordre dans lequel elles sont déclarées. Par exemple, dans l'instruction CREATE TABLE ci-dessus, vous pouvez voir que la première colonne est Id. Mais comme l'attribut IDENTITY est spécifié pour cela, la valeur de cette colonne est automatiquement générée et peut être omise. La deuxième colonne représente ProductName, donc la première valeur, la chaîne « iPhone 7 », sera transmise à cette colonne. La deuxième valeur - la chaîne "Apple" sera transmise à la troisième colonne Fabricant et ainsi de suite. Autrement dit, les valeurs sont transmises aux colonnes comme suit :

    Nom du produit : « iPhone 7 »

    Fabricant : "Apple"

De plus, lors de la saisie des valeurs, vous pouvez spécifier les colonnes immédiates auxquelles les valeurs seront ajoutées :

INSÉRER DANS LES VALEURS DES PRODUITS (Nom du produit, Prix, Fabricant) ("iPhone 6S", 41000, "Apple")

Ici, la valeur est spécifiée pour seulement trois colonnes. De plus, désormais les valeurs sont transmises dans l'ordre des colonnes :

    Nom du produit : "iPhone 6S"

    Fabricant : "Apple"

Pour les colonnes non spécifiées (dans ce cas ProductCount), une valeur par défaut sera ajoutée si l'attribut DEFAULT est spécifié, ou une valeur NULL. Cependant, les colonnes non spécifiées doivent pouvoir être nullables ou avoir un attribut DEFAULT.

On peut également ajouter plusieurs lignes à la fois :

INSÉRER DANS LES VALEURS DES PRODUITS ("iPhone 6", "Apple", 3, 36000), ("Galaxy S8", "Samsung", 2, 46000), ("Galaxy S8 Plus", "Samsung", 1, 56000)

Dans ce cas, trois lignes seront ajoutées au tableau.

De plus, lors de l'ajout, nous pouvons spécifier que la colonne doit avoir une valeur par défaut à l'aide du mot-clé DEFAULT, ou une valeur NULL :

INSERT INTO Products (ProductName, Manufacturer, ProductCount, Price) VALEURS ("Mi6", "Xiaomi", DEFAULT, 28000)

Dans ce cas, la valeur par défaut de la colonne ProductCount sera utilisée (si elle est définie, si elle ne l'est pas, alors NULL).

Si toutes les colonnes ont un attribut DEFAULT qui spécifie une valeur par défaut ou sont nullables, vous pouvez insérer des valeurs par défaut pour toutes les colonnes :

INSÉRER DANS LES VALEURS PAR DÉFAUT DES PRODUITS

Mais si nous prenons la table Products, une telle commande échouera avec une erreur, car plusieurs champs n'ont pas l'attribut DEFAULT et n'autorisent en même temps pas la valeur NULL.

Cet article est consacré au remplissage des tables de base de données avec des données, c'est-à-dire que nous étudierons les commandes SQL pour insérer de nouveaux enregistrements. Il faut dire que l'enregistrement dans un tableau peut se faire de deux manières :

Méthode numéro 1.
Essayons d'ajouter une entrée sur le nouveau pays au tableau des pays. La syntaxe d'ajout sera la suivante :
INSERT INTO nom_table (champ_1, champ_2, ...) VALEURS (Valeur_1, Valeur_2, ...); Sur la base de notre structure de table, la requête SQL ressemblera à ceci :
INSÉRER DANS les pays (nom_pays, nom_acronyme) VALEURS ("Russie", "RU"); C'est ainsi que nous avons ajouté une entrée sur le pays « Russie » à notre tableau. Tout ici doit être clair et simple, l'essentiel est de regarder attentivement les champs que vous indiquez dans les premières parenthèses, et d'écrire les valeurs dans le même ordre dans la seconde.

Méthode numéro 2.
La deuxième méthode, à mon avis, est un peu plus simple, puisque vous voyez ce que vous attribuez et à quel domaine. Croyez-moi, si un tableau comporte un grand nombre de colonnes, il est alors très facile de confondre ou d'oublier l'ordre des champs dans la première et l'ordre des valeurs dans la seconde parenthèse. La syntaxe de la deuxième méthode est :
INSERT INTO nom_table SET champ_1 = Valeur_1, champ_2 = Valeur_2, ... ; Utilisons cet exemple pour ajouter quelques informations au tableau. personnes, puisqu'il y a plus de champs, et l'avantage de la deuxième méthode se fera immédiatement sentir :
INSERT INTO people SET first_name="Ivan", last_name="Dulin", Registration_date="2012-06-14", country="1" ; Notre tableau contient maintenant les données suivantes :


Vous avez probablement remarqué que nous n'avons pas spécifié de valeur pour l'âge, mais elle s'est avérée remplie... Tout est correct - pour ce champ, nous avons défini la valeur par défaut sur 25. Alors maintenant, notre Ivan Dulin est répertorié dans la base de données avec un âge de 25 ans. Ce n'est peut-être pas le meilleur exemple de définir une valeur par défaut pour le champ d'âge, mais vous pouvez définir de telles propriétés sur des champs tels que, par exemple, l'évaluation des utilisateurs du site ou le nombre de pages vues. Ils sont initialement mis à 0.

Vous devez également faire attention au format de date dans MySQL : AAAA-MM-JJ. Si vous ne le respectez pas, vos entrées ne seront tout simplement pas inscrites dans le tableau.

Comme vous pouvez le constater, le champ profession est renseigné comme NULL, c'est une valeur vide. Pour ce champ, nous définissons la propriété « optionnel (NULL) ».

En complément, considérez la commande suivante :
CHARGER LES DONNÉES LOCAL INFILE "D:\zapros.txt" DANS LA TABLE personnes ; Que pensez-vous que nous avons fait maintenant ?! Et nous avons fait ce qui suit : ajouté des données au tableau personnesà partir du fichier requêtes.txt, qui se trouve sur le lecteur D. Les informations contenues dans le fichier doivent avoir la structure suivante :


La structure des données du fichier doit répondre aux exigences suivantes :
  1. Chaque nouvelle entrée doit être décrite sur une nouvelle ligne
  2. Les données doivent être spécifiées pour absolument tous les champs. Comme vous pouvez le voir, nous avons spécifié la valeur NULL pour le champ id, car il s'auto-incrémente, donc MySQL lui-même entrera la valeur requise.
  3. Les champs sont séparés les uns des autres par un caractère de tabulation (touche Tab).
  4. Les informations que vous saisissez doivent correspondre aux types de données du champ spécifique. C'est par exemple une date au format AAAA-MM-JJ, un entier pour entier, etc.
Ainsi, vous avez appris à saisir de nouvelles données dans les tables de votre base de données. Pour consolider la matière que vous avez étudiée, saisissez vous-même les informations suivantes :

Tableau des métiers :

Tableau des personnes :

prénom nom de famille âge Date d'inscription pays profession
Léonid Bilac 45 2012-06-20 2 1
Youri Nazarov 22 2012-06-21 3 1
Alla Savenko 25 2012-06-22 2 3
Irina Nikolaïev 31 2012-06-22 1 3

Assurez-vous d'ajouter ces entrées, car nous en aurons besoin pour étudier l'instruction SELECT (sélection d'informations dans la base de données), que nous examinerons dans le prochain (quatrième) article sur l'étude des requêtes SQL.

Dans les sections précédentes, nous avons examiné le travail de récupération de données à partir de tables pré-créées. Il est maintenant temps de comprendre comment créer/supprimer des tables, ajouter de nouveaux enregistrements et supprimer les anciens. À ces fins dans SQL Il existe des opérateurs tels que : CRÉER- crée un tableau, MODIFIER- modifie la structure du tableau, BAISSE- supprime une table ou un champ, INSÉRER- ajoute des données au tableau. Commençons par nous familiariser avec ce groupe d'opérateurs de l'opérateur INSÉRER.

1. Ajout de lignes entières

Comme son nom l'indique, l'opérateur INSÉRER utilisé pour insérer (ajouter) des lignes dans une table de base de données. L'ajout peut se faire de plusieurs manières :

  • - ajouter une ligne complète
  • - ajouter une partie de ligne
  • - ajouter les résultats de la requête.

Ainsi, pour ajouter une nouvelle ligne à une table, nous devons spécifier le nom de la table, lister les noms de colonnes et spécifier la valeur de chaque colonne à l'aide de la construction INSÉRER DANS nom_table (champ1, champ2 ...) VALEURS (valeur1, valeur2...). Regardons un exemple.

INSÉRER DANS LES VALEURS DES Vendeurs (ID, Adresse, Ville, Nom_vendeur, Pays)("6", "1ère rue", "Los Angeles", "Harry Monroe", "États-Unis")

Vous pouvez également modifier l'ordre des noms de colonnes, mais en même temps vous devez modifier l'ordre des valeurs dans le paramètre VALEURS.

2. Ajout d'une partie des lignes

Dans l'exemple précédent, lors de l'utilisation de l'opérateur INSÉRER nous avons explicitement marqué les noms des colonnes du tableau. En utilisant cette syntaxe, nous pouvons sauter certaines colonnes. Cela signifie que vous saisissez des valeurs pour certaines colonnes mais ne les fournissez pas pour d'autres. Par exemple:

INSÉRER DANS LES VALEURS Vendeurs (ID, Ville, Nom_vendeur)("6", "Los Angeles", "Harry Monroe")

Dans cet exemple, nous n'avons pas spécifié de valeur pour deux colonnes Adresse Et Pays. Vous pouvez exclure certaines colonnes de la déclaration INSÉRER DANS, si cela permet la définition de la table. Dans ce cas, une des conditions doit être remplie : cette colonne est définie comme valide NUL(absence de toute valeur) ou la valeur par défaut spécifiée dans la définition de la table. Cela signifie que si aucune valeur n'est spécifiée, la valeur par défaut sera utilisée. S'il vous manque une colonne d'un tableau qui ne permet pas aux valeurs d'apparaître dans ses lignes NUL et n'a pas de valeur par défaut définie, le SGBD générera un message d'erreur et la ligne ne sera pas ajoutée.

3. Ajout des données sélectionnées

Dans l'exemple précédent, nous avons inséré des données dans des tables en les saisissant manuellement dans la requête. Cependant, l'opérateur INSÉRER DANS nous permet d'automatiser ce processus si nous voulons insérer des données d'une autre table. A cet effet, en SQL, il existe une construction telle que INSÉRER DANS... SÉLECTIONNER.... Cette conception vous permet de sélectionner simultanément des données dans une table et de les insérer dans une autre. Supposons que nous ayons une autre table Vendeurs_EU avec une liste de vendeurs de nos produits en Europe et nous devons les ajouter au tableau général Les vendeurs. La structure de ces tableaux est la même (même nombre de colonnes et mêmes noms), mais les données sont différentes. Pour ce faire, nous pouvons écrire la requête suivante :

INSÉRER DANS Vendeurs (ID, Adresse, Ville, Nom_vendeur, Pays) SELECTID, adresse, ville, nom_vendeur, pays FROM Sellers_EU

Il faut faire attention à ce que les valeurs des clés internes ne soient pas répétées (champ IDENTIFIANT), sinon une erreur se produira. Opérateur SÉLECTIONNER peut également inclure des suggestions pour filtrer les données. A noter également que le SGBD ne fait pas attention aux noms des colonnes contenues dans l'instruction SÉLECTIONNER, seul l'ordre dans lequel ils sont disposés est important pour elle. Par conséquent, les données de la première colonne spécifiée qui ont été sélectionnées en raison de SÉLECTIONNER, sera renseigné dans la première colonne du tableau dans tous les cas Les vendeurs, précisé après l'opérateur INSÉRER DANS, quel que soit le nom du champ.

4. Copier des données d'une table à une autre

Souvent, lorsque l'on travaille avec des bases de données, il est nécessaire de créer des copies de n'importe quelle table à des fins de sauvegarde ou de modification. Pour créer une copie complète d'une table, SQL fournit une instruction distincte SÉLECTIONNER DANS. Par exemple, nous devons créer une copie du tableau Les vendeurs, vous devrez rédiger la demande comme suit :

SELECT * INTO Sellers_new FROM Vendeurs

Contrairement au modèle précédent INSÉRER DANS... SÉLECTIONNER... Lorsque des données sont ajoutées à une table existante, la conception copie les données dans la nouvelle table. Vous pouvez également dire que la première construction importe des données et la seconde les exporte. Lors de l'utilisation du design SÉLECTIONNER... DANS... DE... Les éléments suivants doivent être pris en compte :

  • - vous pouvez utiliser n'importe quelle phrase dans l'opérateur SÉLECTIONNER, tel que PAR GROUPE Et AYANT
  • - vous pouvez utiliser une jointure pour ajouter des données de plusieurs tables
  • - les données ne peuvent être ajoutées qu'à une seule table, quel que soit le nombre de tables dont elles proviennent.

Les instructions SQL INSERT INTO et INSERT SELECT sont utilisées pour insérer de nouvelles lignes dans une table. Il existe deux manières d'utiliser les instructions :

  1. Valeurs uniquement : la première méthode consiste à spécifier uniquement les valeurs de données à insérer sans les noms de colonnes.

Syntaxe:

INSERT INTO nom_table VALUES (valeur1, valeur2, valeur3,...); nom_table : nom de la table. value1, value2,.. : valeurs de la première colonne, deuxième colonne,... pour le nouvel enregistrement

  1. Noms et valeurs des colonnes: La deuxième méthode précise les noms de colonnes et les valeurs de lignes à insérer :

Syntaxe:

INSERT INTO nom_table (colonne1, colonne2, colonne3,..) VALUES (valeur1, valeur2, valeur3,...); nom_table : nom de la table. column1 : nom de la première colonne, de la deuxième colonne... value1, value2,.. : valeurs de la première colonne, de la deuxième colonne,... pour le nouvel enregistrement

Demandes :

Méthode 1 ( insérer uniquement des valeurs):

INSÉRER DANS LES VALEURS DE L'Étudiant ("5", "DUR", "BENGALE DE L'OUEST", "8759770477", "19");

Résultat :

Après avoir utilisé INSERT INTO SELECT, la table Student ressemblera désormais à ceci :

ROLL_NO NOM ADRESSE TÉLÉPHONE Âge
1 RAM Delhi 9455123451 18
2 RAMÈS GURGAON 9562431543 18
3 SUJIT ROHTAK 9156253131 20
4 SURESH Delhi 9156768971 18
3 SUJIT ROHTAK 9156253131 20
2 RAMÈS GURGAON 9562431543 18
5 RUDE BENGALE-OCCIDENTAL 8759770477 19

Méthode 2 ( insérer des valeurs dans les colonnes spécifiées uniquement):

INSÉRER DANS LES VALEURS de l'étudiant (ROLL_NO, NOM, Âge) ("5", "PRATIK", "19");

Résultat :

La table Étudiant ressemblera désormais à ceci :

ROLL_NO NOM ADRESSE TÉLÉPHONE Âge
1 RAM Delhi 9455123451 18
2 RAMÈS GURGAON 9562431543 18
3 SUJIT ROHTAK 9156253131 20
4 SURESH Delhi 9156768971 18
3 SUJIT ROHTAK 9156253131 20
2 RAMÈS GURGAON 9562431543 18
5 PRATIK nul nul 19

Notez que les colonnes pour lesquelles aucune valeur n'est spécifiée sont définies sur null .

Utilisation de SELECT dans une instruction INSERT INTO

Vous pouvez utiliser l'instruction MySQL INSERT SELECT pour copier des lignes d'une table et les insérer dans une autre.

L'utilisation de cette instruction est similaire à l'utilisation de INSERT INTO. La différence est que l'instruction SELECT est utilisée pour sélectionner des données dans une autre table. Vous trouverez ci-dessous les différentes manières d'utiliser INSERT INTO SELECT :

  • Insérer toutes les colonnes du tableau: Vous pouvez copier toutes les données d'un tableau et les coller dans un autre tableau.

Syntaxe:

INSERT INTO first_table SELECT * FROM second_table; first_table : nom de la première table. second_table : nom de la deuxième table.

Nous avons utilisé une instruction SELECT pour copier les données d'une table et une instruction INSERT INTO pour les insérer dans une autre.

  • Insertion de colonnes de tableau individuelles. Vous pouvez copier uniquement les colonnes du tableau que vous souhaitez coller dans un autre tableau.

Syntaxe:

INSERT INTO first_table(column_names1) SELECT column_names2 FROM second_table ; first_table : nom de la première table. second_table : nom de la deuxième table. col_names1 : noms de colonnes séparés par des virgules (,) pour le tableau 1. col_names2 : noms de colonnes séparés par des virgules (,) pour le tableau 2.

Nous avons utilisé l'instruction SELECT pour copier les données uniquement des colonnes sélectionnées de la deuxième table et l'instruction MySQL INSERT INTO SELECT pour les insérer dans la première table.

  • Copier des lignes spécifiques d'une table. Vous pouvez copier des lignes spécifiques d'une table pour les coller ultérieurement dans une autre table en utilisant une clause WHERE avec une clause SELECT. Dans ce cas, vous devez utiliser la condition appropriée dans OÙ.

Syntaxe:

Tableau 2 : Étudiant latéral

ROLL_NO NOM ADRESSE TÉLÉPHONE Âge
7 SOUVIK DUM DUM 9876543210 18
8 NIRAJ NOIDA 9786543210 19
9 QUELQUE CHOSE ROHTAK 9687543210 20

Demandes :

Méthode 1 ( insérer toutes les lignes et colonnes):

INSÉRER DANS Étudiant SELECT * FROM LateralStudent ;

Résultat :

Cette requête insérera toutes les données de la table LateralStudent dans la table Student. Après avoir utilisé SQL INSERT INTO SELECT, la table Student ressemblera à ceci :

ROLL_NO NOM ADRESSE TÉLÉPHONE Âge
1 RAM Delhi 9455123451 18
2 RAMÈS GURGAON 9562431543 18
3 SUJIT ROHTAK 9156253131 20
4 SURESH Delhi 9156768971 18
3 SUJIT ROHTAK 9156253131 20
2 RAMÈS GURGAON 9562431543 18
7 SOUVIK DUM DUM 9876543210 18
8 NIRAJ NOIDA 9786543210 19
9 QUELQUE CHOSE ROHTAK 9687543210 20

Méthode 2 ( insertion de colonnes individuelles):

INSERT INTO Student(ROLL_NO,NAME,Age) SELECT ROLL_NO, NAME, Age FROM LateralStudent ;

Résultat :

Cette requête insérera les données des colonnes ROLL_NO, NAME et Age de la table LateralStudent dans la table Student. Les colonnes restantes de la table Student seront définies sur null . Après avoir utilisé SQL INSERT SELECT, la table ressemblera à ceci :

ROLL_NO NOM ADRESSE TÉLÉPHONE Âge
1 RAM Delhi 9455123451 18
2 RAMÈS GURGAON 9562431543 18
3 SUJIT ROHTAK 9156253131 20
4 SURESH Delhi 9156768971 18
3 SUJIT ROHTAK 9156253131 20
2 RAMÈS GURGAON 9562431543 18
7 SOUVIK Nul nul 18
8 NIRAJ Nul nul 19
9 QUELQUE CHOSE Nul nul 20
  • Sélection de lignes spécifiques à insérer:

Résultat :

Cette requête sélectionnera uniquement la première ligne de la table LateralStudent à insérer dans la table Student. Après avoir utilisé INSERT SELECT, le tableau ressemblera à ceci :

ROLL_NO NOM ADRESSE TÉLÉPHONE Âge
1 RAM Delhi 9455123451 18
2 RAMÈS GURGAON 9562431543 18
3 SUJIT ROHTAK 9156253131 20
4 SURESH Delhi 9156768971 18
3 SUJIT ROHTAK 9156253131 20
2 RAMÈS GURGAON 9562431543 18
7 SOUVIK DUM DUM 9876543210 18

Cette publication est une traduction de l'article « SQL INSERT INTO Statement », préparé par l'équipe du projet amical.

Syntaxe générale :

a) insérer une nouvelle ligne dans le tableau :

INSÉRER<таблица>[(Colonnes)]

VALEURS

b) Insertion d'une ou plusieurs lignes dans le tableau extraites de la source spécifiée dans la sous-requête :

INSÉRER<таблица>[(Colonnes)]