Vous êtes sur la page 1sur 5

FACULTÉ DES SCIENCES ET TECHNIQUES DÉPARTEMENT D’INFORMATIQUE

UNIVERSITÉ SIDI MED BEN ABDELLAH

Série TD -TP
Partie A: Langage SQL: LDD (CREATE, ALTER, DROP) et LMD (INSERT, UPDATE,
DELETE).
Soient les tables suivantes :
Table : client
numcli nom adresse localité
1 Alami 9 Rue G-D La fontaine Meknès
2 Ibrahimi 101 Boulevard Royal Tanger
3 Ibrahimi 33 Rue de Zinzibar Tanger
4 Marzouq 6 Rue de Paris Fès
5 Zorro 32 Rue Alhouria Rabat
6 Aach 1 Rue du 18 novembre Marrakech

Table : commande Table ; produit


numcom date numcli npro libelle prixU
1 2.1.2014 2 1 CHEV. SAPIN 200x6x2 75,00
2 2.1.2014 3 2 CHEV. SAPIN 200x6x4 120,00
3 5.2.2014 2
3 CHEV. SAPIN 400x6x4 220,00
4 3.3.2014 4
4 POINTE ACIER 45 (20K) 105,00
Table : detailCom
numcom npro qcom
1 1 25
1 4 60
2 3 20
2 4 30
3 2 120
3 1 20
4 4 260

1. Création des tables


Dans une nouvelle base de données, nommée gestion_commandes_sql, et à l’aide du langage SQL,
créer la structure des tables Client, Produit, Commande et DetailCom en choisissant les types
appropriés pour les colonnes.
2. Modification de la structure d’une table
2.1 Formulez la requête SQL pour augmenter la taille de la colonne localité, de la table Client, à 45
caractères.
2.2 Formulez la requête SQL pour ajouter la colonne téléphone à la table Client.
2.3 Formulez la requête SQL pour supprimer la colonne téléphone de la table Client.
3. Définition des contraintes d’intégrité au moment de la création de la
table
Créer une nouvelle version de la table Client, nommée Client2, mais cette fois-ci avec les
contraintes d’intégrité suivantes :
 numcli  : est une clé primaire.
 Nom  : est un champ non vide toujours renseigné.
 Adresse  : est un champ unique et toujours renseigné.

~ 1/3~
N’oublier pas d’attribuer des noms à ces contraintes : vous suivez la configuration suivante
pour nommer les contraintes : nomtable_nomclonne_typedelacontarainte
Comme exemple pour nommer la contrainte clé primaire sur la colonne numcli on utilise le nom
: « client_numcli_pk ».

4. Suppression des contraintes


Donner les commandes SQL permettant de supprimer toutes les contraintes
définies dans la table Client2.
5. Suppression des tables
A l’aide du SQL, supprimer la table Client2.

6. Définition des contraintes d’intégrité après création des tables


Formulez les requêtes SQL pour ajouter, avec des noms de contraintes, les contraintes
suivantes :
 numcli de la table client : est une clé primaire.
 nom du client de la table client  : est un champ non vide toujours renseigné.
 numcom de la table commande : est une clé primaire.
 numcli de la table commande : est une clé étrangère.
 numcli de la table client : est une clé primaire.
 npro de la table produit : est une clé primaire.
 (npro, numcom) de la table detailCom : est une clé primaire.
 npro de la table detailCom : est une clé étrangère.
 numcom de la table detailCom : est une clé étrangère.

7. Définition des indexes


7.1 Formulez la requête SQL pour créer un indexe sur la colonne nom de la table Client.
7.2 Formulez la requête SQL pour supprimer l’indexe créé à la question précédente.

8. Ajout des données à une table : INSERT


