Documente Academic
Documente Profesional
Documente Cultură
langages des
Cours SGBD 5 Bases de
Données
Relationnelles
Cours SGBD 1
Sommaire
Cours SGBD 2
SQL Sous-requête
• Une sous-requête (aussi appelé « requête imbriquée » ou « requête en
cascade ») consiste à exécuter une requête à l’intérieur d’une autre
requête. Une requête imbriquée est souvent utilisée au sein d’une clause
WHERE ou de HAVING pou remplacer une ou plusieurs constante.
SELECT *
FROM `table`
WHERE `nom_colonne` IN
( SELECT `colonne`
FROM `table2`
WHERE `cle_etrangere` = 36 )
Cours SGBD 3
SQL EXISTS
Cours SGBD 4
SQL EXISTS
• Exemple:
SELECT ref,designation
FROM f_produits fp JOIN f_stocks fs ON fp.ref = fs.ref
where fs.qte =0 and
exists (
select * from f_facturesdet fd
where fp.ref = fd.ref
);
Cours SGBD 5
SQL ALL
Cours SGBD 6
SQL ANY / SOME
Cours SGBD 7
SQL Commentaires
Cours SGBD 8
SQL UPDATE
UPDATE table_name
SET column1 = value1, column2 = value2, ...
WHERE condition;
Exemple :
UPDATE f_clients SET ville=‘CASA’
WHERE ville=‘CASABLANCA’
Cours SGBD 9
SQL DELETE
Cours SGBD 10
SQL CREATE VIEW
Une vue (VIEW) est une relation virtuelle, exprimée en termes
d'une requête SQL.
Les vues permettent :
• de simplifier l'expression des requêtes ;
• de définir des sous-ensembles de la BD sur lesquels il sera
possible de spécifier des droits d'accès.
Cours SGBD 12
Mise à jour au travers d'une vue
Pour être utilisée pour une mise à jour, une vue doit vérifier les
conditions suivantes :
• La vue ne doit pas inclure la clause DISTINCT.
• Chaque élément de la clause SELECT doit être un nom de colonne.
• La clause FROM ne doit contenir qu'une seule table, elle-même
modifiable.
• La clause WHERE ne doit pas contenir de sous-requête.
• La vue ne doit contenir ni clause GROUP BY, ni clause HAVING.
Cours SGBD 13
EXERCICES.
1 - Fixer une remise de 20% sur tous les téléviseurs LED. (table f_produits)
2 - Ajouter une colonne plafond á la table f_clients. (plafond de crédit à accorder á chaque client)
3 - Remplir les plafond de crédit pour chaque client de la façon suivante:
Plafond = 100.000dh pour les clients dont le CA <= 100.000
Plafond = 200.000dh pour les clients dont le CA est compris entre 100.001 et 200.000
Plafond = 300.000dh pour les clients dont le CA est compris entre 200.001 et 300.000
Plafond = 400.000dh pour les clients dont le CA > 300.001
4 - Créer une table f_avoirs (avoir,date,refclient,facture,montant)
5 - donner un avoir de 5% sur le montant de la facture pour chaque facture dont le montant est
supérieur ou égale á 150.000dh
6 - donner un avoir de 3% sur le montant de la facture pour chaque facture dont le montant est
inférieur á 150.000dh
Cours SGBD 14
7 - Rapport des factures avec valeur nette.
8 - Rapport de clients avec chiffre d’affaires.
9 - Rapport des ventes (Quantité et CA) par produit.
Cours SGBD 15
Concept de transaction
événement signification
Cours SGBD 17
Propriétés d'une transaction
ACID :
• Atomicité
• Cohérence
• Isolation
• Durabilité
Cours SGBD 18
Atomicité
• Soit toutes les modifications effectuées par une transaction sont
enregistrées dans la BD, soit aucune ne l'est.
• Si une transaction est confirmée (commit), toutes les modifications
qu'elle a effectuées sont enregistrées dans la BD et rendues visibles
aux autres utilisateurs.
• Si une transaction est interrompue (rollback), alors aucune de ces
modifications n'est enregistrée dans la BD.
Cours SGBD 19
Cohérence
• Une transaction fait passer une BD d'un état cohérent à un autre état
cohérent.
Cours SGBD 20
Isolation
Cours SGBD 21
Durabilité
read A
read A
A = A + 10
write A A = 20
A = A + 50
write A A = 60
Cours SGBD 23
• Lecture impropre (données incohérentes)
BD
A + B = 200
T1 T2
A = 120
B = 80
read A
A = A - 50
write A A = 70
read A
read B
display A + B
(150 est affiché)
read B
B = B + 50
write B B = 130
Cours SGBD 24
• Lecture impropre (données non confirmées)
BD
T1 T2
A = 50
A = 70
write A A = 70
read A
(70 est lu)
rollback
(La valeur initiale de A est A = 50
restaurée)
Cours SGBD 25
• Lecture non reproductible
BD
T1 T2
A = 10
read A
(10 est lu)
A = 20
write A A = 20
read A
(20 est lu)
Cours SGBD 26
Des questions ?
Cours SGBD 27