Maison / Travailler sur Internet / Requête SQL INSERT INTO - remplissez la base de données avec des informations. Bases de T-SQL. Syntaxe DML SQL pour insérer une commande de ligne

Requête SQL INSERT INTO - remplissez la base de données avec des informations. Bases de T-SQL. Syntaxe DML SQL pour insérer une commande de ligne

L'instruction INSERT insère de nouveaux enregistrements dans une table. Dans ce cas, les valeurs des colonnes peuvent être des constantes littérales ou être le résultat de l'exécution d'une sous-requête. Dans le premier cas, une instruction INSERT distincte est utilisée pour insérer chaque ligne ; dans le second cas, autant de lignes seront insérées que retournées par la sous-requête.

La syntaxe de l'opérateur est la suivante :

    INSÉRER DANS [ (,...) ]

    (VALEURS(,…))

  1. | (LES VALEURS PAR DÉFAUT)

Comme vous pouvez le voir dans la syntaxe présentée, la liste des colonnes est facultative (les crochets dans la description de la syntaxe l'indiquent). Si elle est manquante, la liste des valeurs insérées doit être complète, c'est-à-dire fournir des valeurs pour toutes les colonnes du tableau. Dans ce cas, l'ordre des valeurs doit correspondre à l'ordre spécifié par l'instruction CREATE TABLE pour le tableau dans lequel les lignes sont insérées. De plus, ces valeurs doivent être du même type de données que les colonnes dans lesquelles elles sont saisies. À titre d'exemple, envisagez d'insérer une ligne dans la table Product créée par l'instruction CREATE TABLE suivante :

    Produit CRÉER UNE TABLE

    maker char (1) NON NULL,

    modèle varchar(4) NON NULL,

    tapez varchar(7) NON NULL

Supposons que vous souhaitiez ajouter à ce tableau le modèle de PC 1157 du fabricant B. Cela peut être fait avec l'instruction suivante :

    INSÉRER DANS LE PRODUIT

    VALEURS ("B" , 1157 , "PC" ) ;

Si vous spécifiez une liste de colonnes, vous pouvez modifier leur ordre « naturel » :

    INSÉRER DANS LE Produit (type, modèle, fabricant)

    VALEURS ("PC" , 1157 , "B" ) ;

Il semblerait qu'il s'agisse d'une fonctionnalité totalement inutile, qui ne fait que rendre la conception plus encombrante. Cependant, il gagne si les colonnes ont des valeurs par défaut. Considérez la structure de tableau suivante :

    CREATE TABLE produit_D

    fabricant char (1) NULL,

    modèle varchar(4) NULL,

    tapez varchar (7) NON NULL PAR DÉFAUT "PC"

Notez qu'ici les valeurs de toutes les colonnes ont des valeurs par défaut (les deux premières sont NULL et la dernière colonne est de type - PC). On pourrait maintenant écrire :

    INSERT INTO Product_D (modèle, fabricant)

    VALEURS(1157, "B");

Dans ce cas, la valeur manquante lors de l'insertion d'une ligne sera remplacée par la valeur par défaut - PC. Notez que si une colonne ne reçoit pas de valeur par défaut dans une instruction CREATE TABLE et qu'une contrainte NOT NULL est spécifiée pour interdire l'utilisation de NULL dans cette colonne de table, alors la valeur par défaut de NULL est supposée.

La question se pose : est-il possible de ne pas spécifier de liste de colonnes et néanmoins d'utiliser les valeurs par défaut ? La réponse est oui. Pour cela, au lieu de préciser explicitement la valeur, utilisez le mot réservé DEFAULT :

    INSÉRER DANS Produit_D

    VALEURS ("B" , 1158 , PAR DÉFAUT ) ;

Puisque toutes les colonnes ont des valeurs par défaut, pour insérer une ligne avec des valeurs par défaut vous pouvez écrire :

    INSÉRER DANS Produit_D

    VALEURS(DÉFAUT, DÉFAUT, DÉFAUT);

Cependant, dans ce cas, il existe une construction spéciale VALEURS PAR DÉFAUT (voir la syntaxe de l'opérateur), avec laquelle l'opérateur ci-dessus peut être réécrit sous la forme

    INSÉRER DANS LES VALEURS PAR DÉFAUT Product_D ;

Notez que lors de l'insertion d'une ligne dans le tableau, toutes les restrictions imposées sur cette table. Il peut s'agir de contraintes clés primaires ou indice unique, contraintes de vérification de type CHECK, contraintes d'intégrité référentielle. Si une contrainte n’est pas respectée, l’insertion de ligne sera rejetée. Considérons maintenant le cas de l'utilisation d'une sous-requête. Supposons que nous devions insérer dans la table Product_D toutes les lignes de la table Product liées aux modèles Ordinateur personnel(type = 'PC'). Étant donné que les valeurs dont nous avons besoin se trouvent déjà dans un tableau, la génération manuelle des lignes insérées est, d'une part, inefficace et, d'autre part, peut permettre des erreurs de saisie. L'utilisation d'une sous-requête résout ces problèmes :

L'utilisation du symbole « * » dans la sous-requête est justifiée dans ce cas, puisque l'ordre des colonnes est le même pour les deux tables. Si ce n'était pas le cas, une liste de colonnes devrait être appliquée soit dans l'instruction INSERT, soit dans la sous-requête, soit dans les deux, qui correspondrait à l'ordre des colonnes :

Ici, comme auparavant, vous ne pouvez pas spécifier toutes les colonnes si vous souhaitez utiliser les valeurs par défaut existantes, par exemple :

Dans ce cas, la colonne type de la table Product_D sera remplacée par la valeur par défaut PC pour toutes les lignes insérées.

Notez que lors de l'utilisation d'une sous-requête contenant un prédicat, seules les lignes pour lesquelles la valeur du prédicat est VRAI (et non INCONNU !) seront insérées. En d’autres termes, si la colonne type de la table Product était NULLable et que cette valeur était présente dans un certain nombre de lignes, ces lignes ne seraient pas insérées dans la table Product_D.

La technique artificielle consistant à utiliser une sous-requête qui forme une ligne avec la clause UNION ALL vous permet de surmonter la limitation de l'insertion d'une ligne dans l'instruction INSERT lors de l'utilisation du constructeur de ligne dans la clause VALUES. Ainsi, si nous devons insérer plusieurs lignes à l’aide d’une seule instruction INSERT, nous pouvons écrire :

    INSÉRER DANS Produit_D

    SELECT "B" AS maker, modèle 1158 AS, type "PC" AS

    UNION TOUS

    SELECT "C", 2190, "Ordinateur portable"

    UNION TOUS

    SELECT "D" , 3219 , "Imprimante" ;

L'utilisation de UNION ALL est préférable à UNION même si l'absence de lignes en double est garantie, puisque dans ce cas aucune vérification ne sera effectuée pour éliminer les doublons.

Il convient de noter que l'insertion de plusieurs tuples à l'aide du constructeur de lignes est déjà implémentée dans Système de gestion de bases de données relationnelles (SGBD), développé par Microsoft Corporation.Structured Query Language) est un langage informatique universel utilisé pour créer, modifier et manipuler des données dans des bases de données relationnelles. serveur SQL 2008. Compte tenu de cette possibilité, la dernière requête peut être réécrite comme suit :

    INSÉRER DANS LES VALEURS Product_D

    ("B", 1158, "PC"),

    ("C", 2190, "Ordinateur portable"),

La requête SQL INSERT INTO a du sens lorsqu'une table de base de données a été créée. Autrement dit, la table existe, a un nom, des lignes et des colonnes créées. le tableau est créé par l'opérateur : , le tableau est modifié par l'opérateur .

requête SQL INSERT INTO - syntaxe de requête

La requête SQL INSERT INTO a la syntaxe suivante :

INSERT INTO nom_table (entre parenthèses, si nécessaire, insérez une liste de colonnes dans lesquelles vous souhaitez insérer des données) VALEURS données insérées1, données insérées2, données insérées3.

Vous pouvez insérer une option IGNORE entre INSERT et INTRO. Ce n’est pas obligatoire. Nécessaire pour protéger les clés primaires lors de la modification d'une table. Sinon, si la duplication des clés primaires se produit lors de l'édition, lors de l'insertion de l'option IGNORE, la première ligne avec la clé primaire restera dans le tableau en cours d'édition. Les autres clés primaires seront supprimées. Par défaut, nous omettons cette option.

Il existe des options facultatives LOW_PRIORITY et DELAYED. Ils déterminent les priorités d'ajout d'informations à la base de données. Le premier spécifie l'attente de la libération de la base de données, le second signifie la mise en mémoire tampon des informations.

La ligne dans la requête : INSERT avec la phrase VALUES vous permettra d'ajouter une seule ligne à la table de la base de données. La clause VALUES contient les valeurs de ces données.

Des sous-requêtes peuvent être spécifiées à la place de l'expression VALUES. INSERT avec une sous-requête ajoute les lignes renvoyées par la sous-requête à la table. Le serveur de base de données traite la sous-requête et insère toutes les lignes renvoyées dans la table. Le serveur n'insère pas de lignes à moins que la sous-requête ne les sélectionne.

  • subquery_1 - une sous-requête que le serveur traite de la même manière que la vue
  • subquery_2 est une sous-requête qui renvoie les lignes insérées dans la table. La liste de cette sous-requête doit avoir le même nombre de colonnes que la liste de colonnes INSERT.

Les sous-requêtes ne sont pratiquement pas utilisées dans une base de données MySQL.

Exemples de requête SQL INSERT INTO dans une base de données MySQL

Nous insérons de nouvelles lignes dans la base de données MySQL à l'aide de la commande INSERT INTRO.

Premier exemple.

Insérez de nouvelles lignes dans la table nom_table.

INSERT INTO table_name VALUES ('2′,'145′,'1′,'name');

Cela signifie que nous voulons insérer les valeurs 2,145,1,name dans les colonnes de la table table_name. Les colonnes n'étant pas précisées, les valeurs sont renseignées dans toutes les colonnes du tableau.

Deuxième exemple.

Insérez les informations dans les colonnes requises (spécifiées) de la table table_name.

INSERT INTO nom_table (client_client, client_sous-client, client_mail) VALUES ('nom1','sous-nom1',' [email protégé]′), ('nom2′, 'sous-nom2′,' [email protégé]′), ('nom3′, 'sous-nom3′,(' [email protégé]′);

Igor Serov spécialement pour le site "".

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 en utilisant INSÉRER 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. Ci-dessous sont différentes manières en utilisant 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.

En plus de l'instruction SELECT évoquée précédemment, le langage de manipulation de données (DML) contient trois autres instructions : INSERT, UPDATE et DELETE. Comme l'instruction SELECT, ces trois instructions opèrent soit sur des tables, soit sur des vues. Cet article traite de l'instruction INSERT et les deux autres instructions sont abordées dans l'article suivant.

Instruction INSÉRER insère des lignes (ou des parties de lignes) dans un tableau. Il y en a deux formes différentes cette consigne :

INSÉRER tab_name [(col_list)] VALEURS PAR DÉFAUT | VALEURS (( DEFAULT | NULL | expression ) [ ,...n]) INSERT INTO tab_name | view_name [(col_list)] (select_statement |execute_statement) Conventions de syntaxe

La première forme de l'instruction vous permet d'insérer une ligne (ou une partie de celle-ci) dans le tableau. Et la deuxième forme de l'instruction INSERT vous permet d'insérer dans une table le jeu de résultats d'une instruction SELECT ou d'une procédure stockée exécutée par une instruction EXECUTE. La procédure stockée doit renvoyer des données à insérer dans la table. Lorsqu'elle est utilisée avec une instruction INSERT, une instruction SELECT peut sélectionner des valeurs d'une table différente ou identique dans laquelle les données sont insérées, à condition que les types de données des colonnes correspondantes soient compatibles.

Pour les deux formulaires, le type de données de chaque valeur insérée doit être compatible avec le type de données de la colonne du tableau correspondante. Toutes les chaînes et données temporaires doivent être placées entre guillemets ; Les valeurs numériques n'ont pas besoin d'être placées entre guillemets.

Insérer une seule ligne

Pour les deux formes de l'instruction INSERT, la spécification explicite de la liste de colonnes est facultative. Ne pas lister les colonnes revient à spécifier toutes les colonnes du tableau.

Paramètre VALEURS PAR DÉFAUT insère des valeurs par défaut pour toutes les colonnes. Les colonnes avec le type de données TIMESTAMP ou la propriété IDENTITY sont insérées par défaut avec des valeurs automatiquement générées par le système. Pour les colonnes d'autres types de données, la valeur par défaut non nulle correspondante est insérée si elle est disponible, ou NULL dans le cas contraire. Si une colonne n'autorise pas les valeurs nulles et n'a pas de valeur par défaut définie, l'instruction INSERT échoue et un message s'affiche.

L'exemple ci-dessous insère des lignes dans la table Employee de la base de données SampleDb, démontrant l'utilisation d'une instruction INSERT pour insérer une petite quantité de données dans la base de données :

UTILISER SampleDb ; INSÉRER DANS LES VALEURS DE L'employé (34990, "Andrey", "Batonov", "d1"); INSÉRER DANS LES VALEURS DE L'employé (38640, "Alexey", "Vasin", "d3");

Il y en a deux différentes façons insérer des valeurs dans nouvelle ligne. L'instruction INSERT dans l'exemple ci-dessous utilise explicitement mot-clé NULL et insère la valeur NULL dans la colonne correspondante :

UTILISER SampleDb ; INSÉRER DANS LES VALEURS DES EMPLOYÉS (34991, "Andrey", "Batonov", NULL);

Pour insérer des valeurs dans certaines colonnes (mais pas toutes) d'un tableau, vous devez généralement spécifier explicitement ces colonnes. Les colonnes non spécifiées doivent soit autoriser les valeurs NULL, soit avoir une valeur par défaut définie.

UTILISER SampleDb ; INSERT INTO Employee(Id, FirstName, LastName) VALUES (34992, "Andrey", "Batonov");

Les deux exemples précédents sont équivalents. Dans la table Employee, la seule colonne qui autorise les valeurs NULL est la colonne DepartmentNumber, et toutes les autres colonnes ont été désactivées par la clause NOT NULL dans l'instruction CREATE TABLE.

Ordre des valeurs dans Offre VALEURS Les instructions INSERT peuvent différer de l'ordre spécifié dans l'instruction CREATE TABLE. Dans ce cas, leur ordre doit correspondre à l'ordre dans lequel les colonnes correspondantes sont répertoriées dans la liste des colonnes. Vous trouverez ci-dessous un exemple d'insertion de données dans un ordre différent de celui d'origine :

UTILISER SampleDb ; INSERT INTO Employee(DepartamentNumber, LastName, Id, FirstName) VALUES ("d1", "Batonov", 34993, "Andrey");

Insérer plusieurs lignes

La deuxième forme de l'instruction INSERT insère une ou plusieurs lignes sélectionnées par une sous-requête dans la table. L'exemple ci-dessous montre comment insérer des lignes dans un tableau à l'aide de la deuxième forme de l'instruction INSERT. Dans ce cas, une requête est exécutée pour sélectionner les numéros et les noms des départements situés à Moscou, et l'ensemble de résultats résultant est chargé dans une nouvelle table créée précédemment.

La nouvelle table MoscowDepartment créée dans l'exemple ci-dessus comporte les mêmes colonnes que la table Department existante, à l'exception de la colonne Location manquante. La sous-requête de l'instruction INSERT sélectionne toutes les lignes de la table Department pour lesquelles la valeur de la colonne Location est « Moscou », qui sont ensuite insérées dans la nouvelle table créée au début de la requête.

L'exemple ci-dessous montre une autre façon d'insérer des lignes dans un tableau en utilisant la deuxième forme de l'instruction INSERT. Dans ce cas, une requête est exécutée pour sélectionner les matricules, les numéros de projet et les dates de début du projet pour tous les employés occupant le poste « Manager » qui travaillent sur le projet p2, puis charge l'ensemble de résultats résultant dans une nouvelle table créée au début de la requête:

UTILISER SampleDb ; CREATE TABLE ManagerTeam (EmpId INT NOT NULL, ProjectNumber CHAR (4) NOT NULL, EnterDate DATE); INSÉRER DANS ManagerTeam (EmpId, ProjectNumber, EnterDate) SELECT EmpId, ProjectNumber, EnterDate FROM Works_on WHERE Job = "Manager" ;

Avant d'insérer des lignes à l'aide de l'instruction INSERT, les tables MoscowDepartment et ManagerTeam (dans les exemples ci-dessus) étaient vides. Si le tableau existait déjà et contenait des lignes contenant des données, de nouvelles lignes y seraient ajoutées.

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 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 à tableau existant, la construction copie les données dans une 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.