Applications sur les requêtes D après sujet de BTS 1994 Cas«LES CUISINIES DU PERCHE» - Requêtes corrigées



Documents pareils
Cas «LES CUISINES DU PERCHE»

COMMANDES SQL... 2 COMMANDES DE DEFINITION DE DONNEES... 2

1. Qu'est-ce que SQL? La maintenance des bases de données Les manipulations des bases de données... 5

TD : Requêtes SQL (BDR.TD2-1) INSA 3IF

SQL Historique

Cours Bases de données 2ème année IUT

BTS/CGO P10 SYSTEME INFORMATION Année

Partie I : Créer la base de données. Année universitaire 2008/2009 Master 1 SIIO Projet Introduction au Décisionnel, Oracle

Bases de données relationnelles

Cours 4 : Agrégats et GROUP BY

Durée : 4 heures Le sujet se présente sous la forme de deux dossiers indépendants

TP base de données SQLite. 1 Différents choix possibles et choix de SQLite : 2 Définir une base de donnée avec SQLite Manager

Présentation Windows Azure Hadoop Big Data - BI

Langage SQL (1) 4 septembre IUT Orléans. Introduction Le langage SQL : données Le langage SQL : requêtes

PHP. Bertrand Estellon. 26 avril Aix-Marseille Université. Bertrand Estellon (AMU) PHP 26 avril / 214

NFA 008. Introduction à NoSQL et MongoDB 25/05/2013

ECR_DESCRIPTION CHAR(80), ECR_MONTANT NUMBER(10,2) NOT NULL, ECR_SENS CHAR(1) NOT NULL) ;

Devoir Data WareHouse

ISC Système d Information Architecture et Administration d un SGBD Compléments SQL

Durée : 4 heures coefficient : 4 Le sujet se présente sous la forme de deux dossiers indépendants

Le langage SQL pour Oracle - partie 1 : SQL comme LDD

Création et Gestion des tables

1. Base de données SQLite

1. LA GESTION DES BASES DE DONNEES RELATIONNELLES

TD n 10 : Ma première Base de Données

Le langage SQL Rappels

Langage SQL : créer et interroger une base

Plan. Bases de Données. Sources des transparents. Bases de SQL. L3 Info. Chapitre 4 : SQL LDD Le langage de manipulation de données : LMD

FORMATION A L UTILISATION DE PMB QUELQUES NOTIONS DE SQL

CREATION WEB DYNAMIQUE

Compétences Business Objects

FileMaker 13. Guide de référence SQL

SQL sous SqlServer OLIVIER D. DEHECQ Olivier 0

Partie 0 : Gestion des tablespace et des utilisateurs... 3

IFT3030 Base de données. Chapitre 1 Introduction

Corrigés des cas pratiques

«Cette action contribue au PNNS». À CHÂTEAU THIERRY

14/04/2014. un ensemble d'informations sur un sujet : exhaustif, non redondant, structuré, persistant. Gaëlle PERRIN SID2 Grenoble.

UE8 Systèmes d information de gestion Corrigé indicatif

Ateliers Offre Entreprise

Procédures Stockées WAVESOFT ws_sp_getidtable Exemple : ws_sp_getnextsouche Exemple :... 12

Exercices et solutions

Bases de Données relationnelles et leurs systèmes de Gestion

Systèmes de Gestion de Bases de Données

Cours SQL. Base du langage SQL et des bases de données

CRÉER UNE BASE DE DONNÉES AVEC OPEN OFFICE BASE

DÉCOUVREZ SON FONCTIONNEMENT EN 10 CLICS!

Gestion des transactions et accès concurrents dans les bases de données relationnelles

Performance web. Mesurer. Analyser. Optimiser. Benjamin Lampérier - Benoît Goyheneche. RMLL Beauvais. 8 Juillet 2015

Olivier Mondet

Bases de données cours 4 Construction de requêtes en SQL. Catalin Dima

Installation d'un serveur FTP géré par une base de données MySQL

1-Introduction 2. 2-Installation de JBPM 3. 2-JBPM en action.7

Objectifs du TP : Initiation à Access

MASTER II ECONOMIE ET GESTION Spécialité Management des Organisations de la Neteconomie

Le Langage SQL version Oracle

DANET TRAITEUR. PRESTATIONS «ENTREPRISE» Plateaux repas et panier sandwich LA QUALITE AU SERVICE DE VOTRE ENTREPRISE

Exploiter les statistiques d utilisation de SQL Server 2008 R2 Reporting Services

Introduction aux Bases de Données 2004/2005

Les bases de données

