0% ont trouvé ce document utile (0 vote)
284 vues10 pages

Auto-évaluation SQL : Test de Compétence et Analyse de Requêtes

Ce document présente un test d'auto-évaluation SQL composé de 15 questions à choix multiples. Le test vise à déterminer si un utilisateur a les connaissances de base nécessaires pour suivre efficacement un cours SQL ou si un cours introductif est recommandé. Le test utilise deux tables fictives COURSES et SESSIONS pour poser des questions sur des requêtes SQL.

Transféré par

Potey Desmanois
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
284 vues10 pages

Auto-évaluation SQL : Test de Compétence et Analyse de Requêtes

Ce document présente un test d'auto-évaluation SQL composé de 15 questions à choix multiples. Le test vise à déterminer si un utilisateur a les connaissances de base nécessaires pour suivre efficacement un cours SQL ou si un cours introductif est recommandé. Le test utilise deux tables fictives COURSES et SESSIONS pour poser des questions sur des requêtes SQL.

Transféré par

Potey Desmanois
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

INTRODUCTION AUTO-ÉVALUATION SQL

Indications d’utilisation
Ce test est une auto-évaluation. L’objectif de ce test est de déterminer s’il est utile que
vous suiviez le SQL: cours de base (1 jour) ou si vos connaissances actuelles sont suf-
fisantes pour pouvoir suivre efficacement le cours SQL workshop ou un des autres cours
qui utilisent SQL, comme les cours DB2, Oracle, MySQL ou SQLServer.
Ce test comporte 15 questions à choix multiples. Pour certaines questions, plusieurs
réponses correctes sont possibles: ceci sera bien indiqué. Cochez les solutions qui vous
semblent bonnes. Après avoir répondu à toutes les questions, vous pourrez comparer
vos réponses avec les solutions. Ce test vous prendra à peu près un quart d’heure.

Informations sur les tables et les colonnes


Deux tables seront utilisées: la table COURSES représente le catalogue des différents
cours. La table SESSIONS contient des données sur les cours organisées.
Exemple: dans la table COURSES est repris le cours SQL-Workshop (avec entre-autre
l’intitulé et le numéro de référence). La table SESSIONS mentionne les sessions organi-
sées pour ce cours ‘SQL-Workshop’ (avec entre-autre la date et le formateur). Le lien
entre les tables SESSIONS et COURSES est établi à l’aide de la colonne S_CID.
CID CTITLE CDUR
7890 DB2 5
7910 Unix 4
8500 Oracle 5
8000 SQLServer 5
9000 SQL workshop 3
- CID: obligatoire, alphanumérique: numéro du cours (clé primaire).
- CTITLE: obligatoire, alphanumérique: titre du cours.
- CDUR: obligatoire, numérique: durée du cours (numéro de jours).
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
La signification des colonnes est la suivante:
- SNO: obligatoire, numérique: numéro de session (clé primaire).
- S_CID: optionnel, alphanumérique: numéro du cours donné lors d’une session
particulière (clé étrangère faisant référence à la table COURSES).
- SDATE: optionnel: date de début d’une session particulière.
- SINSTRUCTOR: obligatoire, alphanumérique: personne qui est désignée
comme formateur pour une session particulière.
- SCANCEL: optionnel, alphanumérique: indique si une session est annulée ou
pas (“C” signifie que la session est annulée, vide (NULL) signifie pas annulée).

24/03/2010 Auto-évaluation SQL 2


QUESTIONS: AUTO-ÉVALUATION SQL
1. Qu’est-ce qu’ on peut dire de la requête suivante?

SELECT CTITLE, CID


FROM COURSES
WHERE CID = '7820'

O (a) La requête ne peut pas être exécutée (donne une erreur syntaxique).

O (b) La requête est exécutable et sensée (selon les définitions des colonnes).

O (c) La requête est exécutable mais insensée.

2. Qu’est-ce qu’ on peut dire de la requête suivante?

SELECT CTITLE
FROM SESSIONS
WHERE S_CID = '7820'

O (a) La requête ne peut pas être exécutée (donne une erreur syntaxique).
SESSIONS no contient pas de colonne CTITLE

O (b) La requête est exécutable et sensée (selon les définitions des colonnes).

O (c) La requête est exécutable mais insensée.

3. Qu’est-ce qu’ on peut dire de la requête suivante?

SELECT 'CTITLE'
FROM SESSIONS
WHERE S_CID = '7820'

O (a) La requête ne peut pas être exécutée (donne une erreur syntaxique).

O (b) La requête est exécutable et sensée (selon les définitions des colonnes).

O (c) La requête est exécutable mais insensée.


Tous les lignes résultat contiennent que le texte CTITLE, donc tous sont identique.

4. Qu’est-ce qu’ on peut dire de la requête suivante?

SELECT SDATE, DISTINCT S_CID


