Exercices SELECT#
Téléchargez la base de données d'une université et ouvrez la avec DB Browser for SQLite. En utilisant des requêtes SELECT ... FROM ... WHERE ... répondez aux questions suivantes. base de données
Quel est le numéro d'étudiant de Dayanis Oldehaver ?
En quelle salle est donné le cours « Database systems » ?
Combien d'étudiants ont 23 ans ou plus ?
Quels sont les deux cours donnés en R201 ?
Quel cours commence à 14h en salle R403 ?
Combien d'étudiants sont inscrits au cours « Relativity » ?
Combien d’étudiants en année « Freshman » (FR) étudient soit la physique, soit les maths ?
Quel est le nom complet de l'étudiant dont le nom commence par « Bly » ?
Combien d'élèves sont inscrits dans un cours ayant le mot « engineering » dans leur nom ?
Combien de directeurs de faculté (FNAME) ont un « x » ou un « y » dans leur nom ?
Combien d’élèves ont entre 17 et 20 ans (y compris) et sont en années « FR » ou « SO » ?
Solution
1--1
2select SNUM from student
3where sname like '%Daya%';
4--ou
5select SNUM from student
6where sname = 'Dayanis Oldehaver';
7--1504
8
9--2
10select room from course
11where cname = 'Database systems';
12--R102
13
14--3
15select count(*) from student
16where age >=23;
17--132
18
19--4
20select CNAME from course
21where room = 'R201';
22--Materials engineering
23--Engineering drawing
24
25--5
26select * from course
27where room = 'R403'
28and MEETS_AT = '14:00:00';
29--Condensed matter physics
30
31--6
32select count(*) from enrolled
33where cname = 'Relativity';
34--28
35
36--7
37select count(*) from student
38where YEAR = 'FR'
39and (major = 'PHY' or major = 'MA');
40
41--ou
42select count(*) from student
43where YEAR = 'FR'
44and major in ('PHY','MA');
45--36
46
47--8
48select * from student
49where sname like 'Bly%';
50--Blythe Raskop
51--ici, nous ne mettons pas de % au début,
52--car nous recherchons des noms qui commencent par "Bly",
53--nous n'attendons donc rien avant le texte "Bly", mais seulement après.
54
55--9
56select count(*) from enrolled
57where cname like '%engineering%';
58--186
59
60--10
61select count(*) from faculty
62where fname like '%x%'
63or fname like '%y%';
64
65--11
66select count(*) from student
67where age >=17 and age <=20
68and (year = 'FR' or year = 'SO');
69--Ici, les parenthèses sont obligatoires pour respecter la logique demandée
70--dans la question. Sans elles, nous sélectionnerions tous les élèves
71--de la classe 'SO', sans tenir compte de leur âge.
72
73--ou
74select count(*) from student
75where age >=17 and age <=20
76and year in('FR','SO');
77--129