master
Pascal Lafourcade 5 years ago
parent a5d7e83c9b
commit 0777f85e74

@ -0,0 +1,46 @@
@2020nba-setup.sql;
DROP TABLE TLIGNE;
CREATE TABLE TLIGNE(LIGNE VARCHAR2(200));
variable vidgame varchar2(10)
prompt Entrer un game
accept vidgame
DECLARE
dnom varchar2(200);
dprenom varchar2(200);
dposte char(2);
didjoueur varchar2(20);
dnbfautes number;
dfautes number;
CURSOR Cnom IS SELECT j.id_joueur, j.Nom, j.Prenom, j.Poste
FROM JOUEUR j, JOUE e
WHERE j.id_joueur = e.id_joueur AND e.id_game = '&vidgame';
CURSOR Cfaute IS SELECT FAUTES, COUNT(ID_game) FROM JOUE WHERE id_joueur = didjoueur GROUP BY FAUTES ORDER BY FAUTES;
BEGIN
INSERT INTO tligne VALUES ('Nom Prenom Poste');
OPEN Cnom;
FETCH Cnom INTO didjoueur, dnom, dprenom, dposte;
WHILE Cnom%found LOOP
INSERT INTO tligne VALUES (dnom||' '||dprenom||' '||dposte);
OPEN Cfaute;
INSERT INTO tligne VALUES ('Faute Nb Matchs');
FETCH Cfaute INTO dfautes, dnbfautes;
WHILE Cfaute%found LOOP
INSERT INTO tligne VALUES (TO_CHAR(dfautes)||' '||TO_CHAR(dnbfautes));
FETCH Cfaute INTO dfautes, dnbfautes;
END LOOP;
CLOSE Cfaute;
FETCH Cnom INTO didjoueur, dnom, dprenom, dposte;
END LOOP;
CLOSE Cnom;
END;
.
/
SELECT * FROM tligne ;

@ -0,0 +1,48 @@
@nba-setup.sql;
DROP TABLE tligne ;
CREATE TABLE tligne (ligne varchar2(100)) ;
set echo off;
set verify off;
set feedback off;
variable vidjoueur char(4)
prompt Entrer la reference du joueur :
accept vidjoueur
DECLARE
dmaxpoint number;
dnbjoueur number;
didjoueur char(4);
BEGIN
SELECT count(Nom) INTO dnbjoueur FROM JOUEUR
WHERE id_joueur ='&vidjoueur';
if dnbjoueur != 0 then
SELECT max(points) INTO dmaxpoint FROM JOUE
WHERE id_joueur ='&vidjoueur';
INSERT INTO tligne VALUES ('Le maximum de point du joueur '||'&vidjoueur'||' est '||to_char(dmaxpoint));
ELSE
INSERT INTO tligne VALUES('AVEC COUNT : Joueur inconnu');
end if;
SELECT id_joueur INTO didjoueur FROM JOUE
WHERE id_joueur ='&vidjoueur';
EXCEPTION
when no_data_found then
INSERT INTO tligne VALUES('AVEC EXCEPTION : Joueur n a pas fait de match');
end ;
.
/
SELECT * FROM tligne ;
set verify on;
set feedback on;
set echo on;

@ -0,0 +1,41 @@
@nba-setup.sql;
DROP TABLE tligne ;
CREATE TABLE tligne (ligne varchar2(100)) ;
set echo off;
set verify off;
set feedback off;
DECLARE
dnom varchar2(20);
dprenom varchar2(20);
ddate date;
dnomequipe varchar2(20);
CURSOR c IS SELECT j.Nom, j.Prenom, j.Date_de_naissance, e.Nom FROM JOUEUR j, APPARTIENT a, EQUIPE e
WHERE a.id_joueur = j.id_joueur and e.id_equipe = a.id_equipe and a.Date_fin is NULL
Order by Date_de_naissance;
BEGIN
OPEN c;
INSERT INTO tligne VALUES ('Nom Prenom Date de naissance Nom Equipe Actuelle');
FETCH c INTO dnom, dprenom, ddate, dnomequipe;
WHILE c%found
LOOP
INSERT INTO tligne VALUES (dnom||' '||dprenom||' '||to_char(ddate)||' '||dnomequipe);
FETCH c INTO dnom, dprenom, ddate, dnomequipe;
END LOOP;
CLOSE C;
END;
.
/
SELECT * FROM tligne ;
set verify on;
set feedback on;
set echo on;