Auto-évaluation SQL. Document: f0453test.fm 19/04/2012. ABIS Training & Consulting P.O. Box 220 B-3000 Leuven Belgium

Corrigés détaillés des exercices

PLAQUETTE 2014 / (valable à partir du 1/10/2014) Fotolia. OUVREZ ET DÉCOUVREZ!

TP3 : Creation de tables 1 seance

Le Langage De Description De Données(LDD)

Whitepaper. Méthodologie de création de rapports personnalisés SQL Server Reporting Services

ÉLÉMENTS INDICATIFS DE CORRIGÉ. BARÈME GLOBAL sur 140 points

Bases de données Cours 4 : Le langage SQL pour ORACLE

Rapport de stage ANNEE SCOLAIRE 2013/2014. Elève de 3ème Collège PACE. Restaurant scolaire du Haut Chemin. p.1

Sommaire. I.1 : Alimentation à partir d un fichier Access (.mdb)...2

Les BASES de DONNEES dans WampServer

A.E.C. GESTION DES APPLICATIONS TECHNOLOGIE DE L'INFORMATION LEA.BW

Les Triggers SQL. Didier DONSEZ. Université de Valenciennes Institut des Sciences et Techniques de Valenciennes

PHP et mysql. Code: php_mysql. Olivier Clavel - Daniel K. Schneider - Patrick Jermann - Vivian Synteta Version: 0.9 (modifié le 13/3/01 par VS)

Thème : Gestion commerciale

Plan Général Prévisionnel (1/2) (non contractuel) Internet et Outils L1/IO S2-IO2 Bases de données: Jointures, Transactions

Easy Réunion. Easy Réunion 20/01/2014

1. Introduction Création d'une requête...2

Bases de Données OLAP

PRISE EN MAIN RAPIDE DU LOGICIEL CLYO SERIES PRO. * Marque déposée. Copyright CLYO SYSTEMS LTD. Page 1 sur 35

Manuel de référence réduit de mysql (version 4.1.1) + "The MySQL C API" par Paul Dubois Licence Professionnelle Réseaux et Télécommunications Option

Licence de MIDO - 3ème année Spécialités Informatique et Mathématiques Appliquées

La Carte et le Menus

Notes de cours : bases de données distribuées et repliquées

Cours 3. Développement d une application BD. DBA - Maîtrise ASR - Université Evry

Vous trouverez ci-après notre brochure d informations relative à notre hôtel et à nos salles de réunion.

PARIS LE BOURGET ****

Sécurité des sites Web Pas un cours un recueil du net. INF340 Jean-François Berdjugin

Description de poste en vue d un recrutement Commis / Commise de cuisine. Description du poste

Introduction à JDBC. Accès aux bases de données en Java

PRÉSENTÉ PAR : NOVEMBRE 2007

La Carte et le Menus

GUIDE D UTILISATION DE LA MENTION «FAIT MAISON» EN RESTAURATION. à destination des professionnels

CLIC Issoire Bassin Montagne Nathalie Maury Diététicienne

Gestion des utilisateurs et de leurs droits

ÉDITO AVRIL AVRIL MAI JUIN MAI JUIN. Et bien plus de surprises tout au long du trimestre... du 1 au 5 (suite) du 1 au 5. du 20 au 30.

PHP 5. La base de données MySql. A. Belaïd 1

Intégrité sémantique dans les bases de données relationnelles

Transcription:

