TP romans sql
TP SQL
Nous allons créer (ou télécharger) une petite base de données à deux tables pour nous exercer aux requêtes SQL.
Utiliser SQLite Browser
- Créer une Nouvelle Base de données:
bibliotheque.sqlite(ajouter.sqlite) - Editer la definition de la table selon l’image suivante
table AUTEURS
- Fichier > Exporter > Exporter la base de données sous format SQL. Enregistrer le fichier avec le nom
bibliotheque.sql(ajouter l’extension.sql) - Ouvrir le fichier
bibliotheque.sqlavec un editeur de texte (Notepad++ ou autre) - Ajouter les instructions de creation d’une nouvelle table LIVRES de schéma:
- Ajouter les entrées suivantes à chacune des tables:
et
- sauvegarder ;-)
Utiliser l’application SQLite (non installée sur PC du lycée)
La ligne de commande SQLite permet d’entrer deux types de commandes :
- Les commandes spéciales pour la ligne de commande. Elles débutent toutes par un point (il ne faut pas qu’il y ait d’espace avant ni après le point pour que la commande fonctionne). Par exemple, .open, .show, .backup, .exit et toutes les autres commandes listées par .help. (voir la documentation SQLite ainsi que Command Line Shell For SQLite). Et la version windows
- Les requêtes SQL, par exemple CREATE, SELECT, INSERT, UPDATE, DELETE. Chacune doit se terminer par un point-virgule.
Voici comment combiner ces deux types de commandes afin de vérifier la liste des tables de la base de données sélectionnée puis créer et afficher les enregistrements :
Pour démarrer sqlite, sous Windows, rechercher le fichier sqlite.exe
Dans la console: l’invite de commande commence alors par sqlite>
- Les instructions suivantes permettent d’ouvrir et executer le fichier
bibliotheque.sql, afficher les tables, puis fermer (si besoin) l’application sqlite:
- Pour représenter la table en mode markdown:
Ce qui devrait afficher:
table en format markdown
- lorsque vous écrivez
select *, le retour à la ligne n’execute pas le script, mais attend la fin de l’instruction, jusqu’au point virgule;final. - les requêtes et instructions SQL peuvent être écrites directement dans l’application sqlite, comme dans le fichier d’extension
.sql. Il faudra alors le lire dans la console avec.read <nom_du_fichier>.
Utiliser une application en ligne
- Aller sur la page
sqlonline.com
sqlonline.com
- Cliquer sur Import, puis choisir un fichier d’extension
.sql, comme par exemple bibliotheque.sql - Utiliser alors la fenêtre SQLite pour tester les instructions suivantes.
Tester quelques requêtes SQL
INSERT … VALUES
Ajoute une entrée
Vérifier alors la modification en faisant: SELECT * FROM LIVRES
UPDATE … WHERE
Mise à jour d’une valeur
DELETE … WHERE
- Supprimer une ou plusieurs occurences:
- supprimer la derniere occurence:
Remarques
- La dernière requête utilise une instruction imbriquée, mise entre parenthèses de la clause
WHERE id=(SELECT ...) - l’instruction DELETE FROM LIVRES permet de supprimer tous les n-uplets de la table, mais pas de remettre à zero le compteur. Pour une remise à zero du compteur, il faut aussi effacer le seul élément de la table
sqlite_sequence, créée dans la base de donnée en même temps que la première table.
SELECT … WHERE
Selectionner une partie de la table, en nommant les attributs:
JOINTURE
Tester le script suivant:
Vous remarquerez que les attributs peuvent être issus des 2 tables.
On pourra aussi ajouter une condition sur l’année de publication du livre:
A vous de jouer
- Afficher tous les livres, avec titre, année de parution et note, dont la note est supérieure ou égal à 8.
- Afficher tous les livres, avec leur titre et leur année de parution, écrits par Phillip K.Dick.
- Ajouter à la clause précédente l’instruction de classement par année de publication:
ORDER BY ann_publi
Ressources
-
Ce TP est inspiré de celui de David Roche, du très bon site pixees.fr. Merci à lui pour le partage…
-
Cours complet en SQL, avec référencement des différentes instructions: https://sql.sh/cours
-
fichier de secours bibliotheque.sql