@ -0,0 +1,88 @@
DROP TABLE JOUE;
DROP TABLE GAME;
DROP TABLE APPARTIENT cascade constraints;
DROP TABLE JOUEUR cascade constraints;
DROP TABLE EQUIPE cascade constraints;
CREATE TABLE JOUEUR(id_joueur CHAR(6) PRIMARY KEY,
Nom VARCHAR2(20),
Prenom VARCHAR2(20),
Date_de_naissance DATE,
Taille NUMBER,
Poste char(2) constraint c_poste CHECK (Poste IN('PG','SG','SF','PF','C')));
CREATE TABLE EQUIPE(id_equipe CHAR(6) PRIMARY KEY,
Nom VARCHAR2(20),
Ville VARCHAR2(20),
Conference VARCHAR2(5) constraint c_conf check (Conference in('Est','Ouest')),
Date_creation DATE);
CREATE TABLE GAME(id_game CHAR(6) PRIMARY KEY,
Date_game DATE,
id_equipe_domicile CHAR(6) references EQUIPE,
id_equipe_exterieur CHAR(6) references EQUIPE,
Ville VARCHAR2(20),
Categorie char(7) constraint c_type check (Categorie in('Amical','Saison','Playoff','Allstar')),
Score_domicile NUMBER,
Score_exterieur NUMBER,
Prolongation NUMBER);
CREATE TABLE JOUE(id_joueur CHAR(6) references JOUEUR,
id_game CHAR(6) references GAME,
Points NUMBER,
Rebonds NUMBER,
Interceptions NUMBER,
Contres NUMBER,
Passes NUMBER,
Balles_perdues NUMBER,
Fautes NUMBER,
PRIMARY KEY(id_joueur,id_game));
CREATE TABLE APPARTIENT(id_contrat CHAR(6) PRIMARY KEY,
id_joueur CHAR(6) references JOUEUR,
id_equipe CHAR(6) references EQUIPE,
Date_debut DATE,
Date_fin DATE,
Salaire_jour NUMBER);
insert into JOUEUR values ('J00001','Jordan','Michael','01-Jan-1980','193','SF');
insert into JOUEUR values ('J00002','Bird','Larry','02-Jan-1980','194','SF');
insert into JOUEUR values ('J00003','Johnson','Magic','03-Jan-1980','201','PG');
insert into JOUEUR values ('J00004','Thomas','Isiah','04-Jan-1980','185','PG');
insert into JOUEUR values ('J00005','Oneil','Shaquille','04-Jan-1992','185','C');
insert into JOUEUR values ('J00006','Parker','Tony','04-Jan-1996','185','PG');
insert into EQUIPE values ('E00001','Bulls','Chicago','Est','04-Jan-1970');
insert into EQUIPE values ('E00002','Lakers','LA','Ouest','06-Jan-1970');
insert into EQUIPE values ('E00003','Pistons','Detroit','Est','07-Jan-1970');
insert into EQUIPE values ('E00004','Celtics','Boston','Est','09-Jan-1970');
insert into EQUIPE values ('E00005','Spurs','San Antonio','Ouest','06-Jan-1971');
insert into APPARTIENT values ('C00001','J00001','E00001','04-Jan-1980',NULL,10000);
insert into APPARTIENT values ('C00002','J00002','E00004','04-Jan-1981',NULL,1000);
insert into APPARTIENT values ('C00003','J00003','E00002','04-Jan-1981','04-Jan-2010',3000);
insert into APPARTIENT values ('C00004','J00004','E00003','04-Jan-1982',NULL,5000);
insert into APPARTIENT values ('C00005','J00005','E00002','04-Jan-1990',NULL,5000);
insert into APPARTIENT values ('C00006','J00006','E00005','04-Jan-1990',NULL,5000);
insert into GAME values ('G00001','04-Jan-2001','E00002','E00001','Londres','Saison',100,101,0);
insert into GAME values ('G00002','04-Jan-2001','E00003','E00004','Boston','Saison',102,101,0);
insert into GAME values ('G00003','04-May-2001','E00004','E00003','Detroit','Playoff',107,101,0);
insert into GAME values ('G00004','04-Apr-2001','E00001','E00002','Miami','Allstar',105,101,0);
insert into GAME values ('G00005','04-Apr-2001','E00001','E00003','Miami','Allstar',105,101,0);
insert into GAME values ('G00006','04-Apr-2001','E00001','E00004','Miami','Allstar',105,101,0);
insert into JOUE values ('J00006','G00004',17,18,1,0,1,3,4);
insert into JOUE values ('J00005','G00004',17,18,1,0,1,3,3);
insert into JOUE values ('J00002','G00004',17,18,1,0,1,3,1);
insert into JOUE values ('J00003','G00004',17,18,1,0,1,3,2);
insert into JOUE values ('J00001','G00006',17,18,1,0,1,3,4);
insert into JOUE values ('J00003','G00006',17,18,1,0,1,3,2);
insert into JOUE values ('J00003','G00005',17,18,1,0,1,3,4);
insert into JOUE values ('J00004','G00004',17,18,1,0,1,3,4);
insert into JOUE values ('J00001','G00003',20,10,4,1,2,2,3);
insert into JOUE values ('J00001','G00002',19,11,3,2,2,1,2);
insert into JOUE values ('J00001','G00001',18,12,2,3,1,0,1);