FROM SESSIONS
ORDER BY S_CID, SDATE

O (a) La requête ne peut pas être exécutée (donne une erreur syntaxique).
“DISTINCT” ne peut qu’être utilisé directement après SELECT.

O (b) La requête est exécutable et sensée (selon les définitions des colonnes).

O (c) La requête est exécutable mais insensée.

24/03/2010 Auto-évaluation SQL 3


5. Qu’est-ce qu’ on peut dire de la requête suivante?

SELECT SDATE
FROM SESSIONS
ORDER BY SDATE
GROUP BY SDATE

O (a) La requête ne peut pas être exécutée (donne une erreur syntaxique).
GROUP BY doit toujours se trouver avant ORDER BY.

O (b) La requête est exécutable et sensée (selon les définitions des colonnes).

O (c) La requête est exécutable mais insensée.

6. Qu’est-ce qu’ on peut dire de la requête suivante?

SELECT SNO
FROM SESSIONS
WHERE SCANCEL NOT = NULL

O (a) La requête ne peut pas être exécutée (donne une erreur syntaxique).
NULL ne peut qu’être utilisé dans les conditions “IS NULL” et “IS NOT NULL”.

O (b) La requête est exécutable et sensée (selon les définitions des colonnes).

O (c) La requête est exécutable mais insensée.

7. Quelle question correspond le mieux à la requête suivante?

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

O (a) Donne la première ligne 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 (b) 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 (c) Donne la première ligne de la table des cours dont la colonne CTITLE contient les carac-
tères SQL et dont le contenu de la colonne CID est ni 7800, ni 7820.

O (d) Donne toutes les lignes de la table des cours dont la colonne CTITLE contient les carac-
tères SQL et dont le contenu de la colonne CID est ni 7800, ni 7820.

O (e) Donne la première ligne 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 (f) 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 (g) Donne la première ligne de la table des cours dont la colonne CTITLE contient les carac-
tères SQL et dont le contenu de la colonne CID ne se situe pas entre 7800 et 7820.

O (h) Donne toutes les lignes de la table des cours dont la colonne CTITLE contient les carac-
tères SQL et dont le contenu de la colonne CID ne se situe pas entre 7800 et 7820.

24/03/2010 Auto-évaluation SQL 4


8. Quelle question correspond le mieux à la requête suivante?

SELECT CID, CDUR - 1,' = PRICE'


FROM COURSES
ORDER BY 2

O (a) Sélectionnez trois colonnes de la table COURSES, dont la troisième a la valeur cons-
tante “ = PRICE”. Laissez une ligne vide après chaque deuxième ligne.

O (b) Sélectionnez deux colonnes de la table COURSES, dont la deuxième reçoit comme titre
“ = PRICE”. Triez les données selon la deuxième colonne en ordre croissant.

O (c) Sélectionnez trois colonnes de la table COURSES, dont la troisième a la valeur cons-
tante “ = PRICE”. Triez les données selon la deuxième colonne en ordre croissant.

O (d) Sélectionnez deux colonnes de la table COURSES, dont la deuxième a la valeur cons-
tante “ = PRICE”. Triez les données selon la deuxième colonne en ordre croissant.

24/03/2010 Auto-évaluation SQL 5


9. Quelle table est le résultat de la requête suivante?

SELECT S_CID, MAX(SNO)


FROM SESSIONS
GROUP BY S_CID
ORDER BY 2

O (a)

S_CID MAX(SNO)
7890 13
8000 14
7910 15
8500 16
9000 17

O (b)

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

O (c)

S_CID MAX(SNO)
7890 13
7910 15

O (d)

S_CID MAX(SNO)
7890 10,12,13
7910 11,15

O (e)

S_CID MAX(SNO)
9000 17

24/03/2010 Auto-évaluation SQL 6


10. Quelle table est le résultat de la requête suivante?

SELECT SNO, SDATE


FROM SESSIONS
WHERE EXTRACT(YEAR FROM SDATE) = 2004
AND EXTRACT(YEAR FROM SDATE) = 2005

O (a)

SNO SDATE
10 2005-12-02
11 2005-11-04

O (b)

SNO SDATE
10 2005-12-02

O (c)

SNO SDATE
10,11 2005

O (d)

SNO SDATE
10 2005

O (e)

SNO SDATE

11. Considérez la condition suivante:

WHERE S_CID BETWEEN '7000' AND '8000'

Lesquelles des conditions suivantes expriment exactement la même chose? [2 réponses.]

[_] [a] WHERE S_CID >= '7000' AND S_CID <= '8000'

[_] [b] WHERE S_CID >= '7000' AND S_CID < '8000'

[_] [c] WHERE S_CID > '7000' AND S_CID <= '8000'

[_] [d] WHERE S_CID > '7000' AND S_CID < '8000'

