Cours
Syntax
Vous trouverez ci-dessous le cas d'utilisation normal de "INSERT INTO" - où vous insérez des valeurs manuellement. Il est suivi du nom du tableau et d'une liste facultative de tableaux à remplir avec les données. Vient ensuite le mot-clé "VALUES" et les valeurs que vous souhaitez insérer.
INSERT INTO table_name (column_a, column_b)
VALUES ("value_a", "value_b");
INSERT DISTINCT Records INTO New Tables (Insérer des enregistrements DISTINCT dans de nouveaux tableaux)
Pour copier des données d'un tableau existant vers un nouveau tableau, vous pouvez utiliser le modèle "INSERT INTO SELECT DISTINCT". Après "INSERT INTO", vous indiquez le nom du tableau cible - organizations dans le cas ci-dessous.
Vous sélectionnez ensuite les tableaux qui doivent être copiés à partir du tableau source - unviversity_professors dans ce cas. Vous utilisez le mot-clé "DISTINCT" pour ne copier que des organisations distinctes.
INSERT INTO organizations
SELECT DISTINCT organization,
organization_sector
FROM university_professors;
Output: INSERT 0 1287
Le résultat ci-dessus montre que seuls 1287 enregistrements sont insérés dans le tableau "organisations".
En revanche, si vous utilisez "INSERT INTO SELECT", sans le mot-clé "DISTINCT", les enregistrements en double seront également copiés.
INSERT INTO organizations
SELECT organization,
organization_sector
FROM university_professors;
Output: INSERT 0 1377
Migration des données dans un nouveau tableau
Migrons les données dans de nouveaux tableaux. Vous utiliserez le modèle suivant :
INSERT INTO ...
SELECT DISTINCT ...
FROM ...;
Il peut être divisé en deux parties :
Première partie :
SELECT DISTINCT column_name1, column_name2, ...
FROM table_a;
Cette opération sélectionne toutes les valeurs distinctes du tableau table_a - rien de nouveau pour vous.
-- Insert unique professors into the new table
INSERT INTO professors
SELECT DISTINCT firstname, lastname, university_shortname
FROM university_professors;
-- Doublecheck the contents of professors
SELECT *
FROM professors;
Deuxième partie :
INSERT INTO table_b ...;
Prenez cette partie et ajoutez-la à la première, de manière à insérer toutes les lignes distinctes de table_a dans table_b.
Une dernière chose: Il est important que vous exécutiez tous les codes en même temps une fois que vous avez rempli les cases.
-- Insert unique affiliations into the new table
INSERT INTO affiliations
SELECT DISTINCT firstname, lastname, function, organization
FROM university_professors;
-- Doublecheck the contents of affiliations
SELECT *
FROM affiliations;
Pour en savoir plus sur les bases de données relationnelles en SQL, consultez cette vidéo de notre cours Introduction aux bases de données relationnelles en SQL.
Ce contenu est extrait du cours Introduction aux bases de données relationnelles en SQL de DataCamp par Timo Grossenbacher.