master
Pascal LAFOURCADE 4 years ago
parent 1e41eb623a
commit e34a515749

@ -390,7 +390,7 @@ Consignes :
\item La partie SQL+ nest pas demandée pour les exercices 2 et 3 \item La partie SQL+ nest pas demandée pour les exercices 2 et 3
\end{itemize} \end{itemize}
\begin{exercice}[PLSQL] (30 points) \begin{exercice}[MF1] (10 points)
Donner le programme (partie SQL + et PL/SQL) permettant denregistrer un sport. Donner le programme (partie SQL + et PL/SQL) permettant denregistrer un sport.
@ -406,260 +406,17 @@ Messages à prévoir :
DROP TABLE tligne ; DROP TABLE tligne ;
CREATE TABLE tligne (ligne varchar2(100)) ; 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} \end{SaveVerbatim}
%% \cache{%\begin{small} %% \cache{%\begin{small}
%% \BUseVerbatim{Maxpoints} %% \BUseVerbatim{Maxpoints}
%% % \end{small} %% % \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} \end{exercice}
\begin{exercice}[MF2] (15 points)
%% \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)
Donner le programme permettant la suppression dun joueur à condition Donner le programme permettant la suppression dun joueur à condition
quil nait pas fait de réservations pour aujourdhui ou dans le quil nait pas fait de réservations pour aujourdhui ou dans le
futur. Lidentifiant du joueur aura été précédemment lu dans la futur. Lidentifiant du joueur aura été précédemment lu dans la
@ -674,7 +431,7 @@ une exception utilisateur:
\end{exercice} \end{exercice}
\begin{exercice}[PLSQL] (45 points) \begin{exercice}[MF3] (20 points)
Donner le programme permettant dafficher les réservations actuelles Donner le programme permettant dafficher les réservations actuelles
ou futures par créneau horaire pour un sport donné. On utilisera le 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 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} \end{SaveVerbatim}
% \cache{%\begin{small} % \cache{%\begin{small}
\BUseVerbatim{Affichage} \begin{center}
%\end{small} \fbox{ \BUseVerbatim{Affichage}}
\end{center}
%\end{small}
% } % }
\begin{SaveVerbatim}{Insertion}
TODO
\end{SaveVerbatim}
%% \cache{%\begin{small}
%% \BUseVerbatim{Insertion}
%% % \end{small}
%% }
\end{exercice} \end{exercice}

Loading…
Cancel
Save