Correction TP3 SGBDR



Documents pareils
Configurer la supervision pour une base MS SQL Server Viadéis Services

Attaques applicatives

CREATION WEB DYNAMIQUE

MS SQL Express 2005 Sauvegarde des données

Table des matières 1 DISASTER RECOVERY SAUVEGARDER RESTAURER BASE DE DONNÉS "SUSPECT"... 28

Historisation des données

Olivier Mondet

Devoir Data WareHouse

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

Langage propre à Oracle basé sur ADA. Offre une extension procédurale à SQL

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

SQL Historique

Laboratoires de bases de données. Laboratoire n 6. Programmation SQL. par Danièle BAYERS et Louis SWINNEN

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

Module Administration BD Chapitre 1 : Surcouche procédurale dans les SGBDS

BD51 BUSINESS INTELLIGENCE & DATA WAREHOUSE

Création et Gestion des tables

Gestion de base de données

Le langage SQL (première partie) c Olivier Caron

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

TP3 : Creation de tables 1 seance

Le Langage De Description De Données(LDD)

Support de Cours REQUÊTES TRANSACT-SQL DANS MICROSOFT SQL SERVER Stéphane N GUESSAN Groupe Pigier Abidjan Version 1.

Compétences Business Objects

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

Langage SQL : créer et interroger une base

La programmation orientée objet Gestion de Connexions HTTP Manipulation de fichiers Transmission des données PHP/MySQL. Le langage PHP (2)

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

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

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

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

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

SQL Server 2000, Analysis Services et DTS

SQL Server Cyril Gruau. 11 février 2003

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

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

OpenPaaS Le réseau social d'entreprise

INSTITUT NATIONAL DES TELECOMMUNICATIONS CONTROLE DES CONNAISSANCES. 2. Les questions sont indépendantes les unes des autres.

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

1 Position du problème

TP Contraintes - Triggers

Corrigés détaillés des exercices

SQL Server administration SERVEUR DE BASES DE DONNEES OLIVIER D.

Bases de données relationnelles

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

Encryptions, compression et partitionnement des données

SQL sous SqlServer OLIVIER D. DEHECQ Olivier 0

Stockage du fichier dans une table mysql:

1. Base de données SQLite

Bases de données avancées

Bases de Données Avancées

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

Mysql avec EasyPhp. 1 er mars 2006

SQL. Oracle. pour. 4 e édition. Christian Soutou Avec la participation d Olivier Teste

Master Exploration Informatique des données DataWareHouse

I. MySQL : Serveur et SGBD

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

Objectifs du TP : Initiation à Access

Modélisation PHP Orientée Objet pour les Projets Modèle MVC (Modèle Vue Contrôleur) Mini Framework

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)

I4 : Bases de Données

Pratique et administration des systèmes

Techniques de stockage. Techniques de stockage, P. Rigaux p.1/43

Introduction au PL/SQL Oracle. Alexandre Meslé

Modélisation et Gestion des bases de données avec mysql workbench

A QUOI SERVENT LES BASES DE DONNÉES?

BASES DE DONNEES TP POSTGRESQL

Exercices sur SQL server 2000

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

Sybase Adaptive Server Enterprise 15

I/ Présentation. On considère une BD CIRQUE dont le schema conceptuel : PERSONNEL _CIRQUE (NOM, ROLE) ;

Introduction aux Bases de Données 2004/2005

TP11 - Administration/Tuning

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

Votre premier projet Android

MySQL avec Mac OS X. Quelques manipulations avec le terminal sont nécessaires si une version de MySQL est déjà lancée:

Comment Connecter une Base de Données MySQL via un Driver JDBC Avec OpenOffice.org

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

Cours de SQL SERVER 2005 SQL SERVER 2005

Django et PostgreSQL sous la charge

A QUOI SERVENT LES BASES DE DONNÉES?

Bases de Données Réparties

Installation des moteurs SQL Pour Micro-SESAME

Architecture de la plateforme SBC

Application web de gestion de comptes en banques

Application BdD et JDBC. Introduction 1/28. I Dans tout les cas, une seule problématique. I Quelques alternatives :

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

Auto-évaluation Oracle: cours de base

FileMaker 13. Guide de référence SQL

LE LANGAGE SQL2 1. INTRODUCTION

BTS/CGO P10 SYSTEME INFORMATION Année

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

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

Les BASES de DONNEES dans WampServer

Accès aux bases de données

1/ Présentation de SQL Server :

SGBDR. Systèmes de Gestion de Bases de Données (Relationnelles)

Mysql. Les requêtes préparées Prepared statements

Transcription:

BTS-DSI Correction TP3 SGBDR lycée lissane eddine ibn el khatib laayoune use master; CREATE DATABASE BD_Recettes ON ( NAME = 'BD_Recettes_Data', FILENAME = 'F:\Documents and Settings\Administrateur\Bureau\2014\bts2\sql\tds sqlserver\sqltd3\bd_recettes_data.mdf', SIZE = 3MB, MAXSIZE = 10MB, FILEGROWTH = 20%) LOG ON ( NAME = 'BD_Recettes_log', FILENAME = 'F:\Documents and Settings\Administrateur\Bureau\2014\bts2\sql\tds sqlserver\sqltd3\bd_recettes_log.ldf', SIZE = 1MB, MAXSIZE = UNLIMITED, FILEGROWTH = 10%); CREATE TABLE Fournisseur(NumFou int, Constraint pk_numfou primary key(numfou), RSFou varchar(50), AdrFou varchar(150)) CREATE TABLE Recettes (NumRec int, Constraint pk_numrec primary key(numrec), NomRec varchar(50), MethodePreparation varchar(50), TempsPreparation int) CREATE TABLE Ingrédients (NumIng int primary key, NomIng varchar(50), PUIng money, UniteMesureIng decimal(12,2), NumFou int, QteEnStock int, Constraint fk_numfou foreign key(numfou) references Fournisseur( NumFou)) CREATE TABLE Composition_Recette (NumRec int, NumIng int, QteUtilisee int Constraint pk_numrec_numing primary key(numrec,numing), Constraint fk_numrec foreign key(numrec) references Recettes( NumRec), Constraint fk_numing foreign key(numing) references Ingrédients( NumIng)) Correction TP3 V1 SGBDR 1 / 5

insert into Fournisseur values(101,'rs1', 'fes') insert into Fournisseur values(102,'rs2', 'rabat') insert into Recettes values(1,'rec C ','C',70) insert into Recettes values(2,'rec A', 'A', 100) insert into Recettes values(3,'rec B','B',15) insert into Recettes values(4,'rec D','D',34) insert into Ingrédients values (10,'ING1',79.02, 80.50,101,20) insert into Ingrédients values (11,'ING2',50.73, 54.50,101,90) insert into Ingrédients values (12,'ING3',66.52, 80.00,102,10) insert into Ingrédients values (13,'ING4',56.45, 70.00,102,100) insert into Composition_Recette values(1,10,7) insert into Composition_Recette values(1,11,4) insert into Composition_Recette values(1,12,2) insert into Composition_Recette values(1,13,5) insert into Composition_Recette values(2,11,2) insert into Composition_Recette values(2,12,3) insert into Composition_Recette values(3,10,12) insert into Composition_Recette values(3,11,7) insert into Composition_Recette values(3,12,12) insert into Composition_Recette values(3,13,20) ------------------------------------------------------------- --PS1 Procedures stockées Qui affiche la liste des ingrédients avec --pour chaque ingrédient le numéro, le nom et la raison sociale du fournisseur ------------------------------------------------------------- create procedure PS1 as select NumIng, NomIng,RSFou from Ingrédients as ing,fournisseur as Fou where ing.numfou = Fou.NumFou exec PS1 --PS2 Qui affiche pour chaque recette le nombre d'ingrédients et le prix de reviens create procedure PS2 as select NumRec, count(cr.numing) as 'le nombre d''ingrédients',sum(puing*qteutilisee) as 'le prix de reviens' from Composition_Recette as CR,Ingrédients as I group by NumRec exec PS2 --PS3 Qui affiche la liste des recettes qui se composent de plus de 3 ingrédients --avec pour chaque recette le numéro et le nom. create procedure PS3 as select CR.NumRec,NomRec from Composition_Recette as CR,Recettes as R where CR.NumRec=R.NumRec group by CR.NumRec,NomRec having count(numing) > 3 exec PS3 Correction TP3 V1 SGBDR 2 / 5

