C6 : Exercices

C6.E1 : Gestion d'un magasin

On considère la base de donnée constituée des deux tables suivantes :

Table Clients
id_client prénom nom
1 Alain Térieur
2 Jean Naymar
3 Nadine Greux
4 Alphonse Danleuta
Table Commandes
id_commande client date montant
1 1 2015-08-23 45
2 1 2015-09-25 102
3 4 2015-10-15 63
4 3 2015-10-29 113
5 2 2015-11-18 28

1) Donner le schéma de cette base de données.

2) Rédiger les requêtes qui permettent de répondre aux demandes suivantes :

3) Rédiger les requêtes qui permettent de répondre aux demandes suivantes :

C6.E2 : XYZ

On considère les trois tables suivantes :

table x
a b
1 1
2 2
3 2
4 2
5 1
6 9
7 1
table y
c d
9 9
10 10
11 9
12 20
13 30
14 9
15 1
16 10
17 10
table z
a c e
1 11 30
2 14 9
5 15 1
7 17 3
1 10 50
2 9 8
2 15 15
3 17 19
4 16 12
5 10 20
1 11 30
7 14 9
7 9 12

Les trois tables ne contiennent que des valeurs entières.

Dans la table x :

Dans la table y :

Dans la table z :

Partie A - Requêtes d'interrogations

1) Donner le résultat de la requête suivante :

SELECT * FROM x WHERE b > 3

2) Donner le résultat de la requête suivante :

SELECT DISTINCT e FROM z WHERE e > 10 AND e < 50

3) Donner le résultat de la requête suivante :

SELECT * FROM y WHERE c % 2 = 0 ORDER BY d ASC

4) Donner le résultat de la requête suivante :

SELECT x.a, x.b
FROM x JOIN z ON z.a = x.a
WHERE z.e < 9

5) Donner le résultat de la requête suivante :

SELECT DISTINCT x.b, y.d
FROM x JOIN z ON z.a = x.a

Partie B - Requêtes de mise à jour

Pour chaque modification ci-dessous (modification effectuée sur les tables d'origine), indiquer si elle réussi ou si elle échoue. Si elle réussi, indiquer comment la table est modifiée. Si elle échoue, indiquer pourquoi.

1) UPDATE x SET b = b + a

2) UPDATE x SET b = b -2

3) INSERT INTO z VALUES (1, 17, 1)

4) INSERT INTO z VALUES (1, 18, 1)

5) INSERT INTO z VALUES (1, 10, 1)

6) DELETE FROM y WHERE c >= 12 AND c <= 13

7) DELETE FROM y WHERE c >= 12 AND c <= 14

8) INSERT INTO y VALUES (40, 20)

9) INSERT INTO y VALUES (20, 40)

10) DELETE FROM z WHERE a % 2 = 0 OR c % 2 = 0 OR e % 2 = 0