From 715bf52825067288dad7106c58eb79d98b763608 Mon Sep 17 00:00:00 2001 From: Florian Mathieu Date: Wed, 11 Dec 2024 10:50:33 +0100 Subject: [PATCH] =?UTF-8?q?edit=20question=20activit=C3=A9=20sql?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- SQL/README.md | 123 +++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 122 insertions(+), 1 deletion(-) diff --git a/SQL/README.md b/SQL/README.md index 6139cef..6b52d40 100644 --- a/SQL/README.md +++ b/SQL/README.md @@ -146,5 +146,126 @@ Ce TP vous guidera à travers la création et la manipulation d'une base de donn 9. Écrivez une requête SQL permettant d'obtenir les livres de K.Dick classés du plus ancien au plus récent. -10. +10. Créez une nouvelle base de données que vous nommerez par exemple db_livres_auteurs.db, puis créez une table AUTEURS à l'aide de la requête SQL suivante : + ```sql + CREATE TABLE AUTEURS + (id INT, nom TEXT, prenom TEXT, ann_naissance INT, langue_ecriture TEXT, PRIMARY KEY (id)); + ``` + + +Créez ensuite une deuxième table (LIVRES) : + +``` +CREATE TABLE LIVRES +(id INT, titre TEXT, id_auteur INT, ann_publi INT, note INT, PRIMARY KEY (id), FOREIGN KEY (id_auteur) REFERENCES AUTEURS(id)); +``` + +Comme vous l'avez sans doute remarqué nous avons précisé dans notre requête que l'attribut "id_auteur" jouera le rôle de clé étrangère : liaison entre "id_auteur" de la table LIVRES et "id" de la table AUTEURS (FOREIGN KEY (id_auteur) REFERENCES AUTEURS(id)). + +Ajoutez des données à la table AUTEURS à l'aide de la requête SQL suivante : + +```sql +INSERT INTO AUTEURS +(id,nom,prenom,ann_naissance,langue_ecriture) +VALUES +(1,'Orwell','George',1903,'anglais'), +(2,'Herbert','Frank',1920,'anglais'), +(3,'Asimov','Isaac',1920,'anglais'), +(4,'Huxley','Aldous',1894,'anglais'), +(5,'Bradbury','Ray',1920,'anglais'), +(6,'K.Dick','Philip',1928,'anglais'), +(7,'Barjavel','René',1911,'français'), +(8,'Boulle','Pierre',1912,'français'), +(9,'Van Vogt','Alfred Elton',1912,'anglais'), +(10,'Verne','Jules',1828,'français'); +``` + +Ajoutez des données à la table LIVRES à l'aide de la requête SQL suivante : + +```sql +INSERT INTO LIVRES +(id,titre,id_auteur,ann_publi,note) +VALUES +(1,'1984',1,1949,10), +(2,'Dune',2,1965,8), +(3,'Fondation',3,1951,9), +(4,'Le meilleur des mondes',4,1931,7), +(5,'Fahrenheit 451',5,1953,7), +(6,'Ubik',6,1969,9), +(7,'Chroniques martiennes',5,1950,8), +(8,'La nuit des temps',7,1968,7), +(9,'Blade Runner',6,1968,8), +(10,'Les Robots',3,1950,9), +(11,'La Planète des singes',8,1963,8), +(12,'Ravage',7,1943,8), +(13,'Le Maître du Haut Château',6,1962,8), +(14,'Le monde des Ā',9,1945,7), +(15,'La Fin de l’éternité',3,1955,8), +(16,'De la Terre à la Lune',10,1865,10); +``` + +11. Saisissez et testez la requête SQL suivante : + + ```sql + SELECT titre,nom, prenom + FROM LIVRES + INNER JOIN AUTEURS ON LIVRES.id_auteur = AUTEURS.id + ``` + + Rappel : attention, si un même nom d'attribut est présent dans les 2 tables (par exemple ici l'attribut id), il est nécessaire d'ajouter le nom de la table devant afin de pouvoir les distinguer (AUTEURS.id et LIVRES.id). + +12. Écrivez une requête SQL permettant d'obtenir les titres des livres publiés après 1945 ainsi que le nom de leurs auteurs. + +13. Nous allons repartir avec une nouvelle base de données. Créez une nouvelle base de données nommée "db_livres.db". + + Créez ensuite une table LIVRES à l'aide de la requête suivante : + + ```sql + CREATE TABLE LIVRES + (id INT, titre TEXT, auteur TEXT, ann_publi INT, note INT, PRIMARY KEY (id)); + ``` + + Ajoutez des données à la table LIVRES à l'aide de la requête SQL suivante : + + ```sql + INSERT INTO LIVRES + (id,titre,auteur,ann_publi,note) + VALUES + (1,'1984','Orwell',1949,10), + (2,'Dune','Herbert',1965,8), + (3,'Fondation','Asimov',1951,9), + (4,'Le meilleur des mondes','Huxley',1931,7), + (5,'Fahrenheit 451','Bradbury',1953,7), + (6,'Ubik','K.Dick',1969,9), + (7,'Chroniques martiennes','Bradbury',1950,8), + (8,'La nuit des temps','Barjavel',1968,7), + (9,'Blade Runner','K.Dick',1968,8), + (10,'Les Robots','Asimov',1950,9), + (11,'La Planète des singes','Boulle',1963,8), + (12,'Ravage','Barjavel',1943,8), + (13,'Le Maître du Haut Château','K.Dick',1962,8), + (14,'Le monde des Ā','Van Vogt',1945,7), + (15,'La Fin de l’éternité','Asimov',1955,8), + (16,'De la Terre à la Lune','Verne',1865,10); + ``` + +14. À l'aide d'une requête SQL, ajoutez à la table LIVRES le livre suivant : + - id : 17 + - titre : "2001 : L'Odyssée de l'espace" + - auteur : "Clarcke" + - année de publication : 1968 + - note : 7 + + + +15. Écrivez une requête permettant d'attribuer la note de 10 à tous les livres écrits par Asimov publiés après 1950. Testez cette requête. +16. Écrivez une requête permettant de supprimer les livres publiés avant 1945. Testez cette requête. + +-------- + +Source : + +- [Pixees, site de David Roche](https://informatique-lycee.forge.apps.education.fr/terminale_nsi/cours-terminale/c3a/) + +