Correction Dossier 1 - Partie SQL TDIju2011-EFF-TpV1
Page 1 sur 1 • Partagez
Correction Dossier 1 - Partie SQL TDIju2011-EFF-TpV1
Correction Dossier 1 - Partie SQL pour <TDIju2011-EFF-TpV1>
-- Question 1
Create DataBase TDIJu2011_V1
Go
Use TDIJu2011_V1
Go
Create table personne(Matricule int primary key, nom varchar(50), prenom varchar(50), telephone varchar(50), passe varchar(20))
Create table marque(nom_marque varchar(50) primary key)
Create
table autocar(code_car int primary key, capacite int, date_achat
smalldatetime, consomation real, nom_marque varchar(50) foreign key
references marque(nom_marque))
Create table ville(code_ville int primary key,nom_ville varchar(50))
Create
table ligne(code_ligne int primary key, distance real,
code_ville_depart int foreign key references ville(code_ville),
code_ville_arrivee int foreign key references ville(code_ville))
Create
table calendrier(code_calendrier int primary key, jour_voyage int,
heure_depart real, heure_arrivee real, code_ligne int foreign key
references ligne(code_ligne))
Create table Voyage (code_voyage int
identity primary key, dh_depart_voyage smalldatetime, dh_arrive_voyage
smalldatetime, places int, compteur_depart int, compteur_arrivee int,
matricule int foreign key references personne(Matricule), code_car int
foreign key references autocar(code_car), code_calendrier int foreign
key references calendrier(code_calendrier))
Go
insert into personne values(1,'Ali','Ali','0522334455','123')
insert into personne values(2,'Ahmed','Ahmed','0522333365','321')
insert into marque values('Renault')insert into marque values('Mercedes')
insert into autocar values(1,50,'1/1/2000',20,'Renault')
insert into ville values(1,'Casablanca')
insert into ville values(2,'Rabat')
insert into ville values(3,'Tanger')
insert into ligne values(1,160,1,2)
insert into calendrier values(1,1,14.5,15.25,1)
insert
into voyage(dh_depart_voyage , dh_arrive_voyage , places ,
compteur_depart , compteur_arrivee , matricule , code_car,
code_calendrier) values('3/4/2012 15:30','3/4/2012
16:30',45,23452,23543,1,1,1)
insert into voyage(dh_depart_voyage ,
dh_arrive_voyage , places , compteur_depart , compteur_arrivee ,
matricule , code_car, code_calendrier) values('3/4/2012
15:30','3/4/2012 16:30',45,23452,23543,2,1,1)
Go
-- Question 2
alter table calendrier add constraint ctj check(jour_voyage between 1 and 7)
alter table voyage add constraint ctv check(dh_depart_voyage<dh_arrive_voyage)
alter table autocar add constraint cta check(capacite>0)
-- Question 3
alter table personne add np as nom + ' ' + prenom
-- Question 4
Create trigger Question4 on ligne for insert,update
as
begin
if
((select count(*) from ligne,inserted where
ligne.code_ville_depart=inserted.code_ville_depart and
ligne.code_ville_arrivee=inserted.code_ville_arrivee)>1)
begin
raiserror('Ligne Exist déjà',15,1)
rollback
end
end
insert into ligne values(2,360,1,3)
--Question 5
Create Function Question5(@cl int) returns real
as
begin
declare @s real
set @s= (select sum(places) from voyage,calendrier where voyage.code_calendrier=calendrier.code_calendrier and code_ligne=@cl)
return @s
end
select dbo.Question5(1)
-- Question 6
Create proc Question6 @cl int
as
begin
select voyage.* from voyage,calendrier where voyage.code_calendrier=calendrier.code_calendrier and code_ligne=@cl
end
Exec Question6 1
-- Question 7
Create function Question7(@cl int) returns varchar(200)
as
begin
declare @s varchar(200),@np varchar(50)
select @s='',@np=''
declare cr cursor for select np from personne,voyage,calendrier
where personne.matricule=voyage.matricule and voyage.code_calendrier=calendrier.code_calendrier and code_ligne=@cl
open cr
fetch next from cr into @np
while(@@fetch_status=0)
begin
set @s=@s + @np + ', '
fetch next from cr into @np
end
close cr
deallocate cr
return @s
end
select dbo.Question7(1)
Le Formateur Mr Driouch
Mr.Ayoub- Administrateur
- Nombre de messages : 5345
Date d'inscription : 10/01/2010
Sujets similaires
» Correction Dossier 1 - Partie SQL pour <TDIju2011-EFF-TpV8>
» Théorique TMSIR 2012 (Tableaux Dossier 3 partie 2) Correction
» Correction Examen 2011 TP Variante 5 (Dossier 3)
» Correction : EFF Partie Asp variante 1 & 7 & 9 [ 2007]
» Correction : Partie Asp variante 4 EFF { 2010 }
» Théorique TMSIR 2012 (Tableaux Dossier 3 partie 2) Correction
» Correction Examen 2011 TP Variante 5 (Dossier 3)
» Correction : EFF Partie Asp variante 1 & 7 & 9 [ 2007]
» Correction : Partie Asp variante 4 EFF { 2010 }
Page 1 sur 1
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum
Ven Nov 16, 2018 6:14 pm par tri2b
» Examen de fin de formation Théorique 2018 TDM
Mar Juin 19, 2018 8:08 pm par Mr.Ayoub
» Examen de Passage Chef Chantier TP 2010 Pratique
Lun Juin 04, 2018 11:07 am par Mr.Ayoub
» Examen de fin de formation Chef de Chantier T.P 2012 Théorique
Dim Juin 03, 2018 3:59 pm par Mr.Ayoub
» Examen de fin de formation TSGO 2016 Pratique Variante 1
Dim Juin 03, 2018 3:36 pm par Mr.Ayoub
» Examen de fin de formation Chef de Chantier T.P 2008 Théorique
Dim Juin 03, 2018 3:25 pm par Mr.Ayoub
» Examen de Passage Chef de Chantier T.P 2008 Théorique et Pratique
Dim Juin 03, 2018 3:24 pm par Mr.Ayoub
» Examen de Fin de Formation Gestion des Entreprises TSGE 2015
Mar Mai 29, 2018 12:18 pm par Mr.Ayoub
» Examen de Passage 2015 Gestion des Entreprises TSGE
Mar Mai 29, 2018 11:55 am par Mr.Ayoub
» Examen de Passage Gestion des Entreprises TSGE 2017
Mar Mai 29, 2018 11:51 am par Mr.Ayoub