Exercises - Sébastien Combéfis

mardi 31 mars 2015
Sébastien Combéfis
Séance d’exercices
Langage SQL et modèle relationnel
1
SQL DDL
1. Écrire les requêtes de création de table pour les tables suivantes. Déterminez la clé primaire et
les contraintes d’unicité.
(a) Série télé
Nom
Saisons
Créateur
Année création
CSI : Las Vegas
John Doe
Cougar Town
15
1
6
Anthony E. Zuiker
Brandon Camp ; Mike Thompson
Bill Lawrence ; Kevin Biegel
2000
2002
2009
(b) Aéroport
Code
Ville
Pays
BRU
CRL
SFO
TLL
Bruxelles
Charleroi
San Francisco
Tallinn
Belgique
Belgique
USA
Estonie
(c) Chaine
Numéro
Nom
Langue
40
42
31
285
125
La Une HD
RTL-TVI HD
Canvas HD
Rai 1
National Geographic FR
Français
Français
Néerlandais
Italien
Français
(d) Produit
Nom
Prix
Péremption
Fromage 100g
Œufs de Pâques 500g
4.99
12
17 avril 2015
31 mai 2015
2. Les requêtes suivantes sont-elles valides ? Justifiez.
(a)
1
2
3
4
5
6
CREATE TABLE fruit (
name VARCHAR (20) NOT NULL ,
colors VARCHAR (50) ,
origin CHAR (2) NOT NULL ,
PRIMARY KEY ( barcode )
);
(b)
1
2
3
4
CREATE TABLE person (
nom VARCHAR (20) NOT NULL PRIMARY KEY ,
prenom VARCHAR (20) NOT NULL PRIMARY KEY
);
(c)
1
2
3
4
5
CREATE TABLE game (
nom VARCHAR (20) NOT NULL PRIMARY KEY UNIQUE ,
genre VARCHAR (20) NOT NULL ,
prix FLOAT DEFAULT ’ ABC ’
);
Année académique 2014–2015
—
Langage SQL et modèle relationnel
1
mardi 31 mars 2015
Sébastien Combéfis
2
SQL DML
1. Écrire les requêtes suivantes en SQL :
(a) Sélectionner tous les aéroports (code, ville et pays)
(b) Sélectionner le nom de toutes les séries télé
(c) Sélectionner le numéro et le nom de toutes les chaines en français
(d) Sélectionner tous les produits (nom) par ordre croissant de date de péremption
(e) Sélectionner le nom et les créateurs des séries télé qui ont au moins deux saisons et créées en
2000 ou après
2. Combien de lignes les requêtes suivantes renvoient-elles ?
(a) SELECT * FROM Aéroport ORDER BY Code ASC
(b) SELECT Numéro FROM Chaine WHERE Langue = ’Français’
(c) SELECT DISTINCT Pays FROM Aéroport
(d) SELECT * FROM Produit WHERE EXTRACT (year FROM Péremption) IN (2014, 2015)
(e) SELECT Code FROM Aéroport WHERE Pays LIKE ’B%’
3. Donnez la table après exécution des instructions suivantes :
(a) DELETE FROM Produit
(b) UPDATE FROM Chaine SET Numéro = Numéro + 1
(c) UPDATE Aéroport SET Pays = ’BE’ WHERE Pays = ’Belgique’
(d) INSERT INTO Aéroport VALUES (’FRA’, ’Francfort’, ’Allemagne’)
(e) DELETE FROM Produit WHERE Péremption BETWEEN ’2015-04-01’ AND ’2015-04-31’
3
Modèle relationnel
1. Soient les trois relations suivantes :
— CLIENT(regnat, nom, prenom)
— PRODUIT(barcode, nom, prix)
— COMMANDE(regnat, barcode, quantité)
(a) Traduisez les opérations suivantes en SQL :
i. PRODUIT[nom, prix]
ii. COMMANDE(regnat) * CLIENT(regnat)
iii. PRODUIT(prix <= 100)
iv. (COMMANDE(barcode) * PRODUIT(barcode)) [nom, quantite, regnat]
(b) Traduisez les requêtes suivantes en SQL :
i. La liste de toutes les commandes de moins de 100 euros
ii. La liste des commandes passées, avec le prix total
iii. La liste des commandes passées, avec le nom et prénom du client, le nom du produit et le
prix total
iv. La liste des clients ayant passé au moins une commande
Année académique 2014–2015
—
Langage SQL et modèle relationnel
2