Cas«LES CUISINIES DU PERCHE» - Requêtes corrigées Partie A Révisions des requêtes 1. Combien de plats existent par numéro de catégorie? SELECT numcat, count(numplat) AS nombre_de_plats GROUP BY numcat; 2. Combien de plats existent par nom de catégorie? SELECT CATEGORIE.libcat, COUNT(numplat) as nombre_de_plats, CATEGORIE WHERE PLAT.numcat=CATEGORIE.numcat GROUP BY libcat; 3. Quel est le menu le plus cher, le menu le moins cher et l écart de prix entre les deux? SELECT MAX(prixmenu) as menu_le_plus_cher,min(prixmenu) as menu_le_moins_cher, MAX(prixmenu)- MIN(prixmenu) as écart_de_prix FROM MENU; 4. Quel est le chiffre d affaires par nom de client? SELECT CL.NomCli, Sum([qtécom]*[prixmenu]) AS ca_par_client FROM CLIENT AS CL, COMMANDE AS CO, LIGNECOMMANDE AS LC, MENU AS M WHERE (((CL.CodeCli)=[CO].[codecli]) AND ((CO.NumCom)=[LC].[numcom]) AND ((LC.NumMenu)=[M].[nummenu])) GROUP BY CL.NomCli; 5. Même question, mais en ne retenant que les clients qui ont un CA supérieur à 200 SELECT CL.NomCli, Sum([qtécom]*[prixmenu]) AS ca_par_client FROM CLIENT AS CL, COMMANDE AS CO, LIGNECOMMANDE AS LC, MENU AS M WHERE (((CL.CodeCli)=[CO].[codecli]) AND ((CO.NumCom)=[LC].[numcom]) AND ((LC.NumMenu)=[M].[nummenu])) GROUP BY CL.NomCli HAVING Sum([qtécom]*[prixmenu])>200; 6. Combien de salariés ont été embauchés par année? SELECT Year(DateEmb) AS AnnéeEmbauche, Count(*) AS NbSalariés FROM CUISINIER GROUP BY Year(Dateemb); 7. Combien de menus comportent plus de 4 plats? Select NumMenu From COMPOSE Group by NumMenu Having Count(numplat) > 4; 8. On désire connaître le nombre d années d ancienneté par cuisinier. SELECT CUISINIER.NomCuis, Int((Now()-DateEmb)/365) AS nb_années_ancienneté FROM CUISINIER; 9. Combien y a t-il de cuisiniers par cuisine et par année d ancienneté? Select numcuisine, int((now()-dateemb)/365) As Ancienneté, Count(*) As NbSalariés From CUISINIER Group by numcuisine,int((now()-dateemb)/365) ; Base de données et requêtes créées par Cathy Cosson Document disponible sur http://www.ticegestion.com Page 1/5

