جمهورية جيبوتي
RÉPUBLIQUE DE DJIBOUTI
Ministère De l’Enseignement Supérieur et de la
recherche Scientifique
وزارة التعليم العالي
UNIVERSITEDEDJIBOUTI جامعة جيبوتي
Chapitre 5 : Le langage de manipulation des données(DML)
1. Insertion des données
1.1. La requête INSERT
Cette requête permet d’insérer les données dans une table.
Syntaxe :
INSERT INTO nom_de_table [(column_name[,columnname]…)]
Values (value[,value……]) ;
[(column_name[,columnname]…)] Permet de définir les colonnes dans lesquelles les valeurs seront
insérées. Si l’insertion se fait dans toutes les colonnes. Cette
clause sera retirée de l’ordre INSERT
Values (value[,value……]) Permet de définir les valeurs à rajouter dans les colonnes de la
table.
Lorsqu’on utilise un ordre INSERT avec la clause VALUES, une seule ligne est insérée dans la
table. Si vous insérez une nouvelle ligne qui contient des valeurs pour chaque colonne, la liste de
colonnes n’est pas obligatoire dans la clause INSERT. Cependant si la liste de colonnes n’est pas
spécifiée, les valeurs doivent être entrées en respectant l’ordre par défaut des colonnes de la table.
Voici la structure de la table DEPT.
Exemple :
Explication : cette requête INSERT ne nouvelle ligne dans la table DEPT.
1.2. Insertion des nouvelles lignes avec des valeurs nulles
1
Il existe deux méthodes pour insérer les valeurs nulles.
Méthode Description
Implicite Ne pas mettre la colonne dans la liste
Explicite Spécifier le mot clé Null dans la liste des valeurs, spécifier une chaîne vide (‘ ’) dans
la liste des valeurs pour les chaines de caractères et dates.
Vous devez être sûr que la colonne dans laquelle vous insérez les valeurs nulles ne possède la
contrainte NOT NULL. Pour vérifier utiliser la commande DESCRIBE sur la table.
Méthode implicite :
Méthode explicite :
1.3. Insertion de valeurs Spéciales
Vous pouvez utiliser des fonctions pour insérer les valeurs spéciales dans la [Link] :
Explication : Cette requête ajoute une nouvelle ligne à la table EMP. Grâce à SYSDATE la date
du jour est insérée dans la colonne [Link] pouvez alors vérifier que l’ajout a été effectué.
1.4. Insertion des dates
Si vous devez entrer la date dans un format autre que le format par défaut, (par exemple avec un
siècle diffèrent) vous devez utiliser la fonction TO_DATE
Exemple :
Explication : cette requête ajoute une nouvelle ligne à la table EMP. La valeur stockée dans la
colonne HIREDATE est 3 février [Link] :
2
Explication : Dans cette requête la valeur qui sera insérée dans la colonne HIREDATE sera
[Link] vous utilisez le formatage RR, le système fournit automatiquement le bon siècle.
1.5. La requête INSERT avec une sous-requête
Il est possible d’utiliser une sous-requête dans la clause INSERT INTO à la place du nom de la
table. Le nombre de colonnes dans la clause SELECT de la sous-requête doit être identique au
nombre de colonnes contenues dans la clause [Link] :
Vérification :
1.6. Utilisation du mot clé DEFAULT
Grâce au mot clé DEFAULT, vous pouvez insérer la valeur par défaut définie sur la colonne. Si
aucune valeur par défaut n’est définie, Oracle insère la valeur [Link] :
1.7. Créations des scripts
Vous pouvez utiliser des fichiers scripts dans les requêtes INSERT. Pour ce faire, vous devez
utiliser les variables de [Link] :
3
Explication : cette requête ajoute des informations dans la table DEPT après avoir demandé les
valeurs de variables de substitution aux utilisateurs.
1.8. Requête Copie depuis une autre table
Vous pouvez ajouter des lignes dans une table lorsque ces lignes se situent dans une autre table.
Vous devez utiliser une sous-requête à la place de la clause VALUES.
INSERT INTO table [column (, column)]subquery ;
Le nombre de colonnes passes dans la clause INTO doit correspondre au nombre de colonnes
sélectionnées dans la requête SELECT.
2. Modification des données
2.1. La requête UPDATE
Il est possible grâce à l’ordre UPDATE de modifier des valeurs de colonnes dans les tables.
UPDATE table
SET column=value[,column=value…]
[WHERE condition];
Exemple:
Explication: cette requête augmente le salaire de SMITH de 20%.Vous pouvez vérifier votre mise
à jour en utilisant la requête SELECT.
2.2. Mise à jour de deux colonnes à l’aide d’une sous-requête
Il est possible d’utiliser des sous-requêtes pour effectuer les mises à jour de plusieurs
[Link] table
SET colonne= (select colonne
From table
Where condition)
[colonne= (SELECT colonne
FROM table
Where condition)]
[WHERE condition];
4
Exemple :
Explication : Cette requête met à jour la table EMP, en augmentant le salaire de SMITH de 20% et
en changeant son job à SALESMAN.
2.3. Mise à jour des données d’une autre table
Grâce à l’utilisation des sous-requêtes, on peut aussi mettre à jour les lignes d’une autre
[Link] :
Explication : Cette requête met à jour la table COPY_EMP basée sur les valeurs de la table EMP.
2.4. Utilisation du mot clé DEFAULT
Grâce au mot clé DEFAULT, vous pouvez utiliser la valeur par défautdéfinie sur la colonne. Si
aucune valeur par défaut n’est définie, Oracle initialise la colonne à [Link] :
2.5. les contraintes d’intégrité lors de la mise à jour
Les contraintes d’intégrité permettent de vérifier que les données respectent un ensemble de règles
définies. Donc si vous essayez de mettre à jour les valeurs qui possèdent des contraintes
d’intégrité une erreur vous sera retourné[Link] :
3. Suppression des données
3.1. La requête DELETE
Pour effacer une ou plusieurs lignes d’une table, il suffira d’utiliser la commande DELETE dont
voici la syntaxe :
5
DELETE [FROM] table
WHERE condition;
Si vous utilisez DELETE sans la clause WHERE, toutes les lignes de la table seront
supprimé[Link] :
Vous pouvez spécifier les lignes à supprimer dans la clause WHERE. Exemple :
3.2. Suppression des données d’une autre table
En utilisant une sous-requête dans la clause WHERE, vous pouvez supprimer les lignes de la table
grâce aux valeurs basées sur une autre [Link] :
Explication : Cette requête supprime les employés qui travaillent dans le département
RESEARCH. La sous-requête recherche dans la table DEPT, le département nommé
RESEARCH.
3.3. Les contraintes d’intégrité lors de la suppression
Vous ne pouvez pas supprimer une entrée qui possède une clé primaire référencée par une clé
étrangère existante. La requête vous retournera une erreur, car on ne peut pas supprimer
l’enregistrement parent qui possède des enregistrements [Link] :
Explication : on essaye de supprimer les lignes de la table DEPT lorsque DEPTNO est égal à 10.
Cela n’est pas possible car la table EMP possède la colonne DEPTNO. Cette colonne est la clé
étrangère de la colonne DEPTNO de la table DEPT.