Académique Documents
Professionnel Documents
Culture Documents
CHAPITRE 3
LANGAGE SQL:LMD
3A
Mme Hkimi Jihène
1.INSERT
2.UPDATE
3.DELETE
4.MERGE
2
OBJECTIFS
Décrire chaque instruction du langage de manipulation des
données (LMD).
Insérer des lignes dans une table.
Mettre à jour des lignes dans une table.
Supprimer des lignes d’une table.
Fusionner les données .
Gérer les transactions.
3
LANGAGE DE MANIPULATION DE
DONNÉES
Une instruction LMD??
Une instruction LMD est exécutée pour :
Ajouter de nouvelles lignes dans une table.
Modifier des lignes existantes d’une table.
Supprimer des lignes existantes d’une table.
Fusionner les données des tables.
Une transaction??
Une transaction est un ensemble cohérant des
modifications faites sur les données. Elle débute lorsqu’on
se connecte à la base ou lorsque la transaction précédente
se termine.
4
AJOUTER UNE NOUVELLE LIGNE À
UNE TABLE
Nouvelle
DEPARTMENTS ligne
5
SYNTAXE DE L’INSTRUCTION
INSERT
Ajouter de nouvelles lignes à une table à l’aide de
l’instruction INSERT.
6
INSÉRER DE NOUVELLES LIGNES
Insérez une nouvelle ligne contenant des valeurs pour
chaque colonne.
Répertoriez les valeurs dans l’ordre par défaut des colonnes
de la table.
Vous pouvez également indiquer les colonnes de la clause
INSERT.
7
INSÉRER DES LIGNES AVEC DES
VALEURS NULL
Méthode implicite : omettez la colonne dans la liste.
8
INSÉRER DES VALEURS SPÉCIALES
La fonction qui enregistre la date et l’heure??
La fonction SYSDATE
9
INSÉRER DES VALEURS DE DATE
SPÉCIFIQUES
Ajouter un nouvel employé.
INSERT INTO employees
VALUES (114,
'Den', 'Raphealy',
'DRAPHEAL', '515.127.4561',
TO_DATE(‘03/02/1999’, ‘DD/MM/YYYY’),
'AC_ACCOUNT', 11000, NULL, 100, 30);
1 row created.
Vérifiez l’ajout.
10
INSÉRER PLUSIEURS LIGNES
Vous pouvez également créer des ordres SQL INSERT à
l'aide de sous-requêtes.
En plaçant un "select" dans l'instruction INSERT SQL, vous
pouvez réaliser des insertions multiples rapidement.
11
MODIFIER DES DONNÉES DANS
UNE TABLE
EMPLOYEES
12
SYNTAXE DE L’INSTRUCTION UPDATE
Modifier des lignes existantes à l’aide de l’instruction
UPDATE:
UPDATE table
SET column = value [, column = value, ...]
[WHERE condition];
13
METTRE À JOUR DES LIGNES
DANS UNE TABLE
Des lignes spécifiques sont modifiées si vous indiquez la clause
WHERE :
UPDATE employees
SET department_id = 70
WHERE employee_id = 113;
1 row updated.
UPDATE copy_emp
SET department_id = 110;
22 rows updated.
METTRE À JOUR DES COLONNES
AVEC UNE SOUS-INTERROGATION
Mettez à jour le poste et le salaire de l’employé 114 afin
qu’ils correspondent à ceux de l’employé 205.
UPDATE employees
SET job_id = (SELECT job_id
FROM employees
WHERE employee_id = 205),
salary = (SELECT salary
FROM employees
WHERE employee_id = 205)
WHERE employee_id = 114;
1 row updated.
15
METTRE À JOUR DES LIGNES EN
FONCTION D’UNE AUTRE TABLE
Utilisez des sous-interrogations dans les instructions
UPDATE pour mettre à jour des lignes d’une table en
fonction des valeurs d’une autre table.
UPDATE copy_emp
SET department_id = (SELECT department_id
FROM employees
WHERE employee_id = 100)
WHERE job_id = (SELECT job_id
FROM employees
WHERE employee_id = 200);
1 row updated.
16
SUPPRIMER UNE LIGNE D’UNE TABLE
DEPARTMENTS
17
INSTRUCTION DELETE
Vous pouvez supprimer des lignes existantes d’une table à
l’aide de l’instruction DELETE:
DELETE [FROM] table
[WHERE condition];
19
L’INSTRUCTION MERGE (LA FUSION)
permet soit de mettre à jour (UPDATE ou DELETE), soit
d’insérer (INSERT), soit d’effectuer les trois types
d’opération sur des données dans une table cible. Cela
évite d’écrire des insertions ou des mises à jour ou
suppressions multiples en plusieurs commandes.
20
L’INSTRUCTION MERGE ( LA FUSION)
Le choix de l’opération dans la table cible est toujours
conditionné par la clause ON. Pour chaque enregistrement
de la table cible qui vérifie la condition, l’enregistrement
correspondant de la table source est modifié. Les données
de la table cible qui ne vérifient pas la condition
déclenchent une insertion dans la table cible, basée sur
des valeurs d’enregistrements de la table source.
La clause WHERE… de l’instruction INSERT filtre les
insertions par une condition sur la table.
21
L’INSTRUCTION MERGE (EXEMPLE 1)
22
L’INSTRUCTION MERGE (EXEMPLE 2)
Supposons qu’on désire ajouter à la paye de chaque pilote de
grade ‘CDB’ un bonus. Si un bonus est donné à un pilote
n’ayant pas encore eu de prime, il faudra ajouter ce pilote en
affectant sa paye au bonus reçu. On désire aussi supprimer
les primes des pilotes modifiés si la valeur de leur paye est
inférieure à 90. La figure suivante illustre cet exemple qui,
sans l’utilisation de l’instruction MERGE, requiert l’utilisation
d’une instruction UPDATE , DELETE et INSERT (qui serait
multiligne si plusieurs pilotes n’étaient pas référencés dans la
table Primes).
23
L’INSTRUCTION MERGE (EXEMPLE 2)
Résultat
24