USE Mike ;
----------------------------------
-- on vide les tables
----------------------------------
DELETE FROM TROUVER ;
DELETE FROM PARTICIPER ;
DELETE FROM COMPOSER ;
DELETE FROM EXTRAIT ;
DELETE FROM BLINDTEST ;
DELETE FROM BLINDEUR ;
----------------------------------------------
-- blindeurs
----------------------------------------------
INSERT INTO BLINDEUR (pseudo) VALUES
('fernand'), ('raoul'), ('paul'), ('mado')
, ('folace'), ('jean'), ('antoine'), ('patricia')
;
SELECT pseudo from BLINDEUR
;
----------------------------------------
-- animateurs
----------------------------------------
INSERT INTO ANIMATEUR (animateurId)
SELECT blindeurId FROM BLINDEUR WHERE pseudo IN ('fernand', 'raoul', 'paul', 'mado')
;
SELECT pseudo AS Animateur
FROM ANIMATEUR AS x
JOIN BLINDEUR AS y on x.animateurId = y.blindeurId
;
----------------------------------------
-- joueurs
----------------------------------------
INSERT INTO JOUEUR (joueurId)
SELECT blindeurId
FROM BLINDEUR
WHERE pseudo IN ('fernand', 'mado', 'folace', 'jean', 'antoine', 'patricia')
;
------------------------------
-- pour voir
------------------------------
SELECT pseudo AS Joueur
FROM JOUEUR AS x
JOIN BLINDEUR AS y on x.joueurId = y.blindeurId
;
------------------------------------------------
-- Les blindtests
------------------------------------------------
INSERT INTO BLINDTEST (blindtestCode, animateurId)
SELECT 'blindt01', blindeurId
FROM BLINDEUR
WHERE pseudo = 'fernand'
;
INSERT INTO BLINDTEST (blindtestCode, animateurId)
SELECT 'blindt02', blindeurId
FROM BLINDEUR
WHERE pseudo = 'mado'
;
INSERT INTO BLINDTEST (blindtestCode, animateurId)
SELECT 'blindt03', blindeurId
FROM BLINDEUR
WHERE pseudo = 'fernand'
;
INSERT INTO BLINDTEST (blindtestCode, animateurId)
SELECT 'blindt04', blindeurId
FROM BLINDEUR
WHERE pseudo = 'fernand'
;
------------------------------
-- pour voir
------------------------------
SELECT '' as blindtest, blindtestCode, pseudo
FROM BLINDTEST AS x
JOIN BLINDEUR AS y ON x.animateurId = y.blindeurId
;
---------------------------------------------------
-- participation des joueurs aux blindtests
---------------------------------------------------
INSERT INTO PARTICIPER_V (pseudo, blindtestCode) VALUES
('folace', 'blindt01')
, ('folace', 'blindt02')
, ('jean', 'blindt01')
;
-- Le blindeur fernand anime le blindtest blindt01
-- et ne pourra donc y participer, le trigger veillant au grain
INSERT INTO PARTICIPER_V (pseudo, blindtestCode) VALUES
('fernand', 'blindt01')
;
-- Le blindeur mado a le droit de participer
-- au blindtest blindt01,
-- mais mado anime le blindtest blindt02
-- et ne pourra donc y participer, le trigger veillant au grain.
INSERT INTO PARTICIPER_V (pseudo, blindtestCode) VALUES
('mado', 'blindt01')
;
UPDATE PARTICIPER_V
SET blindtestCode = 'blindt02' WHERE pseudo = 'mado'
;
-- pour jean, pas de problème
update PARTICIPER_V
SET blindtestCode = 'blindt02' WHERE pseudo = 'jean'
;
------------------------------
-- pour voir
------------------------------
SELECT '' as participer, blindtestCode, pseudo
FROM PARTICIPER_V
;
---------------------------------
-- des extraits
---------------------------------
INSERT INTO EXTRAIT (extraitCode, titre) VALUES
('denich', 'Le dénicheur'), ('oldleon', 'Old Leon'), ('marquise', 'Marquise')
, ('scaph', 'Le scaphandrier'), ('platpays', 'Le plat pays')
, ('vieuxleo', 'Le vieux Léon')
;
------------------------------
-- pour voir
------------------------------
SELECT extraitCode, titre
FROM EXTRAIT ;
;
-------------------------------------------
-- compositions blindtests-extraits
--------------------------------------------
INSERT INTO COMPOSER_V (blindtestCode, extraitCode) VALUES
('blindt01', 'oldleon')
, ('blindt01', 'platpays')
, ('blindt02', 'oldleon')
, ('blindt02', 'marquise')
;
------------------------------
-- pour voir
------------------------------
SELECT blindtestCode, extraitCode
FROM COMPOSER_V
;
SELECT blindtestCode, x.extraitCode, titre
FROM COMPOSER_V as x
JOIN EXTRAIT as y ON x.extraitCode = y.extraitCode
;
----------------------------------------
-- vue COMPOSER_V : updates
----------------------------------------
UPDATE COMPOSER_V
SET blindtestCode = 'blindt03'
WHERE blindtestCode = 'blindt01' and extraitCode = 'platpays'
;
UPDATE COMPOSER_V
set extraitCode = 'vieuxleo', blindtestCode = 'blindt04'
where extraitCode = 'oldleon'
;
------------------------------
-- pour voir
------------------------------
SELECT '' as 'après update', blindtestCode, x.extraitCode, titre
FROM COMPOSER_V as x
JOIN EXTRAIT as y ON x.extraitCode = y.extraitCode
;
-------------------------------------------------------
-- Les joueurs qui ont trouvé
-------------------------------------------------------
INSERT INTO TROUVER (joueurId, blindtestId, extraitId) VALUES
((SELECT blindeurId FROM BLINDEUR WHERE pseudo = 'folace')
, (SELECT blindtestId FROM BLINDTEST WHERE blindtestCode = 'blindt02')
, (SELECT extraitId FROM EXTRAIT WHERE extraitCode = 'marquise'))
;
INSERT INTO TROUVER (joueurId, blindtestId, extraitId) VALUES
((SELECT blindeurId FROM BLINDEUR WHERE pseudo = 'jean')
, (SELECT blindtestId FROM BLINDTEST WHERE blindtestCode = 'blindt02')
, (SELECT extraitId FROM EXTRAIT WHERE extraitCode = 'marquise'))
;
INSERT INTO PARTICIPER_V (pseudo, blindtestCode) VALUES
('jean', 'blindt04')
;
INSERT INTO TROUVER (joueurId, blindtestId, extraitId) VALUES
((SELECT blindeurId FROM BLINDEUR WHERE pseudo = 'jean')
, (SELECT blindtestId FROM BLINDTEST WHERE blindtestCode = 'blindt04')
, (SELECT extraitId FROM EXTRAIT WHERE extraitCode = 'vieuxleo'))
;
------------------------------
-- pour voir
------------------------------
SELECT '' as trouver, pseudo, blindtestCode, extraitCode, titre
FROM TROUVER as x
JOIN BLINDEUR as y ON x.joueurId = y.blindeurId
JOIN BLINDTEST as z ON x.blindtestId = z.blindtestId
JOIN EXTRAIT as t ON x.extraitId = t.extraitId
;
GO
Partager