@ -0,0 +1,38 @@
DROP TABLE ETUDIANT2020;
CREATE TABLE ETUDIANT2020(nom varchar2(100), age number);
INSERT INTO ETUDIANT2020 VALUES('Alice', 12);
INSERT INTO ETUDIANT2020 VALUES('Bob', 15);
INSERT INTO ETUDIANT2020 VALUES('Charlie', 18);
INSERT INTO ETUDIANT2020 VALUES('Dave', 21);
INSERT INTO ETUDIANT2020 VALUES('Eve', 11);
DROP TABLE tligne;
CREATE TABLE tligne(DESCRIPTION VARCHAR2(300));
SET echo off;
SET verify off;
SET feedback off;
DECLARE
dnom VARCHAR2(100);
CURSOR C IS SELECT nom from ETUDIANT2020 WHERE (age >= 18);
BEGIN
OPEN C;
FETCH C into dnom;
WHILE C%FOUND
LOOP
INSERT INTO tligne VALUES(dnom);
FETCH C into dnom;
END LOOP;
CLOSE C;
END;
.
/
SET echo on;
SET verify on;
SET feedback on;
SELECT * FROM TLIGNE;

@ -0,0 +1,41 @@
DROP TABLE ETUDIANT2020;
CREATE TABLE ETUDIANT2020(nom varchar2(100), age number);
INSERT INTO ETUDIANT2020 VALUES('Alice', 12);
INSERT INTO ETUDIANT2020 VALUES('Bob', 15);
INSERT INTO ETUDIANT2020 VALUES('Charlie', 18);
INSERT INTO ETUDIANT2020 VALUES('Dave', 21);
INSERT INTO ETUDIANT2020 VALUES('Eve', 11);
DROP TABLE tligne;
CREATE TABLE tligne(DESCRIPTION VARCHAR2(300));
SET echo off;
SET verify off;
SET feedback off;
DECLARE
Dnbmineur number;
MINEUR EXCEPTION;
BEGIN
SELECT count(*) into Dnbmineur
FROM ETUDIANT2020
WHERE AGE < 18;
IF (Dnbmineur > 0) THEN RAISE MINEUR;
END IF;
EXCEPTION
WHEN MINEUR THEN
INSERT INTO tligne VALUES(Dnbmineur);
END;
.
/
SET echo on;
SET verify on;
SET feedback on;
SELECT * FROM TLIGNE;

