TP Atelier 02 – VUES et INDEX
Remarques préalables :
- Travail à faire avec l’éditeur de requête sur le la BD CAFE
- Le texte de chaque requête doit être placé dans un fichier (ex : fichier TP02-R1.sql pour la requête R1).
Ecrire et exécuter les requêtes ci-dessous :
R1 : Créer un index sur le nom de la consommation.
CREATE INDEX idxNomConso
ON conso(libcons);
R2 : Créer un index sur le couple code postal/ville.
CREATE INDEX idxCpVille
ON serveur(cpserv, libserv);
R3 : On effectue souvent des recherches à partir du nom du serveur. On vous demande de trouver une solution pour accélérer ces requêtes et d'écrire la requête correspondante.
CREATE INDEX idxNomServ
ON serveur(nomserv);
R4 : On effectue souvent des jointures entre facture et serveur. On vous demande de trouver une solution pour accélérer ces requêtes et d'écrire la requête correspondante.
CREATE VIEW v_factServ
AS
SELECT f.*, s.nomserv, s.rueserv
FROM serveur s
INNER JOIN facture f ON s.numserv = f.numserv
R5 : Créer une vue permettant d'afficher le chiffre d'affaires de la journée. La date du jour est contenue dans CURRENT_DATE.
Vérifier que la vue est correcte (pour cela modifier la date d’une facture au jour d’aujourd’hui).
CREATE VIEW v_caParJour
SELECT SUM(qte * prixcons) ca, datefact
FROM facture f
INNER JOIN ligne_fact l ON f.numfact = l.numfact
INNER JOIN conso c ON c.numcons = l.numcons
GROUP BY datefact
R6 : Créer une vue permettant d'obtenir les factures établies par les serveurs de Paris.
CREATE VIEW v_factServParis
SELECT numfact, datefact, nomserv
INNER JOIN serveur s ON f.numserv = s.numserv
WHERE villeserv = 'PARIS'
R7 :
CA NE MARCHE PAS !!!
create view v_serv_BELFORT
as
SELECT *
from serveur
WHERE villeserv = 'BELFORT';
WHERE villeserv = 'BELFORT'
WITH CHECk OPTION; => IMPOSSIBLE dans l’éditeur de requête
Générée avec chmProcessor