TP 2 MySQL
A) Création d'une base de données
1) Créez la base de données vacances dont le schéma relationnel est le suivant:
✔ STATION (nomStation, capacité, lieu, région, tarif)
✔ ACTIVITE (#nomStation, libellé, prix)
✔ CLIENT (id, nom, prénom, ville, région, solde)
✔ SEJOUR (#id, #nomStation, début, nbPlaces)
et dont la structure des tables est définie ci-dessous:
mysql> desc station;
+------------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+------------+-------------+------+-----+---------+-------+
| nomStation | varchar(30) | | PRI | | |
| capacite | int(10) | | | 0 | |
| lieu | varchar(30) | | | | |
| region | varchar(30) | YES | | NULL | |
| tarif | float | YES | | 0 | |
+------------+-------------+------+-----+---------+-------+
mysql> desc client;
+--------+-------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+--------+-------------+------+-----+---------+----------------+
| id | int(10) | | PRI | NULL | auto_increment |
| nom | varchar(30) | | | | |
| prenom | varchar(30) | YES | | NULL | |
| ville | varchar(30) | | | | |
| region | varchar(30) | YES | | NULL | |
| solde | float | | | 0 | |
+--------+-------------+------+-----+---------+----------------+
mysql> desc activite;
+------------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+------------+-------------+------+-----+---------+-------+
| nomStation | varchar(30) | | PRI | | |
| libelle | varchar(30) | | PRI | | |
| prix | float | YES | | 0 | |
+------------+-------------+------+-----+---------+-------+
mysql> desc sejour;
+------------+-------------+------+-----+------------+-------+
| Field | Type | Null | Key | Default | Extra |
+------------+-------------+------+-----+------------+-------+
| id | int(10) | | PRI | 0 | |
| nomStation | varchar(30) | | PRI | | |
| debut | date | | PRI | 0000-00-00 | |
| nbPlaces | int(4) | | | 0 | |
+------------+-------------+------+-----+------------+-------+
2) Pour chacune des tables, copier-coller les instructions suivantes dans un fichier text (.sql) que vous
exécutez en ligne de commande.
– insert_station.sql
INSERT INTO station VALUES ('Venusa',350,'Guadeloupe','Antilles',1200);
INSERT INTO station VALUES ('Farniente',200,'Seychelles','Ocean Indien',1500);
INSERT INTO station VALUES ('Santalba',150,'Martinique','Antilles',2000);
INSERT INTO station VALUES ('Passac',400,'Alpes','Europe',1000);
1
– insert_client.sql
INSERT INTO client VALUES(null,'Fogg','Phileas','Londres','Europe',12465);
INSERT INTO client VALUES(null,'Pascal','Blaise','Paris','Europe',6763);
INSERT INTO client VALUES(null,'Kerouac','Jack','New York','Amerique',9812);
– insert_activite.sql
INSERT INTO activite VALUES('Venusa','Voile',150);
INSERT INTO activite VALUES('Venusa','Plongee',120);
INSERT INTO activite VALUES('Farniente','Plongee',130);
INSERT INTO activite VALUES('Passac','Ski',200);
INSERT INTO activite VALUES('Passac','Piscine',20);
INSERT INTO activite VALUES('Santalba','Kayac',50);
– insert_sejour.sql
INSERT INTO sejour VALUES(2,'Venusa','1998-08-03',4);
INSERT INTO sejour VALUES(1,'Passac','1998-07-01',2);
INSERT INTO sejour VALUES(3,'Santalba','1996-08-14',5);
INSERT INTO sejour VALUES(2,'Santalba','1998-08-03',4);
INSERT INTO sejour VALUES(3,'Passac','1998-08-15',3);
INSERT INTO sejour VALUES(3,'Venusa','1998-08-03',3);
INSERT INTO sejour VALUES(3,'Farniente','1999-06-24',5);
INSERT INTO sejour VALUES(1,'Farniente','1998-09-05',3);
B) Création d'utilisateurs
1) Connectez vous à MySQL en tant que root.
2) Créez deux utilisateurs:
• pierre utilisateur local sans privilèges et mot de passe (1234)
• fatou utilisateur accessible de n'importe où, sans privilèges et mot de passe (1234).
3) Changer le mot de passe de fatou pour 4321.
C) Gestion des privilèges
4) Donnez à pierre le droit de lecture sur toutes les tables de la base vacances.
5) Dans une nouvelle console, connectez vous en tant que pierre et effectuer des opérations SELECT
sur toutes les tables de la base vacances.
6) Testez en tant que pierre, la requêtes suivante: « DROP TABLE client; »
7) En tant que root, donnez à pierre le droit de mettre à jour les données du champ tarif de la table
station.
8) En tant que pierre modifier le tarif de la station « Passac » à 1300.
D) Sauvegarde et Restauration
1) En tant que root, faites une sauvegarde (backup_vacs.sql) de votre base de données.
2) Créez une nouvelle base de donnée vacances2, et importez dans celle-ci la structure et les données
des tables du fichier backup_vacs.sql.
3) En vous inspirant de la structure de la table client, créez dans un fichier Excel de nouveaux clients.
4) Convertissez en fichier CSV (séparateur ;) votre fichier Excel et insérez dans la table
[Link] les données de ce fichier.
5) Exportez au format CSV (séparateur;) les données de la table [Link] dans un fichier
nommé [Link].