Dans l’article précédent, nous avons créé deux tables, et maintenant nous sommes prêts à utiliser la commande SQL INSERT INTO TABLE et à remplir ces tables avec des données. Pour ce faire, nous préparerons des instructions dans Excel, puis collerons ces instructions dans SQL Server et les exécuterons. Nous vérifierons également le contenu des deux tables avant et après ces commandes à l’aide de l’instruction SELECT. Alors, commençons.
INSÉRER DANS l’instruction de TABLE
Il est inutile de créer des structures de base de données et de ne pas avoir de données dans la base de données. L’instruction INSERT INTO TABLE est celle que nous utiliserons pour résoudre ce problème. C’est l’une des quatre importantes instructions SQL DML (Langage de manipulation de données) SELECT FROMFROM, INSERT INTO TABLE, UPDATE SET SET et DELETE FROM The La syntaxe complète est assez complexe car l’insertion DANS pourrait également être une instruction très complexe. Veuillez jeter un œil à la syntaxe T-SQL INSERT INTO TABLE complete ici.
Dans cet article, nous utiliserons une syntaxe simplifiée, mais aussi la plus courante:
INSERT INTO table_name (column_list) VALUES (column_values);
Dans une telle instruction INSERT INTO, vous devrez définir le nom de table dans lequel vous insérez des données, lister toutes les colonnes (peut-être que vous les utiliserez toutes, mais peut-être seulement quelques-unes), puis lister toutes les valeurs. Notez que les valeurs de colonne doivent correspondre à la définition des types de colonne (par exemple, vous ne pouvez pas insérer de valeur textuelle dans la colonne / attribut numérique).
Si vous insérez toutes les valeurs dans la table, vous n’avez pas besoin de lister toutes les colonnes après le nom de table et vous pouvez utiliser une syntaxe encore plus simplifiée:
INSERT INTO table_name VALUES (column_values);
Je préfère personnellement lister tous les noms de colonnes, car cette approche fonctionnerait même si nous ajoutions de nouvelles colonnes à la table existante.
-
Remarque : L’instruction INSERT INTO TABLE peut être écrite de la manière dont nous insérons plusieurs lignes avec 1 instruction ou même combinée avec l’instruction SELECT.
La syntaxe simplifiée pour un tel cas où les instructions INSERT et SELECT sont combinées est donnée ci-dessous:
INSERT INTO destination_table(column_list, …)
SELECT column_list
FROM source_table
WHERE condition;
INSERT INTO TABLE example
Avant de faire quoi que ce soit, vérifions ce qui est stocké dans nos tables. C’est le modèle que nous avons créé dans l’article précédent. Vous pouvez voir que nous avons un tableau où nous stockerons les données relatives aux pays et un autre pour les données relatives aux villes. Ils sont également liés les uns aux autres, mais nous en parlerons dans l’article suivant:
Afin de vérifier le contenu de ces deux tables, nous utiliserons deux instructions simples SELECT:
1
2
|
SÉLECTIONNEZ * DEPUIS le pays;
SÉLECTIONNEZ* DEPUIS LA ville;
|
Bien que SELECT ne soit pas le sujet de cet article, il convient de mentionner que sa syntaxe de base est la suivante:
SÉLECTIONNEZ 1 attribut ou plus DE la table;
L’étoile (*) après SELECT représente que nous voulons afficher les valeurs de tous les attributs / colonnes de cette table dans le résultat de la requête.
Comme prévu, il n’y a rien dans ces deux tables et SQL Server renvoie le résultat, comme indiqué dans l’image ci-dessous. Les instructions renvoient les noms des colonnes des tables que nous avons utilisées dans la requête SELECT, mais il n’y a rien sous ces noms de colonnes. Vous pouvez regarder cela comme une feuille Excel vide avec des noms de colonnes définis (en-têtes). Vous savez quel type de données devrait être là, mais il n’y a rien:
Maintenant, il va falloir changer ça.
Tout d’abord, nous allons remplir la table de pays en utilisant les instructions INSERT INTO TABLE suivantes:
1
2
3
4
5
|
INSERT INTO country(country_name, country_name_eng, country_code) VALEURS (‘Deutschland’, ‘Germany’, ‘DEU’);
INSERT INTO country(country_name, country_name_eng, country_code) VALEURS (‘Srbija’, ‘Serbia’, ‘SRB’);
INSERT INTO country(country_name, country_name_eng, country_code) VALEURS (‘Hrvatska’, ‘Croatie’, ‘VRC’);
INSÉRER DANS LE pays (nom_pays, nom_pays, code pays) VALEURS (‘United Stated of America’, ‘United Stated of America’, ‘USA’);
INSÉRER DANS le pays (nom_pays, nom_pays, code pays) VALEURS (‘Polska’, ‘Poland’, ‘POL’);
|
Les données de cinq pays ont été insérées avec succès. Le résultat est montré dans l’image ci-dessous. Puisque nous avions 5 instructions INSERT INTO TABLE, nous avons 1 message « (1 ligne affectée) » pour chacune de ces cinq commandes dans la section « Messages:
Veuillez noter que toutes les valeurs (après les VALEURS) ont été ordonnées de la même manière que nous avons répertorié les colonnes (après INSERTION DANS LE pays). Les trois valeurs sont des textes. La requête fonctionnerait même si nous ne les avions pas ordonnées de la bonne manière car elles ont toutes le même type de données (texte), mais les données seraient stockées dans les mauvaises colonnes. Dans ce cas, nous aurions une erreur sémantique.
La prochaine chose que nous devons faire est de remplir la table de la ville. Nous le ferons en utilisant les déclarations suivantes:
1
2
3
4
5
6
|
INSÉRER DANS city(city_name, lat, long, country_id) DES VALEURS (‘Berlin’, 52.520008, 13.404954, 1);
INSÉRER DANS city(city_name, lat, long, country_id) LES VALEURS (‘Belgrade’, 44.787197, 20.457273, 2);
INSÉRER DANS city(city_name, lat, long, country_id) LES VALEURS (‘Zagreb’, 45.815399, 15.966568, 3);
INSÉREZ DES VALEURS DANS city(city_name, lat, long, country_id) (‘New York’, 40.73061, -73.935242, 4);
INSÉRER DANS city(city_name, lat, long, country_id) LES VALEURS (‘Los Angeles’, 34.052235, -118.243683, 4);
INSÉRER DANS city(city_name, lat, long, country_id) LES VALEURS (‘Varsovie’, 52.237049, 21.017532, 5);
|
Après avoir exécuté ces instructions, c’était le résultat. Comme prévu, 6 lignes ont été ajoutées. Et une fois de plus, nous avons 1 message pour chaque insertion dans la section Messages:
Dans ce cas, nous aurions un problème si nous n’avons pas répertorié les valeurs de la même manière, nous avons répertorié les colonnes car leurs types de données ne sont pas les mêmes (ils sont – dans l’ordre: texte, nombre décimal, nombre décimal, entier). Ce type d’erreur est appelé erreur de syntaxe et le SGBD lui-même empêcherait la requête de s’exécuter.
SÉLECTIONNEZ – Vérifiez ce qui a été inséré
Maintenant, nous allons vérifier une fois de plus ce qui est stocké dans nos tables. Nous utiliserons les deux mêmes instructions SELECT que nous avons utilisées précédemment:
1
2
|
SÉLECTIONNEZ * DEPUIS le pays;
SÉLECTIONNEZ* DEPUIS LA ville;
|
Le résultat est montré dans l’image ci-dessous. Veuillez noter qu’après l’exécution des requêtes, nous avons maintenant des sections Résultats et messages sous requêtes:
Nous pouvons conclure que les deux tables de notre base de données contiennent des données et que nous sommes maintenant prêts à « jouer » avec quelque chose de bien plus cool que cela.
INSÉRER DANS LA TABLE à l’aide d’Excel
Dans de nombreux cas, vous devrez exécuter plusieurs instructions SQL en fonction de l’ensemble de données qui vous est fourni. Cela vaut non seulement pour l’instruction INSERT INTO TABLE, mais également pour les instructions UPDATE et DELETE. Il ne sert à rien de taper ces instructions manuellement, mais vous devriez plutôt opter pour une approche plus intelligente – préparer des formules (ou un script) qui automatiseront cette partie. Dans de telles situations, je préfère utiliser Excel et des formules.
Remarque: Personnellement, dans le contexte des bases de données, je trouve Excel très utile lorsque j’ai besoin de créer plusieurs déclarations et lors de la présentation de résultats et / ou de la création de tableaux de bord.
Jetons un coup d’œil à ces formules:
La formule utilisée pour insérer le premier pays (Allemagne) est:
1
|
= » INSÉRER DANS country(country_name, country_name_eng, country_code) DES VALEURS (‘ » & B2 & « ‘, ‘ » & C2 & « ‘, ‘ » & D2 & « ‘); »
|
La formule utilisée pour insérer la première ville (Berlin) est:
1
|
= » INSÉRER DANS city(city_name, lat, long, country_id) DES VALEURS (‘ »& B2 & « ‘, » & C2 & », » & D2 & », » & E2 & « ); »
|
N’hésitez pas à utiliser ces formules pour automatiser vos tâches. Nous utiliserons une approche similaire plus tard lorsque nous exécuterons plusieurs instructions UPDATE et DELETE (et même lors de la création d’instructions SELECT).
Conclusion
Dans cet article, nous avons couvert l’une des quatre instructions SQL les plus importantes – l’instruction INSERT INTO TABLE. Nous l’avons utilisé pour remplir les tables créées dans l’article précédent. C’était une condition préalable pour passer à une théorie plus intelligente de la base de données, et plus important encore, retourner les résultats de notre base de données.
Dans le prochain article, nous parlerons de la clé primaire – qu’est-ce que c’est et pourquoi est-elle importante dans les bases de données.
Table des matières
Apprendre SQL: CRÉER UNE BASE DE DONNÉES & CRÉER des opérations de TABLE
Apprendre SQL: INSÉRER DANS LA TABLE
Apprendre SQL: Clé primaire
Apprendre SQL: Clé étrangère
Apprendre SQL: Instruction SELECT
Apprendre SQL: JOINTURE INTÉRIEURE vs JOINTURE GAUCHE
Apprendre SQL: Scripts SQL
Apprendre SQL: Types de relations
Apprendre SQL: Types de relations
Apprendre SQL: Joindre plusieurs tables
Apprendre SQL: Fonctions d’agrégation
Apprendre SQL: Comment Écrire une Requête de sélection complexe
Apprendre SQL: La base de données INFORMATION_SCHEMA
Apprendre SQL: Types de données SQL
Apprendre SQL: Théorie des ensembles
Apprendre SQL : Fonctions Définies par l’utilisateur
Apprendre SQL: Procédures Stockées définies par l’utilisateur
Apprendre SQL: Vues SQL
Apprendre SQL: Déclencheurs SQL
Apprendre SQL: Requêtes SQL pratiques
Apprendre SQL: Exemples de requêtes SQL
Apprendre SQL : Créer un rapport manuellement à l’aide de requêtes SQL
Apprendre SQL : Fonctions de date et d’heure SQL Server
Apprendre SQL : Créer des rapports SQL Server à l’aide de fonctions de date et d’heure
Apprendre SQL : Tableaux croisés dynamiques SQL Server
Learn SQL: Exportation SQL Server vers Excel
Learn SQL: Introduction aux boucles SQL Server
Learn SQL: Curseurs SQL Server
Learn SQL: Bonnes pratiques SQL pour la suppression et la mise à jour des données
Learn SQL: Conventions de nommage
Apprendre SQL: Emplois liés à SQL
Apprendre SQL : Jointures non-Equi dans SQL Server
Apprendre SQL: Injection SQL
Apprendre SQL: SQL dynamique
- Auteur
- Messages récents
Ses missions passées et présentes vont de la conception et du codage de bases de données à l’enseignement, au conseil et à la rédaction de bases de données. N’oubliez pas non plus, BI, création d’algorithmes, échecs, philatélie, 2 chiens, 2 chats, 1 femme, 1 bébé…
Vous pouvez le trouver sur LinkedIn
Voir tous les messages de Emil Drkusic
- Apprendre SQL: SQL dynamique – 3 mars 2021
- Apprendre SQL: Injection SQL – 2 novembre 2020
- Apprendre SQL: Jointures non-Equi dans SQL Server – Septembre 29, 2020