Vous êtes sur la page 1sur 3

---Create Tables---

-Pays
CREATE TABLE Pays(CodePays INT PRIMARY KEY,pays varchar(30),Equipe);
-Equipe
CREATE TABLE Equipe(CodeEquipe INT PRIMARY KEY,
nomE varchar(30),
CodePays INT,
FOREIGN KEY (CodePays) REFERENCES pays(CodePays));
-Joueur
CREATE TABLE Joueur(CodeJoueur INT PRIMARY KEY,
nomJ varchar(30),
CodeEquipe INT,
FOREIGN KEY (CodeEquipe) REFERENCES Equipe(CodeEquipe));
-Match
CREATE TABLE MatchT(CodeEquipe1 INT ,
CodeEquipe2 INT ,
dateMatch DATE,
Scrore1 INT,
Scrore2 INT,
FOREIGN KEY (CodeEquipe1) REFERENCES Equipe(CodeEquipe),
FOREIGN KEY (CodeEquipe2) REFERENCES Equipe(CodeEquipe),
PRIMARY KEY (CodeEquipe1,CodeEquipe2,dateMatch));
---Insert into tables---
-Pays
INSERT INTO Pays (CodePays, pays) VALUES
(1, 'France'),
(2, 'Germany'),
(3, 'Spain'),
(4, 'Italy'),
(5, 'Brazil'),
(6, 'Argentina'),
(7, 'England'),
(8, 'Portugal'),
(9, 'Netherlands'),
(10, 'Belgium');

-Equipe
INSERT INTO Equipe (CodeEquipe, nomE, CodePays) VALUES
(1, 'Team A', 1),
(2, 'Team B', 2),
(3, 'Team C', 3),
(4, 'Team D', 4),
(5, 'Team E', 5),
(6, 'Team F', 6),
(7, 'Team G', 7),
(8, 'Team H', 8),
(9, 'Team I', 9),
(10, 'Team J', 10);

INSERT INTO Joueur (CodeJoueur, nomJ, CodeEquipe) VALUES


(1, 'Player 1', 1),
(2, 'Player 2', 2),
(3, 'Player 3', 3),
(4, 'Player 4', 4),
(5, 'Player 5', 5),
(6, 'Player 6', 6),
(7, 'Player 7', 7),
(8, 'Player 8', 8),
(9, 'Player 9', 9),
(10, 'Player 10', 10);

-Match
INSERT INTO MatchT (CodeEquipe1, CodeEquipe2, dateMatch, Score1, Score2) VALUES
(1, 2, '2023-10-22', 3, 2),
(3, 4, '2023-10-23', 1, 1),
(5, 6, '2023-10-24', 2, 4),
(7, 8, '2023-10-25', 1, 3),
(9, 10, '2023-10-26', 2, 2),
(2, 3, '2023-10-27', 0, 1),
(4, 5, '2023-10-28', 1, 0),
(6, 7, '2023-10-29', 2, 2),
(8, 9, '2023-10-30', 1, 0),
(10, 1, '2023-10-31', 3, 1);
---joueur_no_match----
DROP PROCEDURE IF EXISTS joueur_no_match;
DELIMITER //
CREATE PROCEDURE joueur_no_match()
BEGIN
SELECT * FROM joueur WHERE CodeEquipe
NOT IN (
SELECT DISTINCT CodeEquipe1 FROM matcht
UNION
SELECT DISTINCT CodeEquipe2 FROM matcht
);
END //
DELIMITER ;

CALL joueur_no_match();

---uf_nb_match_par_joueur---
DROP FUNCTION IF EXISTS uf_nb_match_par_joueur;
DELIMITER //
CREATE FUNCTION uf_nb_match_par_joueur(codeJ INT)
RETURNS INT
READS SQL DATA
BEGIN
DECLARE equipe INT;
DECLARE res1 INT;
DECLARE res2 INT;
SET equipe = (SELECT CodeEquipe FROM Joueur WHERE CodeJoueur = codeJ);
SET res1 = (SELECT COUNT(*) FROM MatchT WHERE CodeEquipe1 = equipe);
SET res2 = (SELECT COUNT(*) FROM MatchT WHERE CodeEquipe2 = equipe);
RETURN res1 + res2;
END //
DELIMITER ;

---del_match---
DROP PROCEDURE IF EXISTS del_match;
DELIMITER //
CREATE PROCEDURE del_match(y INT)
BEGIN
DELETE FROM matcht WHERE YEAR(dateMatch) = y;
END //
DELIMITER ;
CALL del_match(2020);

---addScore---
DROP PROCEDURE IF EXISTS addSore;
DELIMITER //
CREATE PROCEDURE addSore(equipe INT)
BEGIN
UPDATE matcht SET Score1 =Score1+1 WHERE CodeEquipe1= equipe;
UPDATE matcht SET Score2 =Score2+1 WHERE CodeEquipe2= equipe;
END//
DELIMITER ;
CALL addSore(1);

Vous aimerez peut-être aussi