10. Combien de menus différents ont été livré selon un jour donné? SELECT Sum(LIGNECOMMANDE.QtéCom) AS [nombre de menus à préparer], commande.datelivraison FROM LIGNECOMMANDE, commande WHERE (((LIGNECOMMANDE.NumCom)=[COMMANDE].[NUMCOM])) AND commande.datelivraison= [entrer le jour] GROUP BY commande.datelivraison; 11. Combien de plats doit-on fabriquer par jour? SELECT Sum(NOMBREPLATS) AS [NOMBRE DE PLATS A PREPARER], DatePréparation FROM PREPARER GROUP BY DatePréparation; 12. Quel est le prix moyen d un menu? SELECT Avg(MENU.PrixMenu) AS [prix moyen d'un menu] FROM MENU; Partie B Requêtes imbriquées 1. Quel est le code des clients qui ont commandé le menu numéro 1 (requête imbriquée)? SELECT CodeCli FROM COMMANDE WHERE NumCom IN (SELECT NumCom FROM LIGNECOMMANDE WHERE NumMenu = 1); 2. Quel est le nom des clients qui ont commandé le menu numéro 1 (requête imbriquée)? SELECT CLIENT.NomCli FROM CLIENT WHERE CLIENT.CodeCli IN (SELECT CodeCli FROM COMMANDE WHERE NumCom IN (SELECT NumCom FROM LIGNECOMMANDE WHERE NumMenu = 1)); 3. Quel est le nom du responsable de l atelier où travaille Ménardeau (requête non imbriquée)? SELECT B.NOMCUIS FROM CUISINIER AS A, CUISINIER AS B, ATELIERCUISINE AS C WHERE A.NOMCUIS = "MENARDEAU" AND A.NUMCUISINE = C.NUMCUISINE AND C.NUMCUISINIER = B.NUMCUISINIER; 4. Refaites la requête ci-dessus en utilisant les requêtes imbriquées. SELECT B.NOMCUIS FROM CUISINIER AS B WHERE B.NUMCUISINIER = (SELECT C.NUMCUISINIER FROM ATELIERCUISINE AS C WHERE C.NUMCUISINE = (SELECT A.NUMCUISINE FROM CUISINIER A WHERE A.NOMCUIS ="MENARDEAU")); 5. Quels sont les clients qui habitent la même ville par ordre croissant des noms des clients (autojointure)? SELECT DISTINCT A.* FROM CLIENT AS A, CLIENT AS B WHERE A.VILLECLI =B.VILLECLI AND A.CODECLI<>B.CODECLI ORDER BY A.CODECLI; 6. Quels sont les clients (noms) qui ont commandé des quantités supérieures à 3 (requête imbriquée)? Base de données et requêtes créées par Cathy Cosson Document disponible sur http://www.ticegestion.com Page 2/5

SELECT nomcli FROM CLIENT WHERE codecli IN (SELECT codecli FROM commande WHERE numcom IN (SELECT numcom FROM lignecommande WHERE Qtécom > 3)); 7. Quels sont les cuisiniers (noms) qui ont préparé des plats le 20/10/2003 (requête imbriquée)? SELECT nomcuis FROM cuisinier WHERE numcuisine IN (SELECT numcuisine FROM ateliercuisine where numcuisine in (SELECT numcuisine FROM PREPARER WHERE datepréparation = #10/20/2003#)); 8. Quels sont les numéros et prix des menus préparés le 20/10/2003 (requête imbriquée)? SELECT nummenu, prixmenu WHERE nummenu in (SELECT nummenu FROM compose WHERE numplat in (SELECT numplat FROM plat WHERE numplat in (SELECT numplat FROM preparer WHERE datepréparation =#10/20/2003#))); 9. Quels sont les clients qui ont pris un menu supérieur à 15 euros (requête imbriquée)? SELECT client.nomcli FROM client WHERE (((client.codecli) IN (SELECT CodeCli FROM commande WHERE numcom IN (SELECT numcom FROM lignecommande WHERE nummenu in (SELECT nummenu WHERE prixmenu>15))))); 10. Quel est le menu le plus cher (requête imbriquée)? SELECT nummenu, prixmenu WHERE prixmenu = (select max(prixmenu) from menu); 11. Quels sont les menus qui ne sont pas les plus chers (requête imbriquée)? SELECT prixmenu WHERE prixmenu NOT IN (select max(prixmenu) from menu); Partie C Requêtes actions 1. Un nouveau cuisinier a été embauché aujourd hui : Joseph CHASLES, il travaille dans la cuisine n 1 (vérifiez la date d embauche après avoir exécuté la requête). INSERT INTO cuisinier VALUES (8, "CHASLES", #10/08/2003#, 1); 2. Un nouveau client doit être saisi : n 8 DELAMARRE André. On ne connaît pas son adresse. INSERT INTO CLIENT VALUES (8, "DELAMARRE", "André", null, null, null); Si la date est : 08/10/2003 Base de données et requêtes créées par Cathy Cosson Document disponible sur http://www.ticegestion.com Page 3/5

3. Trois nouveaux plats doivent être saisis : n 49,mousse au chocolat, n 50 île flottante, n 51 salade de fruits, n 52 salade exotique. Ces plats sont classés dans la catégorie n 10. Créez une requête paramétrée pour les saisir. INSERT INTO PLAT VALUES ([entrez le numéro], [entrer le nom], [entrer le numéro de catégorie]); 4. Le plat n 38 a changé de catégorie : il est maintenant en catégorie 10. UPDATE PLAT SET NumCat = 10 WHERE numplat =38; 5. Créez un table regroupant toutes les salades. Cette table a la même structure que la table PLAT. Appelez cette table «SALADE». Insérez dans cette table toutes les salades. INSERT INTO SALADE SELECT * WHERE NomPlat like "salade*"; 6. Effacez les enregistrements de cette table. FROM SALADE; 7. Enregistrez dans la table SALADE uniquement les salades servies en dessert. INSERT INTO SALADE SELECT * WHERE NumCat=10 AND NomPlat like "salade*"; 8. Le cuisinier n 4 a démissionné. Modifiez la table cuisinier en conséquence. FROM CUISINIER WHERE NumCuisinier=4; 9. Le menu n 1 coûte maintenant 13. UPDATE MENU SET PrixMenu = 13 WHERE NumMenu =1; 10. le client n 6 a déménagé : il habite maintenant 56, bld de la Liberté 35000 RENNES. UPDATE CLIENT SET RueCli = "56, bld de la Liberté", CPCli = 35000, VilleCli = "RENNES" WHERE CodeCli=6; 11. le plat n 1 n existe plus. Modifiez les tables en conséquence. WHERE NumPlat=1; Avant d effectuer la requête il faut modifier les relations entre PLAT et COMPOSE, et entre PLAT et PREPARER 12. les prix ont augmenté de 3%. Effectuez cette modification. UPDATE MENU SET PrixMenu = PrixMenu*1.03; 13. Supprimez cette augmentation Base de données et requêtes créées par Cathy Cosson Document disponible sur http://www.ticegestion.com Page 4/5

UPDATE MENU SET PrixMenu = PrixMenu/1.03; 14. Les menus qui contiennent des plats de la catégorie pâtisserie subissent un augmentation de 5%. UPDATE MENU SET PrixMenu = PrixMenu*1.03 WHERE NumMenu IN (SELECT NumMENU FROM COMPOSE WHERE NumPlat IN (SELECT NumPlat WHERE NumCat = (SELECT NumCat FROM CATEGORIE WHERE LibCat = "pâtisserie"))); Base de données et requêtes créées par Cathy Cosson Document disponible sur http://www.ticegestion.com Page 5/5