|
|
|
@ -390,7 +390,7 @@ Consignes :
|
|
|
|
|
\item La partie SQL+ n’est pas demandée pour les exercices 2 et 3
|
|
|
|
|
\end{itemize}
|
|
|
|
|
|
|
|
|
|
\begin{exercice}[PLSQL] (30 points)
|
|
|
|
|
\begin{exercice}[MF1] (10 points)
|
|
|
|
|
|
|
|
|
|
Donner le programme (partie SQL + et PL/SQL) permettant d’enregistrer un sport.
|
|
|
|
|
|
|
|
|
@ -406,260 +406,17 @@ Messages à prévoir :
|
|
|
|
|
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 ('Max points de'||'&vidjoueur'||' : '||to_char(dmaxpoint));
|
|
|
|
|
ELSE
|
|
|
|
|
INSERT INTO tligne VALUES('count detecte numero du joueur pas bon');
|
|
|
|
|
|
|
|
|
|
SELECT id_joueur INTO didjoueur FROM JOUEUR
|
|
|
|
|
WHERE id_joueur ='&vidjoueur';
|
|
|
|
|
end if;
|
|
|
|
|
|
|
|
|
|
EXCEPTION
|
|
|
|
|
when no_data_found then
|
|
|
|
|
INSERT INTO tligne VALUES('exception numero du joueur pas bon');
|
|
|
|
|
end ;
|
|
|
|
|
.
|
|
|
|
|
/
|
|
|
|
|
|
|
|
|
|
SELECT * FROM tligne ;
|
|
|
|
|
set verify on; set feedback on; set echo on;
|
|
|
|
|
\end{SaveVerbatim}
|
|
|
|
|
|
|
|
|
|
%% \cache{%\begin{small}
|
|
|
|
|
%% \BUseVerbatim{Maxpoints}
|
|
|
|
|
%% % \end{small}
|
|
|
|
|
%}
|
|
|
|
|
|
|
|
|
|
%% \begin{center}
|
|
|
|
|
%% \begin{verbatim}
|
|
|
|
|
%% Nom Prenom Date de naissance Nom Equipe Actuelle
|
|
|
|
|
%% XXXXXX XXXXXXX XX/XX/XXXX XXXXXXXX
|
|
|
|
|
%% XXXXXX XXXXXXX XX/XX/XXXX XXXXXXXX
|
|
|
|
|
%% XXXXXX XXXXXXX XX/XX/XXXX XXXXXXXX
|
|
|
|
|
%% ...
|
|
|
|
|
%% \end{verbatim}
|
|
|
|
|
%% \end{center}
|
|
|
|
|
|
|
|
|
|
\begin{SaveVerbatim}{Joueur}
|
|
|
|
|
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;
|
|
|
|
|
\end{SaveVerbatim}
|
|
|
|
|
|
|
|
|
|
%% \cache{%\begin{small}
|
|
|
|
|
%% \BUseVerbatim{Joueur}
|
|
|
|
|
%% % \end{small}
|
|
|
|
|
%% }
|
|
|
|
|
|
|
|
|
|
%% \item (20 points) Lister dans une table \code{TLIGNES} tous les
|
|
|
|
|
%% joueurs ayant particip\'e \`a un ALLSTAR de la conf\'erence Est et
|
|
|
|
|
%% ceux de la conf\'erence Ouest avec les informations suivantes :
|
|
|
|
|
%% \begin{center}
|
|
|
|
|
%% \begin{small}
|
|
|
|
|
%% \begin{verbatim}
|
|
|
|
|
%% ALLSTAR MATCH
|
|
|
|
|
%% EQUIPE de l'EST
|
|
|
|
|
%% Nom Prenom Poste Equipe Actuelle
|
|
|
|
|
%% XXXXXX XXXXXXX XXXXXX XXXXXXXX
|
|
|
|
|
%% XXXXXX XXXXXXX XXXXXX XXXXXXXX
|
|
|
|
|
%% EQUIPE de l'EST
|
|
|
|
|
%% Nom Prenom Poste Equipe Actuelle
|
|
|
|
|
%% XXXXXX XXXXXXX XXXXXX XXXXXXXX
|
|
|
|
|
%% XXXXXX XXXXXXX XXXXXX XXXXXXXX
|
|
|
|
|
%% \end{verbatim}
|
|
|
|
|
%% \end{small}
|
|
|
|
|
%% \end{center}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
\begin{SaveVerbatim}{Allstar}
|
|
|
|
|
DECLARE
|
|
|
|
|
dnom varchar2(20); dprenom varchar2(20);
|
|
|
|
|
dposte char(2); dnomequipe varchar2(20);
|
|
|
|
|
|
|
|
|
|
CURSOR Cest IS SELECT j.Nom, j.Prenom, j.Poste, e.Nom FROM JOUEUR j,
|
|
|
|
|
APPARTIENT a, EQUIPE e WHERE a.id_joueur = j.id_joueur and e.id_equipe
|
|
|
|
|
= a.id_equipe and e.conference='Est' and j.id_joueur in (SELECT
|
|
|
|
|
id_joueur FROM JOUE je, GAME g where g.Categorie='Allstar' and
|
|
|
|
|
g.id_game=je.id_game);
|
|
|
|
|
|
|
|
|
|
CURSOR Couest IS SELECT j.Nom, j.Prenom, j.Poste, e.Nom FROM JOUEUR j,
|
|
|
|
|
APPARTIENT a, EQUIPE e WHERE a.id_joueur = j.id_joueur and e.id_equipe
|
|
|
|
|
= a.id_equipe and e.conference='Ouest' and j.id_joueur in (SELECT
|
|
|
|
|
id_joueur FROM JOUE je, GAME g where g.Categorie='Allstar' and
|
|
|
|
|
g.id_game=je.id_game);
|
|
|
|
|
|
|
|
|
|
BEGIN
|
|
|
|
|
INSERT INTO tligne VALUES ('ALLSTAR GAME);
|
|
|
|
|
INSERT INTO tligne VALUES ('Conference Est');
|
|
|
|
|
INSERT INTO tligne VALUES ('Nom Prenom Poste Nom Equipe Actuelle');
|
|
|
|
|
OPEN Cest;
|
|
|
|
|
FETCH Cest INTO dnom, dprenom, dposte, dnomequipe;
|
|
|
|
|
WHILE Cest%found LOOP
|
|
|
|
|
INSERT INTO tligne VALUES (dnom||' '||dprenom||' '||dposte||' '||dnomequipe);
|
|
|
|
|
FETCH Cest INTO dnom, dprenom, dposte, dnomequipe;
|
|
|
|
|
END LOOP;
|
|
|
|
|
CLOSE Cest;
|
|
|
|
|
INSERT INTO tligne VALUES ('Conference Ouest');
|
|
|
|
|
OPEN Couest;
|
|
|
|
|
INSERT INTO tligne VALUES ('Nom Prenom Poste Nom Equipe Actuelle');
|
|
|
|
|
FETCH Couest INTO dnom, dprenom, dposte, dnomequipe;
|
|
|
|
|
WHILE Couest%found LOOP
|
|
|
|
|
INSERT INTO tligne VALUES (dnom||' '||dprenom||' '||dposte||' '||dnomequipe);
|
|
|
|
|
FETCH Couest INTO dnom, dprenom, dposte, dnomequipe;
|
|
|
|
|
END LOOP;
|
|
|
|
|
CLOSE Couest;
|
|
|
|
|
END;
|
|
|
|
|
.
|
|
|
|
|
/
|
|
|
|
|
SELECT * FROM tligne ;
|
|
|
|
|
\end{SaveVerbatim}
|
|
|
|
|
|
|
|
|
|
%% \cache{\begin{footnotesize}
|
|
|
|
|
%% \BUseVerbatim{Allstar}
|
|
|
|
|
%% \end{footnotesize}
|
|
|
|
|
%% }
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
\end{exercice}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
%% \begin{center}
|
|
|
|
|
%% \begin{tikzpicture}[every node/.style={inner sep=0,outer sep=0}]
|
|
|
|
|
|
|
|
|
|
%% \node (a) at (5,-4) {\begin{varwidth}{1.5in}
|
|
|
|
|
%% \begin{tabular}{|l|}
|
|
|
|
|
%% \hline
|
|
|
|
|
%% \rowcolor{Gray}AFFECTATION\\
|
|
|
|
|
%% \hline
|
|
|
|
|
%% \underline{id\_contrat}\\
|
|
|
|
|
%% \#id\_personnel\\
|
|
|
|
|
%% \#id\_patient\\
|
|
|
|
|
%% Date\_debut\\
|
|
|
|
|
%% Date\_fin\\ \hline
|
|
|
|
|
%% \end{tabular}
|
|
|
|
|
%% \end{varwidth}
|
|
|
|
|
%% };
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
%% \node (f) at (0,0) {\begin{varwidth}{2.5in}
|
|
|
|
|
%% \begin{tabular}{|l|}
|
|
|
|
|
%% \hline
|
|
|
|
|
%% \rowcolor{Gray}FONCTION\\
|
|
|
|
|
%% \hline
|
|
|
|
|
%% \underline{id\_fonction}\\
|
|
|
|
|
%% Designation\\
|
|
|
|
|
%% Salaire\\
|
|
|
|
|
%% \hline
|
|
|
|
|
%% \end{tabular}
|
|
|
|
|
%% \end{varwidth}
|
|
|
|
|
%% };
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
%% \node (p) at (5,0) {\begin{varwidth}{2.5in}
|
|
|
|
|
%% \begin{tabular}{|l|}
|
|
|
|
|
%% \hline
|
|
|
|
|
%% \rowcolor{Gray}PERSONNEL\\
|
|
|
|
|
%% \hline
|
|
|
|
|
%% \underline{id\_personnel}\\
|
|
|
|
|
%% \#id\_fonction\\
|
|
|
|
|
%% \#id\_hopital\\
|
|
|
|
|
%% Nom\\
|
|
|
|
|
%% Prenom\\
|
|
|
|
|
%% \hline
|
|
|
|
|
%% \end{tabular}
|
|
|
|
|
%% \end{varwidth}
|
|
|
|
|
%% };
|
|
|
|
|
|
|
|
|
|
%% \node[draw,rectangle] (pa) at (0,-4) {\begin{varwidth}{2in}
|
|
|
|
|
%% \begin{tabular}{l}
|
|
|
|
|
%% \rowcolor{Gray}PATIENT\\
|
|
|
|
|
%% \hline
|
|
|
|
|
%% \underline{id\_patient}\\
|
|
|
|
|
%% Nom\\
|
|
|
|
|
%% Prenom\\
|
|
|
|
|
%% Date\_naissance\\
|
|
|
|
|
%% \end{tabular}
|
|
|
|
|
%% \end{varwidth}};
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
%% \node[draw,rectangle] (h) at (9,0) {
|
|
|
|
|
%% \begin{tabular}{|l|}
|
|
|
|
|
%% \hline
|
|
|
|
|
%% \rowcolor{Gray}HOPITAL\\
|
|
|
|
|
%% \hline
|
|
|
|
|
%% \underline{id\_hopital}\\
|
|
|
|
|
%% Nom\\
|
|
|
|
|
%% Ville\\
|
|
|
|
|
%% Date\_creation\\
|
|
|
|
|
%% \hline
|
|
|
|
|
%% \end{tabular}
|
|
|
|
|
%% };
|
|
|
|
|
|
|
|
|
|
%% \draw[-latex] (p) -- (f);
|
|
|
|
|
%% \draw[-latex] (p) -- (h);
|
|
|
|
|
%% \draw[latex-] (p) -- (a);
|
|
|
|
|
%% \draw[latex-] (pa) -- (a);
|
|
|
|
|
|
|
|
|
|
%% \end{tikzpicture}
|
|
|
|
|
%% \end{center}
|
|
|
|
|
|
|
|
|
|
\begin{exercice}[PLSQL] (45 points)
|
|
|
|
|
\begin{exercice}[MF2] (15 points)
|
|
|
|
|
Donner le programme permettant la suppression d’un joueur à condition
|
|
|
|
|
qu’il n’ait pas fait de réservations pour aujourd’hui ou dans le
|
|
|
|
|
futur. L’identifiant du joueur aura été précédemment lu dans la
|
|
|
|
@ -674,7 +431,7 @@ une exception utilisateur:
|
|
|
|
|
\end{exercice}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
\begin{exercice}[PLSQL] (45 points)
|
|
|
|
|
\begin{exercice}[MF3] (20 points)
|
|
|
|
|
Donner le programme permettant d’afficher les réservations actuelles
|
|
|
|
|
ou futures par créneau horaire pour un sport donné. On utilisera le
|
|
|
|
|
nom du sport contenu dans la variable \code{vnomSport}. On affichera les
|
|
|
|
@ -695,20 +452,14 @@ Nombre de réservations total pour ce sport : nb
|
|
|
|
|
\end{SaveVerbatim}
|
|
|
|
|
|
|
|
|
|
% \cache{%\begin{small}
|
|
|
|
|
\BUseVerbatim{Affichage}
|
|
|
|
|
%\end{small}
|
|
|
|
|
\begin{center}
|
|
|
|
|
\fbox{ \BUseVerbatim{Affichage}}
|
|
|
|
|
\end{center}
|
|
|
|
|
|
|
|
|
|
%\end{small}
|
|
|
|
|
% }
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
\begin{SaveVerbatim}{Insertion}
|
|
|
|
|
TODO
|
|
|
|
|
\end{SaveVerbatim}
|
|
|
|
|
|
|
|
|
|
%% \cache{%\begin{small}
|
|
|
|
|
%% \BUseVerbatim{Insertion}
|
|
|
|
|
%% % \end{small}
|
|
|
|
|
%% }
|
|
|
|
|
|
|
|
|
|
\end{exercice}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|