[_] [e] WHERE S_CID <= '8000' AND NOT S_CID < '7000'

[_] [f] WHERE S_CID < '8000' AND NOT S_CID < '7000'

[_] [g] WHERE S_CID >= '7000' AND NOT S_CID >= '8000'

[_] [h] WHERE S_CID > '7000' AND NOT S_CID >= '8000'

24/03/2010 Auto-évaluation SQL 7


12. Quelle requête fournit les informations demandées par la question suivante? [2 réponses.]

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

[_] [a]

SELECT S_CID, COUNT(*)


FROM SESSIONS
WHERE SCANCEL IS NULL
AND COUNT(*) >= 2

[_] [b]

SELECT CID, COUNT(CID)


FROM COURSES
WHERE COUNT(CID) >= 2

[_] [c]

SELECT S_CID, COUNT(S_CID)


FROM SESSIONS
WHERE SCANCEL IS NULL
GROUP BY S_CID
HAVING COUNT(*) >=2

[_] [d]

SELECT CID, COUNT(*)


FROM COURSES
GROUP BY CID
HAVING COUNT(*) >= 2

[_] [e]

SELECT S_CID, COUNT(*)


FROM SESSIONS
WHERE SCANCEL IS NULL
GROUP BY S_CID
HAVING COUNT(S_CID) >=2

[_] [f]

SELECT CID, COUNT(*)


FROM COURSES
GROUP BY CID
HAVING COUNT(SCANCEL) = 0

[_] [g]

SELECT S_CID, COUNT(*)


FROM SESSIONS
GROUP BY S_CID
HAVING COUNT(SCANCEL) = 0

[_] [h]

SELECT CID, COUNT(SESSIONS)


FROM COURSES

24/03/2010 Auto-évaluation SQL 8


13. Quelle table contient le résultat de la requête suivante?

SELECT MAX(S_CID) AS S_CID


FROM SESSIONS
GROUP BY SINSTRUCTOR
HAVING COUNT(SDATE) > 1

O (a)
S_CID
7890
7910
8000
8500
9000
Tous les numéros de cours dans SESSIONS

O (b)
S_CID
7890
7910
8000
9000
Sans HAVING, ou en utilisant “>=” au lieu de “>”.

O (c)
S_CID
7890
7910
8000
8500
Si on avait GROUP BY sdate, et on montre tous les lignes, pas seulement ceux avec MAX(s_cid)

O (d)
S_CID
7910
8500
Si on avait GROUP BY sdate

O (e)

S_CID
7890
9000

O (f)
S_CID
9000
La valeur la plus large de la table

24/03/2010 Auto-évaluation SQL 9


14. Quelle table contient le résultat de la requête suivante?

SELECT DISTINCT S_CID


FROM SESSIONS
WHERE SCANCEL IS NULL

O (a)
S_CID
7890
7890
7910
8500
9000
Ceci est le résultat sans DISTINCT

O (b)

S_CID
7890
7910
8500
9000

O (c)
S_CID
8000
8500
9000
Ceci sont les valeurs “uniques”, donc ceux qui apparaissent qu’une seule fois (dans la table complète)

O (d)
S_CID
7910
8500
9000
Ceci sont les valeurs “uniques”, donc ceux qui apparaissent qu’une seule fois (dans les sessions non-annulées)

O (e)
S_CID
7890
7910
8000
Ceci sont les lignes pour SCANCEL IS NOT NULL

O (f)
S_CID
7890
7910
Ceci sont les lignes apparaissant plusieurs fois

24/03/2010 Auto-évaluation SQL 10


15. Quelle requête fournit les informations demandées par la question suivante? [2 réponses.]

Donnez, par numéro de cours, la liste de sessions, et indiquez s’elles sont annulées ou
pas. Triez le résultat par cours et par la colonne SCANCEL.

[_] [a]

SELECT S_CID, SNO, SCANCEL


FROM SESSIONS
GROUP BY S_CID, SCANCEL

[_] [b]

SELECT S_CID, SNO, SCANCEL


FROM SESSIONS
ORDER BY S_CID, SCANCEL

[_] [c]

SELECT S_CID, SNO, SCANCEL


FROM SESSIONS
GROUP BY S_CID
ORDER BY SCANCEL

[_] [d]

SELECT S_CID, SNO, SCANCEL


FROM SESSIONS
GROUP BY SNO
ORDER BY S_CID, SCANCEL

[_] [e]

SELECT S_CID, SNO, SCANCEL


FROM COURSES, SESSIONS
ORDER BY CID, SCANCEL, SNO

[_] [f]

SELECT S_CID, SNO, SCANCEL


FROM COURSES, SESSIONS
WHERE CID = S_CID
ORDER BY S_CID, SCANCEL, SNO

24/03/2010 Auto-évaluation SQL 11

Vous aimerez peut-être aussi