8.1 Formulez les requêtes SQL pour insérer les lignes de toutes les tables.
8.2 Formulez la requête SQL pour ajouter le client suivant : (4, Alaoui, 8 Grand Rue, Fès). Est-ce
qu’on peut ajouter ce client ? Justifier.
8.3 Formulez la requête SQL pour ajouter le client suivant : (11, Tazi, Rue Principale 10). Est-ce
qu’on peut ajouter ce client ? Justifier.
8.4 Formulez la requête SQL pour ajouter la commande suivante : (5, 5.1.2014, 10). Est-ce qu’on
peut ajouter cette commande ? Justifier.
8.5 Formulez la requête SQL pour ajouter l’enregistrement suivant (numcom=1, npro=1, qcom=2)
dans la table DetailCom. Est-ce qu’on peut ajouter cet enregistrement ? Justifier.

9. Modification des lignes d’une table : UPDATE


9.1 Formulez la requête SQL pour modifier le n° de la commande 4 en 5. Est-ce qu’on peut faire
cette modification ? Justifier.
9.2 Formulez la requête SQL pour modifier l’enregistrement (numcom=1, npro=1, qcom=25) en
(numcom=1, npro=1, qcom=30) dans la table DetailCom. Est-ce qu’on peut faire cette modification ?
Justifier.
9.3 Est-ce qu’on peut remplacer dans la commande N° 2 le client N°3 par le client N° 1 ?
Justifier.

10. Surpression des lignes d’une table : DELETE


10.1 Formulez la requête SQL pour supprimer le client N° 4. Est-ce qu’on peut supprimer ce client ?
Justifier.

~ 2/3 ~
10.2 Est-ce qu’on peut supprimer le client N° 7 ? Justifier.

~ 3/3~
Partie A : Schéma de la base de données : on dispose des 4 tables suivantes :

– enseignant(numens, nom , prenom, dateNaissance)


– cours(numcours, nom , nombreHeures, #numens )
– resultat(#numetu, #numcours, note )
– etudiant(numetu , nom , prenom , adresse , codePostale , ville , dateNaissance)

I. Requêtes de base : sélection, projection, tri et jointure


1. Les noms de tous les étudiants enregistrés dans la base de données. (même question

sans répétition de noms).

2. Les étudiants habitant à Fès.

3. Les numéros et noms de tous les étudiants habitant une ville dont la valeur est toujours

non encore renseignée.

4. L’âge de tous les étudiants inscrits en cours intitulé « Bases de données ».

5. Les notes avec les intitulées des cours de l’étudiant numéro 4239 triées en ordre

croissant des notes.

6. Les notes avec les intitulées des cours de l’étudiant Ibrahimi Ali triées en ordre

décroissant des notes.

7. Les numéros et noms de tous les enseignants de l’étudiant Ibrahimi Ali triés en ordre

alphabétique.

8. Les numéros et noms de tous les étudiants de l’enseignant numéro 87.

9. Les enseignants intervenant dans au moins un des cours enregistrés dans la base de

données.

II. Requêtes sur les regroupements


Utilisation des opérations d’agrégation (COUNT, MAX, MIN, AVG) et des clauses GROUP BY

et HAVING.

1. Le nombre d’enseignants enregistrés dans la base de données.

2. Pour chaque étudiant : son numéro, son nom et le nombre de ses notes.

3. Pour chaque étudiant : son numéro, son nom, sa note minimale, sa note maximale et

l’écart entre ses deux notes extrêmes et sa moyenne générale.

4. Les enseignants intervenant dans exactement deux cours.

5. Les enseignants intervenant dans au moins trois cours, en affichant le numéro et le nom

des enseignants ainsi que le nombre des cours. Le résultat est trié en ordre décroissant du

nombre de cours et en ordre croissant sur le nom.

~ 4/3 ~
6. Afficher pour chaque étudiant : son numéro, son nom et la mention "Réussi" ou

"Ajourné". Utiliser le fonction de choix IIF.

7. Les étudiants de Fès dont le volume horaire est inférieur à 500 heures (tous cours

confondus).

~ 5/3~

Vous aimerez peut-être aussi