Partie I : Question de cours voir le cours dans Téléchargement
Partie II : Soit le schéma relationnel suivant (Clé Primaire, Clé étranger#):
1) Formuler à l’aide de l’algèbre relationnel les requêtes suivantes :
R1 <= Sélection (Commande, NumProd=102)
R2 <= Jointure (R1, Client, R1.NumCli=Client.NumCli)
Résultat <= Projection (R2, Nom, Prenom)
R1 <= Clients / Commande (division de la relation Clients sur Commande)
Résultats <= Client – R1 (Différence)
2)Donner la représentation graphique de ces deux requêtes.
3)Formuler à l’aide du Langage SQL les requête suivantes :
- Liste des clients (nom, prénom) qui ont commandé le produit n° 102.
Select nom, prenom from Client Where NumCli IN (Select NumCli From Commande Where NumProd=102)
- Nom des clients qui ont commandé au mois un produit de prix supérieur ou égal à 500.
Select * From Client
Where NumCli IN (
Select NumCli From Commande
Where NumProd IN (
Select NumProd From Produit
Where PrixU >=500)))
- Nom des clients qui n’ont commandé aucun produit.
Select * From Client
Where NumCli Not IN (
Select NumCli From Commande)
- Nom des clients qui n’ont pas commandé le produit n° 101.
Select * From Client
Where NumCli IN (
Select NumCli From Commande
Where NumProd101)
- Nom des clients qui ont commandé tous les produit.
Select Nom From Client INNER JOIN Commande ON Client.NumCli=Commande.NumCli#
Where NumPro# in (Select NumPro From Produit)
Group by NumCli
Having Count (DISTINCT NumPro#)=(Select Count(DISTINCT NumPro) From Produit)
Partie III :
4) Formuler à l’aide du langage SQL l’instruction pour la création de la table Client :
Client (NumCli, Nom, Prenom, DateNaiss, CP, Rue, Ville).
Create Table Client
(NumCli int,
Nom varchar(50),
Prenom varchar(50),
DateNaiss Datetime,
CP int,
Rue varchar(100),
Ville varchar(50))