edit question activité sql
This commit is contained in:
123
SQL/README.md
123
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.
|
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/)
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user