Database
 sql >> Base de données >  >> RDS >> Database

SQL INSERT pour les débutants

Cet article contient du SQL de base INSERT instructions que les débutants peuvent utiliser pour insérer des données dans leurs tables de base de données.

Syntaxe de base

La syntaxe de base pour insérer des données dans SQL ressemble à ceci :

INSERT INTO TableName (Column1, Column2, Column3, ...)
VALUES (Value1, Value2, Value3, ...);

Où :

  • TableName est le nom de la table dans laquelle vous souhaitez insérer des données
  • Column1 , etc sont les noms des colonnes dans lesquelles vous souhaitez insérer des données
  • Value1 , etc sont les valeurs que vous insérez dans ces colonnes. L'ordre de ces valeurs doit correspondre à l'ordre dans lequel vous avez répertorié les colonnes (c'est-à-dire Value1 va dans Column1 , etc.).

Vous pouvez omettre les noms de colonne si vous insérez des valeurs dans toutes les colonnes. Dans ce cas, vous pouvez utiliser la syntaxe suivante :

INSERT INTO TableName
VALUES (Value1, Value2, Value3, ...);

Notez que certains SGBD utilisent une syntaxe plus complexe que celle-ci (c'est-à-dire qu'ils offrent plus d'options), mais c'est généralement la syntaxe de base requise pour insérer des données dans une table.

Insérer dans toutes les colonnes

Voici un exemple de base qui insère des données dans toutes les colonnes du tableau :

INSERT INTO PetTypes
VALUES( 1, 'Bird' );

Dans ce cas, il y a deux colonnes dans PetTypes table, et nous insérons des valeurs dans les deux colonnes, par conséquent, nous n'avons pas besoin de spécifier les noms de colonne.

La déclaration ci-dessus revient à faire ceci :

INSERT INTO PetTypes( PetTypeId, PetType )
VALUES( 1, 'Bird' );

Nous pouvons vérifier nos données en exécutant un SELECT déclaration.

SELECT * FROM PetTypes;

Résultat :

+-------------+-----------+
| PetTypeId   | PetType   |
|-------------+-----------|
| 1           | Bird      |
+-------------+-----------+

Insérer dans certaines colonnes

Voici un exemple simple qui insère des données dans certaines colonnes du tableau :

INSERT INTO Users( UserId, FirstName, LastName )
VALUES( 1, 'Lansell', 'Letterman' );

Ce tableau comporte en fait quatre colonnes, mais nous n'insérons des données que dans trois de ces colonnes. Nous pouvons le voir lorsque nous exécutons un SELECT déclaration par rapport à la table après avoir inséré les données.

SELECT * FROM Users;

Résultat :

+----------+-------------+------------+-----------------------------+
| UserId   | FirstName   | LastName   | DateInserted                |
|----------+-------------+------------+-----------------------------|
| 1        | Lansell     | Letterman  | 2020-11-21 05:18:50.0029455 |
+----------+-------------+------------+-----------------------------+

Comment insérer des valeurs dans le mauvais ordre

La méthode de liste de colonnes vous permet d'insérer des données qui ne sont pas dans le même ordre :

INSERT INTO Users( LastName, FirstName, UserId )
VALUES( 'Pitt', 'Bart', 2 );

Dans cet exemple, j'ai réorganisé l'ordre des colonnes et leurs valeurs respectives. Heureusement, la liste des colonnes fournit au SGBD des indications sur l'endroit où chaque valeur doit être insérée.

Alors maintenant, si nous sélectionnons nos données, nous verrons qu'elles ont été insérées dans les bonnes colonnes.

SELECT * FROM Users;

Résultat :

+----------+-------------+------------+-----------------------------+
| UserId   | FirstName   | LastName   | DateInserted                |
|----------+-------------+------------+-----------------------------|
| 1        | Lansell     | Letterman  | 2020-11-21 05:18:50.0029455 |
| 2        | Bart        | Pitt       | 2020-11-21 05:30:07.4456867 |
+----------+-------------+------------+-----------------------------+

Insérer le résultat d'une requête

Il est également possible d'insérer le jeu de résultats d'une requête dans une table. Il existe plusieurs approches que vous pouvez adopter avec cela.

  • Utilisez le INSERT INTO... SELECT déclaration. Dans ce cas, vous devez d'abord créer la table avant d'y insérer un jeu de résultats de requête.
  • Utilisez l'instruction CREATE TABLE … AS SELECT. Cette méthode crée automatiquement une nouvelle table basée sur le jeu de résultats de la requête, puis insère ces résultats dans la table. Bien que cette méthode soit conforme au standard SQL, elle n'est pas prise en charge par tous les SGBD.
  • Utilisez le SELECT INTO déclaration. Ceci est similaire à l'option précédente. Il crée automatiquement une nouvelle table basée sur le jeu de résultats de la requête, puis insère ces résultats dans la table. Si la méthode précédente (CREATE TABLE ... AS SELECT ) n'est pas pris en charge par votre SGBD, essayez cette méthode.