Vous êtes sur la page 1sur 4

Test dvaluation SQL

Informations sur les tables et les colonnes


Deux tables seront utilises :
La table COURSES reprsente le catalogue des diffrents cours.
La table SESSIONS contient des donnes sur les cours organises.

Exemple :
Dans la table COURSES est repris le cours SQL-Workshop (avec entre-autre lintitul et le
numro de rfrence). La table SESSIONS mentionne les sessions organises pour ce cours
SQL-Workshop (avec entre-autre la date et le formateur). Le lien entre les tables SESSIONS et
COURSES est tabli laide de la colonne S_CID.

- CID: obligatoire, alphanumrique: numro du cours (cl primaire).


- CTITLE: obligatoire, alphanumrique: titre du cours.
- CDUR: obligatoire, numrique: dure du cours (numro de jours).

CID CTITLE CDUR


7890 DB2 5
7910 Unix 4
8500 Oracle 5
8000 SQLServer 5
9000 SQL workshop 3

La signification des colonnes est la suivante :


- SNO: obligatoire, numrique: numro de session (cl primaire).
- S_CID: optionnel, alphanumrique: numro du cours donn lors dune session
particulire (cl trangre faisant rfrence la table COURSES).
- SDATE: optionnel: date de dbut dune session particulire.
- SINSTRUCTOR: obligatoire, alphanumrique: personne qui est dsigne comme
formateur pour une session particulire.
- SCANCEL: optionnel, alphanumrique: indique si une session est annule ou pas (C
signifie que la session est annule, vide (NULL) signifie pas annule)

SNO S_CID SDATE SINSTRUCTOR SCANCEL


10 7890 2005-12-02 DE KEYSER
11 7910 2005-11-04 SMITHS
12 7890 2006-01-08 DE KEYSER C
13 7890 2006-02-02 DE KEYSER
14 8000 2006-04-05 TAVERNIER C
15 7910 2006-01-08 ADAMSON C
16 8500 2006-04-05 ADAMSON
17 9000 2006-06-07 ADAMSON

1
1. Quelles questions correspondent le mieux aux requtes suivantes ?

SELECT *
FROM COURSES
WHERE CTITLE LIKE '%SQL%' AND CID NOT IN ('7800','7820')

O Donne toutes les lignes de la table des cours dont la colonne CTITLE est gale %SQL% et dont le
contenu de la colonne CID est ni 7800, ni 7820.

O Donne toutes les lignes de la table des cours dont la colonne CTITLE est gale %SQL% et dont le
contenu de la colonne CID ne se situe pas entre 7800 et 7820.

O Donne toutes les lignes de la table des cours dont la colonne CTITLE contient les caractres SQL et
dont le contenu de la colonne CID ne se situe pas entre 7800 et 7820.

O Donne toutes les lignes de la table des cours dont la colonne CTITLE contient les caractres SQL et
dont le contenu de la colonne CID est ni 7800, ni 7820.

SELECT CID, CDUR - 1,' = PRICE'


FROM COURSES
ORDER BY 2

O Slectionnez trois colonnes de la table COURSES, dont la troisime a la valeur constante =


PRICE. Laissez une ligne vide aprs chaque deuxime ligne.

O Slectionnez deux colonnes de la table COURSES, dont la deuxime reoit comme titre = PRICE.
Triez les donnes selon la deuxime colonne en ordre croissant.

O Slectionnez trois colonnes de la table COURSES, dont la troisime a la valeur constante =


PRICE. Triez les donnes selon la deuxime colonne en ordre croissant.

O Slectionnez deux colonnes de la table COURSES, dont la deuxime a la valeur constante =


PRICE. Triez les donnes selon la deuxime colonne en ordre croissant.

2. Quelles tables correspondent le mieux aux rsultats des requtes suivantes?

SELECT S_CID, MAX(SNO)


FROM SESSIONS
GROUP BY S_CID
ORDER BY 2

O
S_CID MAX(SNO)

7890 13
7910 15

2
O
S_CID MAX(SNO)

7890 13 O
8000
S_CID 14
MAX(SNO)
7910 15
8500
7890 16
10,12,13
9000
7910 17
11,15

O
S_CID MAX(SNO)

9000 17

3. Quelles requtes fournissent les informations demandes par les questions suivantes?

Donnez une liste de tous les cours qui ont eu lieu au moins deux fois.

O SELECT S_CID, COUNT(S_CID) FROM SESSIONS WHERE SCANCEL IS NULL GROUP BY S_CID
HAVING COUNT(*) >=2
O SELECT S_CID, COUNT(*) FROM SESSIONS WHERE SCANCEL IS NULL AND COUNT(*) >= 2
O SELECT CID, COUNT(CID) FROM COURSES WHERE COUNT(CID) >= 2
O SELECT CID, COUNT(*) FROM COURSES GROUP BY CID HAVING COUNT(*) >= 2

Donnez, par numro de cours, la liste de sessions, et indiquez selles sont annules ou pas.
Triez le rsultat par cours et par la colonne SCANCEL.

O SELECT S_CID, SNO, SCANCEL FROM SESSIONS ORDER BY S_CID, SCANCEL


O SELECT S_CID, SNO, SCANCEL FROM SESSIONS GROUP BY S_CID ORDER BY SCANCEL
O SELECT S_CID, SNO, SCANCEL FROM SESSIONS GROUP BY SNO ORDER BY S_CID, SCANCEL
O SELECT S_CID, SNO, SCANCEL FROM COURSES, SESSIONS ORDER BY CID, SCANCEL, SNO

4. Afficher le nom et le prnom des employs qui ont envoy des commandes en Fvrier dont
la quantit est suprieure 5.

Employees

ID Nom Prnom
1 achene Dominique
2 Dubois Matieu
3 goffinet Antonie

Commandes

CommandeID EmployeeID Date envoi Quantite


1280 2 commande
13/01/2015 5
1281 2 25/01/2015 7

3
1282 1 25/01/2015 1
1283 3 01/02/2015 2
1284 2 13/02/2015 4
1285 1 21/02/2015 10
1286 3 21/02/2015 1
1287 2 27/02/2015 3

--------------------------------------------------------------------------------------------------------------

--------------------------------------------------------------------------------------------------------------

--------------------------------------------------------------------------------------------------------------

--------------------------------------------------------------------------------------------------------------

--------------------------------------------------------------------------------------------------------------

--------------------------------------------------------------------------------------------------------------

5. Rajouter une ligne la table commande illustrant la quantit totale. Ci-dessous le rsultat
attendu.

CommandeID EmployeeID Date envoi Quantite


1280 2 commande
13/01/2015 5
1281 2 25/01/2015 7
1282 1 25/01/2015 1
1283 3 01/02/2015 2
1284 2 13/02/2015 4
1285 1 21/02/2015 10
1286 3 21/02/2015 1
1287 2 27/02/2015 3
33

--------------------------------------------------------------------------------------------------------------

--------------------------------------------------------------------------------------------------------------

--------------------------------------------------------------------------------------------------------------

--------------------------------------------------------------------------------------------------------------

--------------------------------------------------------------------------------------------------------------

--------------------------------------------------------------------------------------------------------------