--PS 4. Qui reçoit un numéro de recette et qui retourne son nom create procedure PS4 @num int, @nom varchar(12)output as set @nom=(select NomRec from Recettes where NumRec=@num) declare @n varchar(20) exec PS4 2,@n output print 'le nom de recette : ' + @n --PS 5. Qui reçoit un numéro de recette. --Si cette recette a au moins un ingrédient, PS5 retourne --l'ingrédient qui a le montant le plus bas -- sinon elle retourne "Aucun ingrédient associé" create procedure PS5 @num int,@numi int output as if exists(select * from Composition_Recette where NumRec=@num) set @numi=(select CR.NumIng from Composition_Recette as CR, Ingrédients as I and NumRec=@num and PUIng *QteUtilisee = (select min(puing*qteutilisee) from Composition_Recette as CR, Ingrédients as I and NumRec=@num)) print 'Aucun ingrédient associé' declare @n int exec PS5 1, @n output print 'le num d''ingrédient qui a le montant le plus bas : '+convert(varchar(21),@n) --PS 6 Qui reçoit un numéro de recette et qui affiche la liste des ingrédients correspondant. -- à cette recette avec pour chaque ingrédient le nom, la quantité utilisée et le montant. create procedure PS6 @num int as declare @nomi varchar(23),@q int,@montant decimal(12,2) declare ligne cursor for select noming, QteUtilisee,PUIng*QteUtilisee as montant from Composition_Recette as CR,Ingrédients as I and NumRec=@num open ligne fetch next from ligne into @nomi,@q,@montant while @@fetch_status=0 print 'le nom : '+ @nomi+' la quantité : '+convert(varchar(20),@q)+ ' le montant : '+convert(varchar(20),@montant) ; fetch next from ligne into @nomi,@q,@montant close ligne deallocate ligne Correction TP3 V1 SGBDR 3 / 5

exec PS6 1 --PS 7 Qui reçoit un numéro de recette et qui affiche ps1 ps2 PS3 create procedure PS7 @num int as declare @nom varchar(21) exec PS4 @num,@nom output select 'le nom de recette : ', @nom exec PS6 @num declare @n int exec PS5 @num, @n output select 'le num d''ingrédient qui a le montant le plus bas : ',@n exec PS7 1 --PS 8. Qui reçoit un numéro de fournisseur vérifie si ce fournisseur existe. --Si ce n'est pas le cas afficher le message 'Aucun fournisseur ne porte ce numéro' Sinon vérifier, --s'il existe des ingrédients fournis par ce fournisseur si c'est le cas afficher la liste des ingrédients --associées (numéro et nom) Sinon afficher un message 'Ce fournisseur n'a aucun ingrédient associé. --Il sera supprimé' et supprimer ce fournisseur create procedure PS8 @num int as if not exists(select * from Fournisseur where NumFou=@num) select 'Aucun fournisseur ne porte ce numéro' if exists(select * from Ingrédients where NumFou=@num ) select NumIng,NomIng from Ingrédients where NumFou=@num select 'Ce fournisseur n''a aucun ingrédient associé' delete from fournisseur where NumFou=@num exec PS8 103 --PS 9. Qui affiche pour chaque recette : --Un message sous la forme : "Recette : (Nom de la recette), temps de préparation : (Temps) --La liste des ingrédients avec pour chaque ingrédient le nom et la quantité --Un message sous la forme : Sa méthode de préparation est : (Méthode) --Si le prix de reviens pour la recette est inférieur à 50 Dh afficher le message 'Prix intéressant' Correction TP3 V1 SGBDR 4 / 5

create procedure PS9 as declare @NomR varchar(23),@temps int,@methode varchar(23),@num int,@prixreviens decimal(12,2) declare ligne_rec cursor for select NumRec,NomRec,MethodePreparation,tempsPreparation from Recettes open ligne_rec fetch next from ligne_rec into @num,@nomr,@methode,@temps while @@fetch_status=0 print 'Recette : ('+@NomR+'), temps de préparation : ('+convert(varchar(20),@temps)+')' exec PS6 @num print 'Sa méthode de préparation est : '+@methode; set @prixreviens =(select sum(puing*qteutilisee) as 'prixdereviens' from Composition_Recette as CR,Ingrédients as I and NumRec=@num) if(@prixreviens>50) print 'Prix intéressant' fetch next from ligne_rec into @num,@nomr,@methode,@temps close ligne_rec deallocate ligne_rec exec PS9 Correction TP3 V1 SGBDR 5 / 5