Vous êtes sur la page 1sur 4

ISTA TINGHIR

Filière: Développement Digital- Tronc commun


Module: Manipuler les bases de données
Groupe: Dev101
TP
Sous le shell de MySQL Server, réaliser les tâches suivantes :

1) Créer une BD nommée Suprette.


2) Examiner la BD créée.
3) Afficher la liste de BDs disponibles sur le serveur.
4) Sélectionner la BD Suprette.
5) En respectant les différents types de contraintes d’intégrité, créer les tables ci-dessous.
Client

codeClt nom prenom tel adresse


c1 naciri ahmed 0606100000 N 10 bloc E rue 10 tinghir
c2 souidi souad 0606200000 N 25 bloc A rue 13 tinghir
c3 tarzaoui karima 0606300000 N 67 bloc B rue 10 tinghir
c4 nouri fouad 0606400000 N 55 bloc C rue 15 tinghir
c5 kadiri brahim 0606500000 N 45 bloc R rue 16 tinghir
c6 saadaoui saida 0606600000 N 23 bloc M rue 17 tinghir

Article
numProd description cout prix dateAjout
P1 Laptop 5000 6000 2022-12-12
P2 Smartphone 2100 2600 NULL
P3 Imprimante 650.75 800 2021-11-12
P4 Smartphone 2290 7000 2021-03-19
P5 Casque 25.50 35 2018-10-30
P6 Haut-parleur 50 60 NULL
P7 Scanner 750 890 2021-10-30

Commande

idComd numProd quantite codeClt dateVente remark


120 P1 12 c4 2023-02-12 REGLE
245 P2 23 c5 2020-07-13 NULL
345 P3 56 c6 2022-07-12 RAS
487 P4 34 c1 2021-09-20 REGLE
125 P5 80 c2 2018-11-25 RAS
130 P6 18 c3 2020-01-29 REGLE

6) Insérer chaque enregistrement ci-dessus dans sa table correspondante.


7) Afficher le contenu de la table Client.

1/4
8) Ajouter à la table Article une colonne nommée nomFabricant.
9) Modifier le champ adresse de la table Client en augmentant sa taille initiale de 10
caractères.
10) Changer le nom de la colonne remark de la table Commande en remarque.
11) Supprimer la colonne nomFabricant de la table Article.
12) Renommer la table Article en Produit.
13) Supprimer, dans Commande, le champ codeClt et la contrainte d’intégrité référentielle
de la table Client.
14) Supprimer la contrainte d’intégrité de la table Client (i.e. sa clé primaire).
15) Affecter la contrainte d’intégrité de la table Client au champ tel.
16) Vérifier les changements effectués dans 14) et 15) en affichant la structure de la table
Client.
17) Rétablir la contrainte d’intégrité de la table Client au champ codeClt de celle-ci.
18) Ajouter, dans Commande, le champ codeClt et rétablir sa contrainte d’intégrité
référentielle relative à la table Client.
19) Ajouter à la table Commande une contrainte qui interdit de vendre un produit acheté
depuis moins de 10 jours.
20) Afficher la description, le cout et le prix de tous les produits.
21) Afficher, sans doublon, la description de tous les produits.
22) Trouver toutes les commandes réglées.
23) Trouver tous les produits ajoutés depuis le début de l’année 2020 et ayant un cout
supérieur à 600.
24) Le prénom du client c1 est zouhir. Corriger cette erreur.
25) La date d’ajout du produit P5 est 2019-10-10. Mettre à jour cette information.
26) La quantité vendue de P3 est 38. Mettre à jour cette information.
27) Supprimer les produits dont le cout<=30.
28) Afficher la description et prix-cout relatifs à tous les produits.
29) Refaire la question 28) en affichant le champ prix-cout sous le nom gain et ordonné
dans un ordre croissant.
30) Afficher les noms de tous les clients triés alphabétiquement.
31) Afficher tous les produits ajoutés pendant l’année 2021 dans l’ordre croissant de leur
cout.
32) Afficher toutes les commandes effectuées pendant les deux années 2022 et 2023 dans
l’ordre croissant de leur quantité.
33) Afficher, en utilisant la notion sous-requête, le produit ayant le prix minimal puis celui
ayant le cout maximal.
34) Afficher, en utilisant la notion sous-requête, la liste des produits de la table produit qui
existent sur la table Commande.

