TP : Introduction au langage SQL avec DB Browser for SQLite
Ce TP vous guidera à travers la création et la manipulation d'une base de données en utilisant le logiciel DB Browser for SQLite. Vous apprendrez à créer des tables, insérer des données et exécuter des requêtes SQL pour interroger la base de données.
Prérequis : Avoir lu le cours Cours_SQL.md avant de commencer ce TP.
Prérequis
- Télécharger et installer DB Browser for SQLite.
Activité 3.1 : Création d'une base de données
- Lancer DB Browser for SQLite. Vous devriez obtenir l'écran suivant :

-
Créer une nouvelle base de données :
-
Cliquez sur "Nouvelle base de données".
- Nommez votre base de données, par exemple
db_livres.db. -
Vous verrez la fenêtre suivante :

-
Cliquez sur "Annuler" pour fermer cette fenêtre.
-
Vérifier la création de la base de données :
-
Votre base de données est créée mais ne contient pas encore de tables.

Activité 3.2 : Création d'une table
-
Accéder à l'onglet "Exécuter le SQL" :
-
Cliquez sur l'onglet "Exécuter le SQL".
-
Créer la table
LIVRES: -
Dans la fenêtre "SQL 1", saisissez la requête suivante :
-
Cliquez sur le bouton ▶ (ou appuyez sur F5) pour exécuter la requête.
-
Un message "Requête exécutée avec succès" devrait apparaître.

Activité 3.3 : Insertion de données
-
Insérer des enregistrements dans la table
LIVRES: -
Toujours dans l'onglet "Exécuter le SQL", saisissez la requête suivante :
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); -
Exécutez la requête en cliquant sur le bouton ▶ ou en appuyant sur F5.
-
Un message de confirmation devrait apparaître.

-
Vérifier les données insérées :
-
Cliquez sur l'onglet "Parcourir les données" pour voir les enregistrements ajoutés.

Activité 3.4 : Exécution de requêtes SQL
- Sélectionner tous les enregistrements :
-
Dans l'onglet "Exécuter le SQL", saisissez la requête suivante :
-
Exécutez la requête. Vous devriez obtenir tous les enregistrements de la table
LIVRES.
-
Sélectionner des colonnes spécifiques :
-
Pour obtenir uniquement les titres et auteurs des livres, utilisez la requête :
-
Filtrer les enregistrements :
-
Pour obtenir les livres écrits par Asimov, utilisez :
-
Combiner des conditions :
-
Pour obtenir les livres d'Asimov publiés après 1953 :
-
Trier les résultats :
-
Pour trier les livres de K.Dick du plus ancien au plus récent :
-
Écrivez et testez une requête permettant d'obtenir uniquement les titres des livres écrits par Philip K.Dick.
-
Saisissez et testez la requête SQL suivante :
Vérifiez que vous obtenez bien les livres écrits par Asimov publiés après 1953.
-
Écrivez une requête permettant d'obtenir les titres des livres publiés après 1945 qui ont une note supérieure ou égale à 9.
-
Écrivez une requête SQL permettant d'obtenir les livres de K.Dick classés du plus ancien au plus récent.
-
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 :
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 :
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 :
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);
-
Saisissez et testez la requête SQL suivante :
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).
-
Écrivez une requête SQL permettant d'obtenir les titres des livres publiés après 1945 ainsi que le nom de leurs auteurs.
-
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 :
Ajoutez des données à la table LIVRES à l'aide de la requête SQL suivante :
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); -
À 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 : "Clarke"
- année de publication : 1968
- note : 7
-
É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.
- Écrivez une requête permettant de supprimer les livres publiés avant 1945. Testez cette requête.
Source :
Auteur : Florian Mathieu
Licence CC BY NC
Ce cours est mis à disposition selon les termes de la Licence Creative Commons Attribution - Pas d'Utilisation Commerciale - Partage dans les Mêmes Conditions 4.0 International.