Vous êtes sur la page 1sur 2

Pour répondre à vos questions, voici les requêtes SQL correspondantes :

Lister tous les romans:


sql
Copy code
SELECT * FROM Livre WHERE Id_type = (SELECT Id_type FROM Type_Format WHERE
libelle_type = 'Roman');
Quels sont les livres les plus lus?
sql
Copy code
SELECT Titre, COUNT(Id_emprunt) AS Nombre_emprunts
FROM Livre
LEFT JOIN Empunt ON Livre.Id_livre = Empunt.#Id_livre
GROUP BY Livre.Id_livre
ORDER BY Nombre_emprunts DESC;
Quels sont les livres les moins lus?
sql
Copy code
SELECT Titre, COUNT(Id_emprunt) AS Nombre_emprunts
FROM Livre
LEFT JOIN Empunt ON Livre.Id_livre = Empunt.#Id_livre
GROUP BY Livre.Id_livre
ORDER BY Nombre_emprunts ASC;
Quels sont les livres qui n'ont jamais été lus?
sql
Copy code
SELECT Titre
FROM Livre
LEFT JOIN Empunt ON Livre.Id_livre = Empunt.#Id_livre
WHERE Empunt.Id_emprunt IS NULL;
Qui est le meilleur lecteur (emprunteur)?
sql
Copy code
SELECT Nom, Prenoms, COUNT(Id_emprunt) AS Nombre_emprunts
FROM Emprunteur
LEFT JOIN Empunt ON Emprunteur.Id_emprunteur = Empunt.#Id_emprunteur
GROUP BY Emprunteur.Id_emprunteur
ORDER BY Nombre_emprunts DESC
LIMIT 1;
Quels sont les emprunteurs qui ne lisent que des romans?
sql
Copy code
SELECT Nom, Prenoms
FROM Emprunteur
WHERE Id_emprunteur NOT IN (
SELECT DISTINCT E.Id_emprunteur
FROM Emprunteur E
JOIN Empunt ON E.Id_emprunteur = Empunt.#Id_emprunteur
JOIN Livre ON Empunt.#Id_livre = Livre.Id_livre
WHERE Livre.#Id_type <> (SELECT Id_type FROM Type_Format WHERE libelle_type =
'Roman')
);
Lister tous les emprunteurs qui ne lisent pas de romans?
sql
Copy code
SELECT Nom, Prenoms
FROM Emprunteur
WHERE Id_emprunteur NOT IN (
SELECT DISTINCT E.Id_emprunteur
FROM Emprunteur E
JOIN Empunt ON E.Id_emprunteur = Empunt.#Id_emprunteur
JOIN Livre ON Empunt.#Id_livre = Livre.Id_livre
WHERE Livre.#Id_type = (SELECT Id_type FROM Type_Format WHERE libelle_type =
'Roman')
);
Quels sont les auteurs qui ont édité et publié leurs propres œuvres?
sql
Copy code
SELECT A.Nom_auteur
FROM Auteur A
JOIN Livre ON A.Idauteur = Livre.#Id_auteur
JOIN Editeur ON A.Idauteur = Editeur.Id_editeur;
Lister tous les livres publiés par leurs auteurs?
sql
Copy code
SELECT Titre
FROM Livre
WHERE #Id_auteur = (SELECT Idauteur FROM Auteur WHERE Idauteur = Livre.#Id_auteur);
Lister tous les auteurs en activité
sql
Copy code
SELECT *
FROM Auteur
WHERE Date_deces IS NULL;
Lister tous les livres non encore rendus et passibles de pénalité
sql
Copy code
SELECT Titre
FROM Livre
JOIN Empunt ON Livre.Id_livre = Empunt.#Id_livre
WHERE Date_rendu IS NULL AND Date_retour < CURRENT_DATE;
Pour la transformation du modèle en format documentaire (JSON) et l'utilisation de
MongoDB, cela nécessiterait la création d'une structure BSON (Binary JSON) et
l'insertion des données dans des collections MongoDB. Cependant, la transformation
complète et la rédaction des requêtes MongoDB peuvent être un processus complexe et
dépendent de la version spécifique de MongoDB que vous utilisez. Si vous avez une
version spécifique de MongoDB en tête, je pourrais vous fournir des exemples de
requêtes MongoDB basées sur votre modèle relationnel.

Vous aimerez peut-être aussi