Revenir à la page d'acceuil Bases De Données	Revenir à la page d'accueil

Exercices d'écriture de requêtes

Requêtes sur une base existante

La base utilisée

Vous trouverez le schéma de la base ici.

L'outil utilisé sera SQLiteBrowse. Pour l'installer :

Téléchargez l'archive de l'outil que vous stockerez à la racine de votre lecteur H: (Lecteur réseau prenom.nom sur Serveur Kwartz dans "Poste de Travail") ;

Dézipper le avec 7-zip : clic droit de la souris sur le fichier, choisissez 7-zip, option "Extraire ici". - Ouvrez le dossier sqlitebrowser_200_b1_win, double clic sur le fichier exécutable (.exe) SQLite Database Browser 2.0 b1.

créez un raccourci sur votre bureau vers le fichier SQLite Database Browser 2.0 b1

Les scripts

Script de création des tables de la base

Script de peuplement des tables

Les requetes

Première requête

Ouvrir (se connecter à) la base

H:\tmp>cd sqlite3
H:\tmp\sqlite3>sqlite3 base_modeles_reduits.db
SQLite version 3.7.17 2013-05-20 00:56:22
Enter ".help" for instructions
Enter SQL statements terminated with a ";"

Créer les tables

sqlite> .read creerbase.sql
sqlite> .tables
bureaux commandes employes paiements
clients details_commande lignes_produits produits

Peupler les tables

sqlite> .read script1_peupler_tables.sql

La requête en "mode Dos"

sqlite> SELECT * FROM bureaux; 1|Paris|0142552100|10 avenue du G├®n├®ral Leclerc||Ile de France|France|75014|NA 2|Orl├®ans|0238553000|22 rue des Oliviers||Pays de la Loire|France|45000|NA 3|Strasbourg|0388551000|6 rue principale||Alsace|France|67000|NA 4|San Francisco|+1 650 219 4782|100 Market Street|Suite 300|Californie|Etats-Uni s|94080|Etats-Unis 5|Tokyo|+81 33 224 5000|4-1 Kioicho||Chiyoda-Ku|Japon|102-8578|Japon 6|Sydney|+61 2 9264 2451|5-11 Wentworth Avenue|FLOOR #2||Australie|NSW 2010|APAC 7|Londres|+44 20 7877 2041|25 OLD Broad Street|Level 7||Royaume-Uni|EC2N 1HN|EME A

Amélioration de l'affichage

sqlite> .header on
sqlite> .mode column
sqlite> .width 11 15 14 30 8 14 10 14
sqlite> select * from bureaux;
code_bureau commune telephone ligne_adresse1 ligne_adresse2 region pays code_postal territoire
----------- ---------- ---------- ------------------------------ -------------- ------------- ---------- ----------- ----------
1 Paris 0142552100 10 avenue du G├®n├®ral Leclerc Ile de France France 75014 NA
2 Orl├®ans 0238553000 22 rue des Oliviers Pays de la Lo France 45000 NA
3 Strasbourg 0388551000 6 rue principale Alsace France 67000 NA
4 San Franci +1 650 219 100 Market Street Suite 300 Californie Etats-Unis 94080 Etats-Unis
5 Tokyo +81 33 224 4-1 Kioicho Chiyoda-Ku Japon 102-8578 Japon
6 Sydney +61 2 9264 5-11 Wentworth Avenue Floor #2 Australie NSW 2010 APAC
7 Londres +44 20 787 25 Old Broad Street Level 7 Royaume-Un EC2N 1HN EMEA

La même requête avec l'outil SQLBrowse

Mode "Browse Data"

Mode Requête SQL

Autres requêtes

réalisez une ou deux jointures :

d'abord avec INNER JOIN

ensuite en utilisant une notation ensembliste (SELECT ….. WHERE colonne1 (IN SELECT colonne2 FROM ……).

Réalisez des UNION, DIFFERENCE, ….

Affichez les employés qui sont "chef d'équipe" (qui ont des employès qui dépendent d'eux) ;

Affichez les employés qui sont "chef d'équipe" avec les exmployés qu'ils ont sous leurs ordres ;

Affichez la liste des produits par ordre croissant des lignes de produits et des noms de produits ;

Affichez pour chaque produit le chiffre d'affaire réalisé (somme des quantités de produits multipliées par le prix d'achat du produit) ;

Affichez pour chaque ligne de produit le chiffre d'affaire réalisé (somme des quantités de produits multipliées par le prix d'achat du produit).

Affichez les plus gros clients ;

Affichez le "top 10" des plus gros clients.