Le SQL permet la modification d'une table par un utilisateur (pour peu qu'il ait les droits
suffisants...). La modification d'une table consiste à:
- ajouter des tuples
- modifier des tuples existants
- ou bien supprimer des tuples
L'insertion de nouvelles données dans une table se fait grâce à l'ordre
INSERT, qui permet d'insérer de nouvelles lignes dans la table.
L'ordre INSERT attend la clause INTO, suivie du nom de la table, ainsi que du nom de chacune
des colonnes entre parenthèses (les colonnes omises prendront la valeur NULL par défaut).
Les valeurs à insérer peuvent être précisées de deux façons:
- avec la clause VALUES: une seule ligne est insérée, elle contient
comme valeurs, l'ensemble des valeurs passées en paramètre dans la parenthèse
qui suit la clause VALUES. Les données sont affectées aux colonnes dans l'ordre dans
lequel les colonnes ont été déclarées dans la clause INTO
INSERT INTO Nom_de_la_table(colonne1,colonne2,colonne3,...)
VALUES (Valeur1,Valeur2,Valeur3,...)
Lorsque chaque colonne de la table est modifiée, l'énumération de l'ensemble des colonnes est
facultatif Lorsque les valeurs sont des chaînes de caractères, il ne faut pas omettre de les
délimiter par des guillemets.
- avec la clause SELECT: plusieurs lignes peuvent être insérées, elle contiennent
comme valeurs, l'ensemble des valeurs découlant de la sélection.
Les données sont affectées aux colonnes dans l'ordre dans
lequel les colonnes ont été déclarées dans la clause INTO
INSERT INTO Nom_de_la_table(colonne1,colonne2,...)
SELECT colonne1,colonne2,... FROM Nom_de_la_table2
WHERE qualification
Lorsque l'on remplace un nom de colonne suivant la clause SELECT par une constante, sa
valeur est affectée par défaut aux tuples. Il n'est pas possible de sélectionner
des tuples dans la table dans laquelle on insère des lignes (en d'autres termes Nom_de_la_table
doit être différent de Nom_de_la_table2)
La modification de données (aussi appelée mise à jour)
consiste à modifier des tuples (des lignes) dans une table grâce à l'ordre
UPDATE. La modification
à effectuer est précisée après la clause SET. Il s'agit
d'une affectation d'une valeur à une colonne grâce à l'opérateur =
suivi d'une expression algèbrique, d'une constante ou du résultat provenant d'une clause SELECT.
La clause WHERE permet de préciser les tuples sur lesquels la mise à jour aura lieu
UPDATE Nom_de_la_table
SET Colonne = Valeur_Ou_Expression
WHERE qualification
La suppression de données dans une table se fait grâce à l'ordre DELETE.
Celui-ci est suivi de la clause FROM, précisant la table sur laquelle la suppression
s'effectue, puis d'une clause WHERE qui décrit la qualification, c'est-à-dire
l'ensemble des lignes qui seront supprimées.
DELETE FROM Nom_de_la_table
WHERE qualification
L'ordre DELETE est à utiliser avec précaution car l'opération de
suppression est irréversible. Il faudra donc s'assurer dans un premier temps que les lignes
sélectionnées sont bien les lignes que l'on désire supprimer!
|
Lorsque plusieurs tables sont associées (une même colonne présente dans chacune des tables)
il est nécessaire d'être prudent lors des suppressions. Il est ainsi recommandé
de commencer par supprimer les tuples de
la table secondaire puis remonter vers la table principale (suppression en cascade ascendante).
|
|