Advertisement
Guest User

Untitled

a guest
Nov 27th, 2015
66
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 14.89 KB | None | 0 0
  1. DROP TABLE Clube cascade constraints purge; -- Não apaga ??
  2. DROP Table Equipa cascade constraints purge;
  3. Drop Table Jogo cascade constraints purge;
  4. Drop Table Estatistica cascade constraints purge;
  5. Drop Table Jogador cascade constraints purge;
  6. Drop Table ArbitroPrincipal cascade constraints purge;
  7. Drop Table RelatorioJogo cascade constraints purge;
  8. Drop Table Substituição cascade constraints purge;
  9. Drop Table Convocado cascade constraints purge;
  10. Drop Table Golo cascade constraints purge;
  11. Drop Table Convocado_CartãoAmarelo cascade constraints purge;
  12. Drop Table Convocado_CartãoVermelho cascade constraints purge;
  13. Drop Table CartãoAmarelo cascade constraints purge;
  14. Drop Table CartãoVermelho cascade constraints purge;
  15.  
  16.  
  17. CREATE TABLE Clube(
  18. clubeID numeric(10) primary key,
  19. nomeClube VARCHAR(20) not null
  20. );
  21.  
  22. CREATE TABLE Equipa(
  23. equipaID numeric(10) primary key,
  24. nomeEquipa VARCHAR(20) not null,
  25. pais VARCHAR(20) not null,
  26. nomeEstadio VARCHAR(20) not null,
  27. tempoPosseBola NUMERIC(20),
  28. numeroGolos numeric(20),
  29. numeroFaltas NUMERIC(10),
  30. numeroRemates NUMERIC(10),
  31. numeroForasJogo NUMERIC(10),
  32. numeroCantos NUMERIC(10),
  33. clubeID numeric(10) References Clube(clubeID)
  34. );
  35.  
  36. CREATE TABLE ArbitroPrincipal(
  37. arbitroPrincipalID numeric(10),
  38. nomeArbitro VARCHAR(20),
  39. Primary Key (arbitroPrincipalID, nomeArbitro));
  40.  
  41. CREATE TABLE Jogo(
  42. codigoIdentificação numeric(10),
  43. dataJogo DATE, -- Date type
  44. horaJogo number(4,2), -- Time type
  45. FaseDaCompetição varchar(20),
  46. equipaID numeric(10) references Equipa(equipaID),
  47. equipaID2 numeric(10) references Equipa(equipaID),
  48. arbitroPrincipalID numeric(10) references ArbitroPrincipal(arbitroPrincipalID),
  49. Constraint PK_JOGO primary key(codigoIdentificação, equipaID, equipaID2)
  50. );
  51.  
  52. CREATE TABLE Estatistica(
  53. estatisticaID numeric(10),
  54. equipaID numeric(10),
  55. equipaID2 numeric(10),
  56. codigoIdentificação numeric(10) not null,
  57. constraint FK_Estatistica foreign key(codigoIdentificação,equipaID,equipaID2) references Jogo(codigoIdentificação,equipaID,equipaID2),
  58. constraint PK_Estatistica primary key(estatisticaID)
  59. );
  60.  
  61. CREATE TABLE Jogador(
  62. jogadorID numeric(10) primary key,
  63. equipaID numeric(10) references Equipa(equipaID),
  64. nomeCompleto varchar(40),
  65. nacionalidade varchar(30),
  66. dataEntrada DATE NOT NULL,
  67. numeroCamisola numeric(2),
  68. numeroGolos numeric(2),
  69. numeroJogos numeric(3),
  70. tempoJogo numeric(3)
  71. );
  72.  
  73. CREATE TABLE RelatorioJogo(
  74. codigoIdentificação numeric(10) primary key,
  75. golosA numeric(10),
  76. golosB numeric(10),
  77. dataJogo DATE,
  78. horaJogo DATE,
  79. equipaID numeric(10),
  80. equipaID2 numeric(10),
  81. arbitroPrincipalID numeric(10),
  82. nomeArbitro VARCHAR(20),
  83. constraint FK_RelatorioJogoArbitro foreign key(arbitroPrincipalID, nomeArbitro) references ArbitroPrincipal(arbitroPrincipalID, nomeArbitro),
  84. constraint FK_RelatorioJogo foreign key(codigoIdentificação,equipaID,equipaID2) references Jogo(codigoIdentificação, equipaID, equipaID2)
  85. );
  86.  
  87. CREATE TABLE Substituição(
  88. substituiçãoID numeric(10) primary key,
  89. jogadorID numeric(10) references Jogador(jogadorID),
  90. jogadorID2 numeric(10) references Jogador(jogadorID),
  91. codigoIdentificação numeric(10) references RelatorioJogo(codigoIdentificação)
  92. );
  93.  
  94. CREATE TABLE Convocado(
  95. jogadorID numeric(10) references Jogador(jogadorID),
  96. equipaID numeric(10),
  97. equipaID2 numeric(10),
  98. codigoIdentificação numeric(10),
  99. constraint FK_Convocado foreign key(jogadorID, equipaID, equipaID2) references Jogo(codigoIdentificação, equipaID, equipaID2),
  100. constraint PK_Convocado primary key(jogadorID, codigoIdentificação)
  101. );
  102.  
  103. CREATE TABLE Golo(
  104. goloID numeric(10),
  105. jogadorID numeric(10) references Jogador(jogadorID),
  106. equipaID numeric(10),
  107. equipaID2 numeric(10),
  108. codigoIdentificação numeric(10),
  109. constraint FK_Golo foreign key(codigoIdentificação,equipaID, equipaID2) references Jogo(codigoIdentificação, equipaID, equipaID2),
  110. constraint PK_Golo Primary Key(goloID,jogadorID,codigoIdentificação)
  111. );
  112.  
  113.  
  114. CREATE TABLE CartãoAmarelo(
  115. cartãoAmareloID numeric(10),
  116. Primary Key (cartãoAmareloID)
  117. );
  118.  
  119. CREATE TABLE CartãoVermelho(
  120. cartãoVermelhoID numeric(10),
  121. Primary Key (cartãoVermelhoID)
  122. );
  123.  
  124. CREATE TABLE Convocado_CartãoAmarelo(
  125. jogadorID numeric(10) references Jogador(jogadorID),
  126. equipaID numeric(10),
  127. equipaID2 numeric(10),
  128. codigoIdentificação numeric(10),
  129. constraint FK_Convocado_CartãoAmarelo foreign key(codigoIdentificação, equipaID, equipaID2) references Jogo(codigoIdentificação, equipaID, equipaID2),
  130. cartãoAmareloID numeric(10) references CartãoAmarelo(cartãoAmareloID),
  131. constraint PK_Convocado_CartãoAmarelo primary key(jogadorID, codigoIdentificação, cartãoAmareloID)
  132. );
  133.  
  134. CREATE TABLE Convocado_CartãoVermelho(
  135. jogadorID numeric(10) references Jogador(jogadorID),
  136. equipaID numeric(10),
  137. equipaID2 numeric(10),
  138. codigoIdentificação numeric(10),
  139. constraint FK_Convocado_CartãoVermelho foreign key(codigoIdentificação, equipaID, equipaID2) references Jogo(codigoIdentificação, equipaID, equipaID2),
  140. cartãoVermelhoID numeric(10) references CartãoVermelho(cartãoVermelhoID),
  141. constraint PK_Convocado_CartãoVermelho primary key(jogadorID, codigoIdentificação, cartãoVermelhoID)
  142. );
  143.  
  144. INSERT INTO Clube VALUES(001, 'FCP');
  145. INSERT INTO Clube VALUES(002, 'SLB');
  146. INSERT INTO Clube VALUES(003, 'SCB');
  147. INSERT INTO Clube VALUES(004, 'RMF');
  148. INSERT INTO Clube VALUES(005, 'BFC');
  149. INSERT INTO Clube VALUES(006, 'CGD');
  150. INSERT INTO Equipa(equipaID, nomeEquipa, pais, nomeEstadio, tempoPosseBola, numeroFaltas, numeroRemates, numeroForasJogo, numeroCantos, clubeID)
  151. VALUES (001, 'A','Portugal', 'Dragão', 144, 5, 10, 3, 7,001);
  152. INSERT INTO Equipa(equipaID, nomeEquipa, pais, nomeEstadio, tempoPosseBola, numeroFaltas, numeroRemates, numeroForasJogo, numeroCantos, clubeID)
  153. VALUES (002, 'B','Portugal', 'Luz', 103, 5, 10, 3, 7,002);
  154. INSERT INTO Equipa(equipaID, nomeEquipa, pais, nomeEstadio, tempoPosseBola, numeroFaltas, numeroRemates, numeroForasJogo, numeroCantos, clubeID)
  155. VALUES (003, 'C','Portugal', 'Alvalade', 100, 5, 10, 3, 7,003);
  156. INSERT INTO Equipa(equipaID, nomeEquipa, pais, nomeEstadio, tempoPosseBola, numeroFaltas, numeroRemates, numeroForasJogo, numeroCantos, clubeID)
  157. VALUES (004, 'D','Espanha', 'Madrid', 160, 5, 10, 3, 7,004);
  158.  
  159.  
  160. INSERT INTO Estatistica VALUES (1);
  161. INSERT INTO Estatistica VALUES (2);
  162. INSERT INTO Estatistica VALUES (3);
  163. INSERT INTO Jogo(codigoIdentificação, dataJogo, horaJogo, FaseDaCompetição, equipaID, equipaID2, arbitroPrincipalID)
  164. VALUES (145, to_date('15102004','DDMMYYYY'), 10.00, 'Oitavos-Final',001,002,001);
  165. INSERT INTO Jogo(codigoIdentificação, dataJogo, horaJogo, FaseDaCompetição, equipaID, equipaID2, arbitroPrincipalID)
  166. VALUES (146, to_date('16102004','DDMMYYYY'), 10.00, 'Oitavos-Final',002,003,002);
  167. INSERT INTO Jogo(codigoIdentificação, dataJogo, horaJogo, FaseDaCompetição, equipaID, equipaID2, arbitroPrincipalID)
  168. VALUES (147, to_date('17102004','DDMMYYYY'), 10.00, 'Oitavos-Final',003,004,003);
  169. INSERT INTO Jogo(codigoIdentificação, dataJogo, horaJogo, FaseDaCompetição, equipaID, equipaID2, arbitroPrincipalID)
  170. VALUES (148, to_date('18102004','DDMMYYYY'), 10.00, 'Oitavos-Final',001,003,004);
  171. INSERT INTO Jogo VALUES (001, 14-08-2004, '10:00', "Grupos");
  172. INSERT INTO Jogo VALUES (002, 15-10-2004, '10:00', "Grupos");
  173. INSERT INTO Jogo VALUES (002, 15-10-2004, '10:00', "Grupos");
  174. INSERT INTO ArbitroPrincipal VALUES (1);
  175. INSERT INTO ArbitroPrincipal VALUES (2);
  176. INSERT INTO ArbitroPrincipal VALUES (3);
  177. INSERT INTO ArbitroPrincipal VALUES (4);
  178. INSERT INTO Golo VALUES (3);
  179. INSERT INTO Golo VALUES (2);
  180. INSERT INTO Golo VALUES (1);
  181. -- Jogadores do Benfica
  182. INSERT INTO Jogador(jogadorID, equipaID, nomeCompleto, nacionalidade, dataEntrada, numeroCamisola, numeroGolos, numeroJogos)
  183. VALUES (148, 002 ,'Nuno Freire', 'Portuguesa', to_date('15102004','DDMMYYYY'), 18, 50, 101);
  184. INSERT INTO Jogador(jogadorID, equipaID, nomeCompleto, nacionalidade, dataEntrada, numeroCamisola, numeroGolos, numeroJogos)
  185. VALUES (140, 002 ,'Carlos Parreira', 'Portuguesa', to_date('15102004','DDMMYYYY'), 10, 3, 101);
  186. INSERT INTO Jogador(jogadorID, equipaID, nomeCompleto, nacionalidade, dataEntrada, numeroCamisola, numeroGolos, numeroJogos)
  187. VALUES (141, 002 ,'Eusébio', 'Portuguesa', to_date('15102004','DDMMYYYY'), 11, 3, 101);
  188. INSERT INTO Jogador(jogadorID, equipaID, nomeCompleto, nacionalidade, dataEntrada, numeroCamisola, numeroGolos, numeroJogos)
  189. VALUES (142, 002 ,'Rui Costa', 'Portuguesa', to_date('15102004','DDMMYYYY'), 12, 3, 101);
  190. INSERT INTO Jogador(jogadorID, equipaID, nomeCompleto, nacionalidade, dataEntrada, numeroCamisola, numeroGolos, numeroJogos)
  191. VALUES (143, 002 ,'Rui Sousa', 'Portuguesa', to_date('15102004','DDMMYYYY'), 13, 3, 101);
  192. INSERT INTO Jogador(jogadorID, equipaID, nomeCompleto, nacionalidade, dataEntrada, numeroCamisola, numeroGolos, numeroJogos)
  193. VALUES (144, 002 ,'Pedro Jorge', 'Portuguesa', to_date('15102004','DDMMYYYY'), 14, 3, 101);
  194. INSERT INTO Jogador(jogadorID, equipaID, nomeCompleto, nacionalidade, dataEntrada, numeroCamisola, numeroGolos, numeroJogos)
  195. VALUES (145, 002 ,'Rui Silva', 'Portuguesa', to_date('15102004','DDMMYYYY'), 15, 3, 101);
  196. INSERT INTO Jogador(jogadorID, equipaID, nomeCompleto, nacionalidade, dataEntrada, numeroCamisola, numeroGolos, numeroJogos)
  197. VALUES (146, 002 ,'Mantorras', 'Portuguesa', to_date('15102004','DDMMYYYY'), 16, 3, 101);
  198. INSERT INTO Jogador(jogadorID, equipaID, nomeCompleto, nacionalidade, dataEntrada, numeroCamisola, numeroGolos, numeroJogos)
  199. VALUES (147, 002 ,'Paulo Jorge', 'Portuguesa', to_date('15102004','DDMMYYYY'), 17, 3, 101);
  200. INSERT INTO Jogador(jogadorID, equipaID, nomeCompleto, nacionalidade, dataEntrada, numeroCamisola, numeroGolos, numeroJogos)
  201. VALUES (149, 002 ,'Paulo Sousa', 'Portuguesa', to_date('15102004','DDMMYYYY'), 19, 3, 101);
  202. INSERT INTO Jogador(jogadorID, equipaID, nomeCompleto, nacionalidade, dataEntrada, numeroCamisola, numeroGolos, numeroJogos)
  203. VALUES (150, 002 ,'Luisão', 'Portuguesa', to_date('15102004','DDMMYYYY'), 20, 3, 101);
  204. INSERT INTO Jogador(jogadorID, equipaID, nomeCompleto, nacionalidade, dataEntrada, numeroCamisola, numeroGolos, numeroJogos)
  205. VALUES (151, 002 ,'Nuno Gomes', 'Portuguesa', to_date('15102004','DDMMYYYY'), 21, 3, 101);
  206. -- Jogadores do Porto
  207. INSERT INTO Jogador(jogadorID, equipaID, nomeCompleto, nacionalidade, dataEntrada, numeroCamisola, numeroGolos, numeroJogos)
  208. VALUES (152, 001 ,'Bruno Alves', 'Portuguesa', to_date('15102004','DDMMYYYY'), 21, 10, 101);
  209. INSERT INTO Jogador(jogadorID, equipaID, nomeCompleto, nacionalidade, dataEntrada, numeroCamisola, numeroGolos, numeroJogos)
  210. VALUES (153, 001 ,'Deco', 'Portuguesa', to_date('15102004','DDMMYYYY'), 21, 30, 101);
  211.  
  212. INSERT INTO Jogador VALUES (123, "Quaresma", "Portuguesa", 5-04-2005, 7, 3, 96);
  213. INSERT INTO Jogador VALUES (001, "Roger Phelps", "Inglesa", 5-05-2008, 21, 3, 46);
  214. INSERT INTO Jogador VALUES (002, "Tom Cruise", "Americana", 8-08-2010, 4, 3, 75);
  215. INSERT INTO Jogador VALUES (003, "Jared Padalecki", "Polaca", 5-10-2011, 19, 3, 95);
  216. INSERT INTO Jogador VALUES (004, "Ivan Metrovich", "Russa", 8-02-2014, 1, 3, 98);
  217. INSERT INTO Substituicao VALUES (35);
  218. INSERT INTO Substituicao VALUES (23);
  219. INSERT INTO Substituicao VALUES (01);
  220. INSERT INTO Substituicao VALUES (02);
  221. INSERT INTO Substituicao VALUES (03);
  222. INSERT INTO Substituicao VALUES (45);
  223. INSERT INTO CartaoAmarelo VALUES (75);
  224. INSERT INTO CartaoAmarelo VALUES (01);
  225. INSERT INTO CartaoAmarelo VALUES (02);
  226. INSERT INTO CartaoAmarelo VALUES (03);
  227. INSERT INTO CartaoAmarelo VALUES (04);
  228. INSERT INTO CartaoVermelho VALUES (05);
  229. INSERT INTO CartaoVermelho VALUES (01);
  230. INSERT INTO CartaoVermelho VALUES (02);
  231. INSERT INTO CartaoVermelho VALUES (03);
  232. INSERT INTO RelatorioJogo VALUES (4-5, 14-5-2004, '16:00');
  233. INSERT INTO RelatorioJogo VALUES (0-0, 21-5-2004, '20:00');
  234. INSERT INTO RelatorioJogo VALUES (1-2, 30-5-2004, '17:00');
  235. INSERT INTO RelatorioJogo VALUES (3-1, 10-5-2004, '16:00');
  236. INSERT INTO RelatorioJogo VALUES (2-0, 10-5-2004, '18:00');
  237. INSERT INTO RelatorioJogo VALUES (2-2, 11-5-2004, '21:00');
  238. INSERT INTO RelatorioJogo VALUES (1-2, 14-5-2004, '16:00');
  239.  
  240.  
  241. ----||PROCEDURE QUE RECEBE COMO PARAMETROS (NOME ARBITRO, JOGO, DATA REALIZAVCAO JOGO E REGISTO RELATORIO JOGO)||--
  242. DROP SEQUENCE Recebeparametros;
  243.  
  244. CREATE OR REPLACE PROCEDURE Recebeparametros(
  245. p_nomeArbitro ARBITROPRINCIPAL.NOME%TYPE,
  246. p_jogo JOGO.CODIGOIDENTIFICACAO%TYPE,
  247. p_dataJogo JOGO.DATAJOGO%TYPE)
  248. IS
  249. BEGIN
  250. INSERT INTO RELATORIOJOGO (códigoIdentificação,golosA, golosB, dataJogo, horasJogo, equipaID, equipaID2, arbitroPrincipalID, arbitronome)
  251. values (p_jogo, null, null, p_dataJogo, null, null, null,null, p_nomeArbitro);
  252. END RecebeParametros;
  253.  
  254. /*
  255. --a)
  256. SELECT DISTINCT J.NOMECOMPLETO
  257. FROM EQUIPA E, JOGADOR J, JOGO JG, CLUBE C, CONVOCADO CV
  258. WHERE E.EQUIPAID=JG.EQUIPAID
  259. AND C.CLUBEID=E.CLUBEID
  260. AND J.JOGADORID=CV.JOGADORID
  261. AND JG.CODIGOIDENTIFICACAO=CV.CODIGOIDENTIFICACAO;
  262.  
  263. --b)
  264. SELECT AVG(E.TEMPOPOSSEBOLA)
  265. FROM EQUIPA E, JOGO JG, CLUBE C
  266. WHERE E.EQUIPAID=JG.EQUIPAID
  267. AND C.CLUBEID=E.CLUBEID
  268. AND C.NOMECLUBE='RMF';
  269.  
  270. --c)
  271.  
  272.  
  273. SELECT DISTINCT J.NOMECOMPLETO
  274. FROM EQUIPA E, CLUBE C, JOGADOR J, CONVOCADO CV
  275. WHERE J.JOGADORID=CV.JOGADORID
  276. AND E.JOGADORID=J.JOGADORID
  277. AND C.CLUBEID=E.CLUBEID
  278. AND J.NUMEROGOLOS > (SELECT MAX(J.NUMEROGOLOS)
  279. FROM EQUIPA E, CLUBE C, JOGADOR J, CONVOCADO CV
  280. AND J.JOGADOR ID=CV.JOGADORID
  281. AND C.CLUBEID=E.CLUBEID
  282. AND C.CLUBEID='Benfica');
  283.  
  284. --d)
  285.  
  286. Select J.NOME
  287. FROM JOGADOR J
  288. WHERE J.TEMPOJOGO > (Select MIN(J.TempoJogo)
  289. From JOGADOR J, equipa E, JOGO JO, RELATORIOJOGO RJ
  290. WHERE J.EQUIPAID = E.equipaID
  291. AND (E.EQUIPAID = JO.EQUIPAID AND RJ.GOLOSA > RJ.GOLOSB OR E.EQUIPAID = JO.EQUIPAID2 AND RJ.GOLOSB>RJ.GOLOSA)
  292. AND JO."FASEDACOMPETIÇÃO"='Final'
  293. AND JO."CODIGOIDENTIFICAÇÃO"=RJ."CODIGOIDENTIFICAÇÃO"
  294. );
  295.  
  296. --e)
  297. SELECT J.NOMECOMPLETO
  298. FROM JOGADOR J, EQUIPA E
  299. WHERE E.NUMEROGOLOS = (SELECT MAX(E.NUMEROGOLOS)
  300. FROM EQUIPA E
  301. WHERE E.EQUIPAID=E.EQUIPAID);
  302.  
  303. -- f)
  304. SELECT DISTINCT C.NOMECLUBE
  305. FROM CLUBE C, EQUIPA E
  306. WHERE C.CLUBEID==E.CLUBEID
  307. AND E.NUMEROREMATES= (SELECT MAX(AVG(E.NUMEROREMATES))
  308. FROM CLUBE C, EQUIPA E
  309. WHERE C.CLUBEID=E.CLUBEID);
  310. */
  311.  
  312.  
  313.  
  314. CREATE OR REPLACE PACKAGE pkgLC AS
  315. TYPE ref_cursor IS REF CURSOR;
  316. END pkgLC;
  317.  
  318. CREATE OR REPLACE PROCEDURE addRelatorioJogo(nomeArbitro VARCHAR, codigoIdentificação NUMBER, dataJogo DATE)
  319. AS
  320. BEGIN
  321. INSERT INTO RELATORIOJOGO (codigoIdentificação,golosA, golosB, dataJogo, horaJogo, equipaID, equipaID2, arbitroPrincipalID, nomearbitro)
  322. VALUES(codigoIdentificação, null, null, dataJogo, '', null, null, null, nomeArbitro);
  323. END;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement