-- start H:\Documents\Cours\BDD\TD6\pokemon_tables
-- start H:\Documents\Cours\BDD\TD7\td7

-- Question 1
SELECT duree FROM apparition
WHERE horaire = (
	SELECT MAX(horaire) FROM apparition
);

-- Question 2
-- Si on est sûr que la sous-requête ne va retourner qu'une seule valeur, 
-- on peut utiliser l'égalité (WHERE ... = ()) 
-- Sinon, on utilise IN : WHERE ... IN ()
SELECT nom FROM pokemon 
WHERE (pointCombat, idJoueur) IN (
	SELECT pointCombat, idJoueur FROM pokemon
    WHERE lower(nom) = 'pikachu'
);

-- Question 3
SELECT pseudonyme FROM joueur
WHERE LENGTH(pseudonyme) > ALL (
	SELECT LENGTH(personnage) FROM joueur
);

-- Question 4
SELECT dateControle FROM defense
UNION (
	SELECT horaire FROM apparition
);

-- Question 5
SELECT horaire FROM apparition
INTERSECT SELECT dateControle FROM defense;

-- Question 6
SELECT pseudonyme FROM joueur
WHERE (
	LOWER(pseudonyme) LIKE 'a%'
	OR LOWER(pseudonyme) LIKE 's%'
)
AND LOWER(personnage) NOT LIKE 'bob';

-- Question 7
SELECT nom FROM pokemon
WHERE LOWER(idJoueur) = 'admin';

-- Question 8
SELECT DISTINCT idJoueur FROM pokemon
MINUS (
	SELECT idJoueur FROM pokemon
	WHERE LOWER(espece) = 'souris'
);

-- Question 9
SELECT * FROM emplacement e, arene a
WHERE e.id = a.idEmplacement
AND LOWER(nom) = 'eisti';

-- Question 10
SELECT * FROM equipe e, joueur j
WHERE e.id = j.idEquipe
AND LOWER(pseudonyme) = 'shadow';

-- Question 11
SELECT * FROM pokemon p, apparition a
WHERE p.id = a.idPokemon
AND a.horaire = NULL;

-- Question 12 
SELECT latitude, longitude FROM emplacement e, apparition a, pokemon p
WHERE e.id = a.idEmplacement
AND p.id = a.idPokemon
AND LOWER(espece) = 'fruitpalme';