Bienvenue à la neuvième leçon ‘Manipuler vos données’ du tutoriel SQL, qui fait partie du cours de formation SQL. Dans cette leçon, nous allons parler des instructions INSERT, UPDATE et DELETE de SQL.
Objectifs
À la fin de cette leçon, vous serez capable de :
-
Expliquer l’instruction INSERT et comment elle peut être utilisée
-
Décrire la requête UPDATE à l’aide d’exemples
-
Expliquer l’instruction DELETE à l’aide d’exemples
L’instruction INSERT
L’instruction INSERT est l’une des trois instructions appartenant à la partie diteappelée « langage de manipulation des données » du SQL – c’est-à-dire INSERT, UPDATE, et DELETE.
Ces trois instructions permettent de modifier des données dans la base de données, sans en changer la structure mais en modifiant le contenu. Elles sont différentes de l’instruction SELECT, qui vous permet seulement de lire les données de la base de données.
L’instruction INSERT vous permet donc d’ajouter de nouveaux enregistrements à votre table de base de données. Généralement, elle est utilisée pour ajouter des enregistrements à la fin de la table. Une chose qui est importante chaque fois que vous faites INSERT est que vos données doivent satisfaire toutes les règles dans votre base de données.
Considérez l’image montrée ci-dessous:
Premièrement, nous regardons la table Personne comme un exemple. Ici, nous avons la clé primaire. Les clés primaires de cette base de données sont précédemment réglées sur des incréments automatiques dans notre SQL.
Nous n’insérons jamais la clé primaire nous-mêmes, nous laissons cela à la base de données. Ensuite, nous avons un prénom et un nom de famille, qui ont un drapeau NOT NULL. Le losange solide indique que ces champs sont obligatoires, nous ne pouvons pas les sauter.
En dernier lieu, il y a le timestamp, qui est NOT NULL, mais en même temps, la valeur par défaut est le timestamp actuel. Donc, encore une fois, cela définirait automatiquement un horodatage actuel si nous ne mettons aucune date là-dedans.
Si nous devons insérer des enregistrements dans une autre table, nous devons nous assurer que les données existent réellement. Donc, dans ces sortes de tables de bout en bout ou sur n’importe quel type de situation de clé étrangère, vous devez toujours vous assurer que les données que vous y insérez représentent réellement des valeurs valides dans les tables référencées.
Utilisons à nouveau notre table Personne comme point de départ.
La table Personne au départ est telle que présentée.
Considérez un exemple montré ci-dessous:
select * from person
insert into person
values (7, ‘Martin’, ‘Holzke’, ‘1980-05-05’, ‘xxx’, now());
Nous ne pouvons insérer que dans une table à la fois. Vous pouvez joindre des données à l’aide de la fonction SELECT, mais traditionnellement, vous pouvez faire des manipulations de données sur une seule table à la fois.
Ce que nous avons considéré dans l’exemple ci-dessus est l' »insertion implicite ». Cela signifie que nous ne mentionnons pas les colonnes que nous voulons remplir, nous devons toutes les mettre exactement dans l’ordre dans lequel la table existe.
L’insertion fera correspondre automatiquement les nouvelles valeurs aux colonnes de la table.
Note : Pour l’instruction d’insertion, de mise à jour et de suppression, nous devons garder à l’esprit que les bases de données n’ont pas de bouton d’annulation. Donc, une fois que vous avez envoyé des valeurs, elles sont stockées dans la base de données.
Puisque nous apprenons l’insertion implicite, nous devons spécifier les valeurs pour chaque colonne. Donc, voir la table de la base de données dans le même écran aide énormément.
Maintenant, si nous exécutons le code ci-dessus, vous pouvez voir que la table a été mise à jour et l’enregistrement inséré peut être vu en position 7.
De plus, l’instruction d’insertion ne renvoie rien, contrairement à l’instruction SELECT. C’est pourquoi l’écran reste vide par la suite.
A la suite, voyons la version explicite, dont l’utilisation est fortement recommandée.
select * from person
insert into person (firstname, lastname, managerid, dob)
values (‘Martin’, ‘Holzke’, 5, ‘1980-05-05’);
Dans l’exemple ci-dessus, nous avons juste mentionné 4 valeurs de la table. Le reste est rempli par défaut. Lorsque nous exécutons la requête, nous voyons que les nouvelles valeurs ont été ajoutées à la table.
La valeur de la clé primaire est 9 et non 8 car cette valeur car elle a déjà été utilisée à un moment donné dans la base de données.
Ceci est avantageux à des fins de sécurité car la clé primaire ne peut pas être réutilisée et les erreurs peuvent être identifiées.
Nous voyons également que la valeur de la colonne ‘created’ est définie avec l’horodatage actuel alors que nous ne le mentionnons pas explicitement.
Puis, pour effectuer des insertions multiples, nous pouvons exécuter la requête ci-dessus, encore et encore, en utilisant différentes valeurs.
Les insertions multiples peuvent être effectuées en utilisant une seule instruction d’insertion. Nous ajoutons le nouvel ensemble de valeurs qui sont séparées par des virgules.
select * from person
insert into person (firstname, lastname, managerid, dob)
values (‘Martin’, ‘Holzke’, 5, ‘1980-05-05’),
(‘Fred’, ‘Flintstone’, 5, ‘1987-06-02’) ;
L’image suivante montre la table mise à jour lorsque des insertions multiples sont effectuées.
Puis, nous voulons faire une insertion en sélectionnant des données de la même table, vous pouvez donc copier des données ce qui s’avère assez pratique pour peupler une base de données. Par exemple, dans la migration des données, vous voulez en fait copier des données dans une base de données ou entre différentes bases de données/tables.
Le code suivant montre comment copier des données.
select * from person
insert into person (firstname, lastname, managerid, dob)
select concat(‘copie de’, firstname), lastname, managerid, dob
from person
where id>=10
L’image suivante montre les valeurs de la table lorsque nous exécutons uniquement l’instruction select.
Maintenant, nous exécutons la requête avec l’instruction d’insertion. Cela peut être fait juste en sélectionnant les déclarations que nous souhaitons exécuter et en exécutant cette requête.
L’image suivante montre comment la table a été modifiée après l’exécution de la requête ci-dessus.
Hence, nous avons vu comment la copie des valeurs en utilisant l’instruction d’insertion peut peupler la base de données. Nous peuplons généralement la base de données lorsque nous exécutons les requêtes dans un environnement de test.
SQL – Update Query
La requête ou l’instruction de mise à jour est la deuxième des trois instructions du langage de manipulation des données, qui sont INSERT, UPDATE et DELETE. Donc, la requête UPDATE vous permet de modifier les enregistrements existants dans une table.
Puisque nous parlons du SQL comme d’un langage basé sur les ensembles, la requête UPDATE fonctionnera sur un ensemble d’enregistrements et non sur un seul enregistrement (selon la façon dont vous exécutez votre UPDATE).
Alors, comment faisons-nous toutes nos mises à jour ?
Considérez la requête donnée ci-dessous :
select * from person
where id = 10
update person
set dob = ‘1990-01-01’
where id = 10
Dans la requête ci-dessus, nous sélectionnons d’abord les enregistrements de la table Person dont l’id est égal à 10. L’image suivante montre la valeur qui est sélectionnée.
Puis nous utilisons la requête Update pour définir le DOB pour l’enregistrement dont l’id est 10. Si nous n’utilisons pas l’instruction where, cela mettra à jour chaque enregistrement de notre table à la valeur définie.
Lors de l’exécution de la requête ci-dessus, nous voyons que la valeur du dob pour la 10e entrée de la table a été mise à jour.
Maintenant, pour mettre à jour plusieurs choses dans un enregistrement, nous pouvons utiliser la liste séparée par des virgules.
Considérez la requête présentée ci-dessous :
select * from person
where id = 10
update person
set dob = ‘1990-01-01’, firstname = ‘Mike’
where id = 10
En exécutant la requête ci-dessus, nous obtenons la table mise à jour comme indiqué :
Puis, si nous voulons modifier plus d’un enregistrement, nous pouvons faire ce qui suit :
select * from person
where firstname = ‘Martin’
update person
set firstname = ‘Mike’
where firstname = ‘Martin’
Dans la requête ci-dessus, nous avons changé la valeur du prénom de Martin à Mike, où qu’elle existait précédemment dans la table Person.
Envisageons un autre exemple:
La table person n’avait pas la possibilité de faire un peu plus de choses numériques, alors considérons la table project.
Ici, nous essayons de prendre un scénario où une manipulation sur l’ensemble de la table pourrait être souhaitable.
La table des projets a trois enregistrements en ce moment, comme indiqué.
Chaque enregistrement a une valeur de budget. Disons que nous voulons les améliorer tous d’environ 20%. Nous pouvons le faire en utilisant la requête présentée ci-dessous :
select * from project
update project
set budget = budget*1.2
Donc la requête ci-dessus augmenterait maintenant tous les enregistrements de la table de projet de vingt pour cent.
Les enregistrements mis à jour sont indiqués ci-dessous :
Il est donc possible d’effectuer de nombreuses opérations mathématiques sur les valeurs comme dans l’exemple ci-dessus.
Une chose à retenir lors de l’utilisation de l’instruction UPDATE est d’utiliser la clause ‘where’ chaque fois que cela est applicable. Sinon, elle mettra à jour les valeurs de toutes les entrées de la table.
SQL DELETE Statement
Etudions maintenant l’instruction DELETE, qui est la dernière des trois instructions du langage de manipulation des données. L’instruction DELETE a la capacité de supprimer un ou plusieurs enregistrements dans leur intégralité. Nous ne parlons pas de la suppression du contenu de colonnes individuelles car nous ne pouvons pas le faire.
Si vous voulez le faire, vous devez utiliser l’instruction UPDATE pour modifier le contenu des colonnes individuelles. Donc, DELETE est la suppression d’un enregistrement complet ou de plusieurs enregistrements complets.
Comme applicable avec l’instruction INSERT et UPDATE, une fois que vous supprimez une série d’enregistrements, ils ont disparu et il n’y a aucun moyen de les récupérer.
Nous devons également nous assurer que lorsque nous supprimons un enregistrement de la table, cette entrée (ou sa valeur) n’est pas utilisée par une autre table.
La table personne a les entrées initiales suivantes .
L’instruction DELETE peut être utilisée comme le montre la requête suivante :
select * from person
where id = 10
delete from person
where id = 10
Dans la requête présentée ci-dessus, nous avons supprimé l’enregistrement dont la valeur d’id était 10.
Note : N’oubliez pas d’utiliser la clause ‘where’ avec l’instruction DELETE. Sinon, l’instruction videra rapidement votre table de personnes sans la clause ‘where’
Lorsque nous exécutons la requête ci-dessus, nous constatons que l’entrée avec la valeur d’id 10 a été supprimée et la table mise à jour est comme indiqué. Tout le reste reste, sauf celui avec une clé primaire dix.
Il y a des situations où nous voulons nous débarrasser d’un bloc entier. Par exemple, nous souhaitons supprimer toutes les entrées de copie de la table personne comme indiqué.
La requête pour supprimer tous les enregistrements de copie de la table des personnes est présentée ci-dessous :
select * from person
where firstname like ‘copy%’
delete from person
where firstname like ‘copy%’
Dans la requête ci-dessus, ‘copy%’ indique les déclarations qui commencent par copy et se poursuivent par n’importe quel mot further.
En exécutant la requête ci-dessus, nous pouvons voir que tous les enregistrements qui ont commencé par ‘Copy’ ont été supprimés de la table des personnes.
Note : Il est toujours recommandé d’utiliser l’instruction DELETE pour une table à la fois. Il n’est pas recommandé d’utiliser cette instruction dans le cas de tables conjointes.
Conclusion
Avec ceci, nous sommes arrivés à la fin de cette leçon sur la ‘Manipulation de données en SQL’. La prochaine leçon se concentre sur le contrôle des transactions.
{{lectureCoursePreviewTitle}}. Voir la transcription Regarder la vidéo
Pour en savoir plus, suivez le cours
Formation de certification SQL
Aller au cours
Pour en savoir plus, suivez le cours
Formation SQL Training Certification Training Allez au cours
.