-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathetape4.sql
More file actions
84 lines (71 loc) · 3.16 KB
/
Copy pathetape4.sql
File metadata and controls
84 lines (71 loc) · 3.16 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
-- obtenir la liste des combats en utilisant un système de pagination.
-- Pour cela, nous allons utiliser une clause LIMIT dans notre requête SQL pour spécifier le nombre de résultats à retourner et un décalage (offset) à partir duquel les résultats doivent être récupérés.
-- Requête pour obtenir la liste des combats avec pagination
-- par date de début, du plus récent au plus ancien -- 0 décalge
SELECT *
FROM Combat
ORDER BY date_debut DESC
LIMIT 10 OFFSET 0;
--créer une vue avec la requête numéro 6 de l'étape 3, nommée StatistiqueMonsterQuete.
-- Création de la vue StatistiqueMonsterQuete
show columns from statistiquemonsterquete;
CREATE VIEW StatistiqueMonsterQuete AS
SELECT
Monster.nom AS nom_monster,
ParticipationQuete.date_participation AS date_participation,
IFNULL(ParticipationQuete.id_quete, 'Non participé') AS a_participe_quete
FROM Monster
LEFT JOIN ParticipationQuete ON Monster.monster_id = ParticipationQuete.id_monster
ORDER BY ParticipationQuete.date_participation DESC;
-- Créer une vue avec la requête numéro 7 de l'étape 3 nommée StatistiqueEvenement :
-- Création de la vue StatistiqueEvenement
CREATE VIEW StatistiqueEvenement AS
SELECT
Evenement.evenement_id,
Evenement.nom AS nom_evenement,
COUNT(DISTINCT ParticipationEvenement.monster_id) AS nombre_monsters_participants,
Arene.nom AS nom_arene,
COUNT(DISTINCT Equipement.equipement_id) AS nombre_equipements_disponibles,
COUNT(DISTINCT Combat.combat_id) AS nombre_combats_effectues
FROM Evenement
LEFT JOIN ParticipationEvenement ON Evenement.evenement_id = ParticipationEvenement.evenement_id
LEFT JOIN Combat ON Evenement.evenement_id = Combat.evenement_id
LEFT JOIN Arene ON Evenement.arene_id = Arene.arene_id
LEFT JOIN Equipement ON Evenement.arene_id = Equipement.arene_id
GROUP BY Evenement.evenement_id, Evenement.nom, Arene.nom
ORDER BY nombre_monsters_participants ASC;
-- Création de la procédure stockée MonsterType
CALL MonsterType('Feu');
DELIMITER //
CREATE PROCEDURE MonsterType(IN type_name VARCHAR(50))
BEGIN
SELECT *
FROM Monster
JOIN Type ON Monster.type_id = Type.type_id
WHERE Type.name = type_name;
END //
DELIMITER ;
--Cette procédure stockée prend en entrée le nom d'un type de monster et renvoie la liste des monsters de ce type.
-- Création de la procédure stockée MiseAJourMonster
call MiseAJourMonster(1,500,5,400,300);
DELIMITER //
CREATE PROCEDURE MiseAJourMonster(
IN monster_id INT,
IN new_point_vie INT,
IN new_niveau INT,
IN new_points_puissance INT,
IN new_point_experience INT
)
BEGIN
UPDATE Monster
SET point_vie = new_point_vie,
niveau = new_niveau,
points_puissance = new_points_puissance,
point_experience = new_point_experience
WHERE monster_id = monster_id;
SELECT *
FROM Monster
WHERE monster_id = monster_id;
END //
DELIMITER ;
--Cette procédure stockée prend en entrée l'identifiant d'un monster ainsi que les nouvelles valeurs des caractéristiques à mettre à jour, puis effectue les mises à jour nécessaires dans la base de données. Ensuite, elle renvoie l'ensemble des caractéristiques du monster mis à jour.