@ -284,10 +284,10 @@ Poste('PG','SG','SF','PF','C')\\
\node (f) at (8,-5) {\begin{varwidth}{2.5in}
\begin{tabular}{|l|}
\hline
\rowcolor{Gray}Match\\
\rowcolor{Gray}Game\\
\hline
\underline{id\_match}\\
Date\_match\\
\underline{id\_game}\\
Date\_game\\
\#id\_equipe\_domicile\\
\#id\_equipe\_exterieur\\
Ville\\
@ -305,7 +305,7 @@ Prolongation\\
\rowcolor{Gray}JOUE\\
\hline
\underline{\#id\_joueur}\\
\underline{\#id\_match}\\
\underline{\#id\_game}\\
Points\\
Rebonds\\
Interceptions\\
@ -351,14 +351,13 @@ Le MLD ci-dessus stocke les donn\'ees des matchs NBA.
\begin{enumerate}
\item (20 points) Lister dans une table \code{TLIGNES} tous les
joueurs d'un \'equipe donn\'ee par l'utilisateur et d'une ann\'ee
saisie par l'utilisateur, afficher leur nom, pr\'enom, poste et le
nombres de match o\`u il a fait 0, 1, 2, 3, 4 ou 5 fautes, durant
cette ann\'ee civile :
joueurs d'un match donn\'e par l'utilisateur, afficher leur nom,
pr\'enom, poste et le nombres de match o\`u il a fait 0, 1, 2, 3, 4
ou 5 fautes, durant sa carri\`ere :
\begin{center}
\begin{small}
\begin{verbatim}
EQUIPE XXX
GAME XXX
Nom Prenom Poste
XXXXXX XXXXXXX XXXXXX
Fautes Nb Matchs
@ -383,54 +382,47 @@ Le MLD ci-dessus stocke les donn\'ees des matchs NBA.
\begin{SaveVerbatim}{eqpts}
variable equipe char(4)
prompt Entrer une equipe
accept vequipe
@2020nba-setup.sql;
DROP TABLE TLIGNE;
CREATE TABLE TLIGNE(LIGNE VARCHAR2(200));
variable vannee number
prompt Entrer une annee
accept vannee
variable vidgame varchar2(10)
prompt Entrer un game
accept vidgame
DECLARE
dnom varchar2(20);
dprenom varchar2(20);
dnom varchar2(200);
dprenom varchar2(200);
dposte char(2);
didjoueur NUMNER;
didjoueur varchar2(20);
dnbfautes number;
dcpt number;
dfautes number;
CURSOR Cnom IS SELECT j.idjoueur, j.Nom, j.Prenom, j.Poste FROM JOUEUR j,
JOUE e, MATCH m WHERE j.id_joueur = e.id_joueur and id
AND ( m.Date_Match > TO_DATE('01/01/'||'&vannee',DD/MM/YYYY) AND
m.Date_Match < TO_DATE('12/31/'||'&vannee',DD/MM/YYYY) );
CURSOR Cnom IS SELECT j.id_joueur, j.Nom, j.Prenom, j.Poste
FROM JOUEUR j, JOUE e
WHERE j.id_joueur = e.id_joueur AND e.id_game = '&vidgame';
CURSOR Cfaute IS SELECT FAUTES, COUNT(ID_game) FROM JOUE WHERE id_joueur = didjoueur GROUP BY FAUTES ORDER BY FAUTES;
CURSOR Cfaute IS SELECT COUNT(ID_match) FROM JOUE
WHERE id_joueur = didjoueur
GROUP BY FAUTES;
BEGIN
INSERT INTO tligne VALUES (EQUIPE'||'&vequipe');
INSERT INTO tligne VALUES ('Nom Prenom Poste');
OPEN Cnom;
FETCH Cnom INTO didjoueur, dnom, dprenom, dposte;
WHILE Cnom%found LOOP
INSERT INTO tligne VALUES (dnom||' '||dprenom||' '||dposte);
WHILE Cnom%found LOOP
INSERT INTO tligne VALUES (dnom||' '||dprenom||' '||dposte);
OPEN Cfaute;
dcpt:=0;
INSERT INTO tligne VALUES (Faute Nn Matchs);
FETCH Cfaute INTO dnbfaute;
WHILE Couest%found LOOP
INSERT INTO tligne VALUES (dcpt||' '||dnbfaute);
dcpt:=dcpt+1;
FETCH Cfaute INTO dnbfaute;
INSERT INTO tligne VALUES ('Faute Nb Matchs');
FETCH Cfaute INTO dfautes, dnbfautes;
WHILE Cfaute%found LOOP
INSERT INTO tligne VALUES (TO_CHAR(dfautes)||' '||TO_CHAR(dnbfautes));
FETCH Cfaute INTO dfautes, dnbfautes;
END LOOP;
CLOSE Cfaute;
FETCH Cnom INTO didjoueur, dnom, dprenom, dposte;
END LOOP;
CLOSE Cnom;
END;
.
/

Loading…
Cancel
Save