2/4
35) Afficher, en utilisant l’imbrication des requêtes, les produits dont le cout est inférieur à
tous les prix des produits.
36) Afficher, en utilisant l’imbrication des requêtes, les produits dont le prix est inferieur à
un des couts de produits.
37) Afficher les produits dont la description commence par un ‘S’.
38) Afficher, en utilisant des alias, la liste des numéros des produits, leur date d’ajout,
l’année d’ajout (Annee), Le jour de la semaine (Jour) et depuis combien de jours ils ont été
ajoutés (ancienteEnStock).
39) Afficher pour tous les produits, la désignation et la somme des couts et regroupés par
leur désignation.
40) Afficher pour tous les produits, la désignation et le nombre de produits existants,
regroupés par leur désignation.
41) Afficher, en utilisant la notion de jointure interne, pour chaque produit vendu, son prix,
sa description et la quantité qui a été vendue.
42) Trouver, en utilisant la notion de jointure gauche, les produits qui n’ont pas été
commandés.
43) Trouver, en utilisant la notion de jointure droite, les produits qui ont été commandés.
44) Réaliser le produit cartésien des deux tables Client et Produit puis des trois tables
Client, Produit et Commande.
45) En utilisant l'outil mysqldump, sauvegarder la BD Suprette dans un fichier texte.
46) Réaliser le backup des tables Client, Produit et Commande de la BD Suprette dans un
fichier SQL nommé backupTables.
47) Réaliser un backup de la structure seulement pour la table Produit dans un fichier SQL
nommé structureProd.
48) Réaliser un backup des données seulement pour la table Commande dans un fichier
SQL nommé dataCommande.
49) Créer puis sélectionner une nouvelle BD nommée testDB et y importer, moyennant la
commande SOURCE, le fichier backupTables.sql
50) Vérifier la réussite du processus d’importation en affichant les tables de testDB.
51) Sélectionner de nouveau la BD Suprette et afficher la liste des utilisateurs existants.
52) Créer les comptes des utilisateurs ci-dessous:
Nom du compte Mot de passe
user1@localhost password1
user2@localhost password2
user3@localhost password3
user4@localhost password4
user5@localhost password5
53) Vérifier la création des comptes utilisateurs .

3/4
54) Ouvrir une autre session MySQL avec le compte user1 et afficher les BDs auxquelles ce
compte peut accéder.
55) Sous le shell de MySQL Server, attribuer des privilèges de SELECT, DELETE et UPDATE à
un niveau GLOBAL à user1.
56) Attribuer un privilège de SELECT à un niveau BASE DE DONNEES à user2.
57) Attribuer un privilège de DELETE à un niveau TABLE pour la table Produit à user3.
58) Attribuer à user4 à un niveau COLONNE pour la table Client, les deux privilèges
suivants :
 SELECT des colonnes codeClt, nom, prenom et tel
 UPDATE de la colonne adresse
59) Tester l’ensemble des privilèges attribués aux différents utilisateurs.
60) En utilisant un niveau de privilèges PROXY, attribuer les privilèges de user2 à user4.
61) Vérifier les nouveaux privilèges de user4.
62) Révoquer le privilège attribué à user3 et vérifier la réussite de l’opération de révocation.
63) En s’authentifiant par le compte de user1, est-il possible de :

 Créer un nouveau compte utilisateur :


Login : usager@localhost Mot de passe : newusager
 Renommer user3 en utilisateur3
 Supprimer le compte utilisateur user4.
 Révoquer le privilège attribué à user2.

4/4

Vous aimerez peut-être aussi