Base de données Querynomicon (SQLite) : manchots, tables et exercices SQL
Querynomicon est une petite base SQLite pour apprendre le SQL depuis zéro : le jeu de données des manchots de Palmer et un minuscule laboratoire avec son personnel, ses expériences et ses plaques d'analyse. Sur SQLtest.online, vous l'interrogez directement dans le navigateur : vous résolvez des exercices corrigés automatiquement et exécutez vos propres requêtes dans le bac à sable, sans rien installer.
- 13 tables
- 344 manchots
- 50 expériences
- 49 exercices SQL
Qu'est-ce que Querynomicon
La base provient du Querynomicon, le tutoriel gratuit de Greg Wilson « An Introduction to SQL for Wary Data Scientists ». Sa table principale contient les manchots de Palmer : les mesures de 344 manchots de trois espèces vivant sur trois îles de l'Antarctique.
Les données sont peu nombreuses et faciles à lire, mais elles ont les particularités des vraies données : des valeurs manquantes (NULL) dans les mesures et dans la colonne du sexe. La base est donc idéale pour apprendre le filtrage, le tri, le regroupement, la gestion des NULL et les bases du DDL et du DML.
Contenu de la base
Les tables se répartissent en deux groupes.
Manchots
penguins avec les 344 oiseaux et little_penguins, un échantillon de 10 lignes pour des essais rapides.
Laboratoire
department, staff, experiment, performed (qui a mené quelle expérience), plate et invalidated, ainsi que machine, usage, person et contact.
Les tables de manchots n'ont pas de clés : chaque ligne est un oiseau. Les tables du laboratoire sont reliées par des identifiants numériques, et performed relie le personnel et les expériences en plusieurs-à-plusieurs.
Volume de données des tables :
| Table | Lignes | Contenu |
|---|---|---|
| penguins | 344 | manchots et leurs mesures |
| little_penguins | 10 | un échantillon de 10 manchots |
| department | 4 | services |
| staff | 10 | personnel |
| experiment | 50 | expériences |
| performed | 65 | personnel ↔ expériences |
| plate | 256 | plaques d'analyse |
| invalidated | 30 | plaques invalidées |
| machine | 3 | appareils du laboratoire |
| person | 15 | personnes |
| usage | 8 | journal d'utilisation des appareils |
| contact | 8 | contacts |
Structure des tables
Cliquez sur une table pour voir ses colonnes, une ligne d'exemple et ses clés.
Liste des tables
- identID du département
- nameNom du département
- buildingNom du bâtiment
| ident | name | building |
|---|---|---|
| gen | Genetics | Chesson |
- speciesEspèce de pingouin
- islandÎle de résidence
- bill_length_mmLongueur du bec, mm
- bill_depth_mmÉpaisseur du bec, mm
- flipper_length_mmLongueur de l'aileron, mm
- body_mass_gMasse corporelle, g
- sexSexe
| species | island | bill_length_mm | bill_depth_mm | flipper_length_mm | body_mass_g | sex |
|---|---|---|---|---|---|---|
| Gentoo | Biscoe | 52.1 | 17 | 230 | 5550 | MALE |
- speciesEspèce de pingouin
- islandÎle de résidence
- bill_length_mmLongueur du bec, mm
- bill_depth_mmÉpaisseur du bec, mm
- flipper_length_mmLongueur de l'aileron, mm
- body_mass_gMasse corporelle, g
- sexSexe
| species | island | bill_length_mm | bill_depth_mm | flipper_length_mm | body_mass_g | sex |
|---|---|---|---|---|---|---|
| Gentoo | Biscoe | 52.1 | 17 | 230 | 5550 | MALE |
- identNuméro de l'employé
- personalPrénom de l'employé
- familyNom de famille de l'employé
- deptDépartement
- ageÂge
| ident | personal | family | dept | age |
|---|---|---|---|---|
| 7 | Abram | Chokshi | gen | 23 |
- identIdentifiant de la machine
- nameNom de la machine
- detailsJSON avec détails
| ident | name | details |
|---|---|---|
| 1 | WY401 | {"acquired": "2023-05-01"} |
| 2 | Inphormex | {"acquired": "2021-07-15", "refurbished": "2023-10-22"} |
| 3 | AutoPlate 9000 | {"note": "needs software update"} |
Exemples de requêtes
Ces requêtes montrent comment les données sont reliées. Copiez-en une et exécutez-la dans le bac à sable.
Expériences et plaques : une relation un-à-plusieurs avec LEFT JOIN et comptage.
SELECT e.ident, e.kind, e.started, COUNT(p.ident) AS plates
FROM experiment e
LEFT JOIN plate p ON p.experiment = e.ident
GROUP BY e.ident
ORDER BY e.ident
LIMIT 3;
| ident | kind | started | plates |
|---|---|---|---|
| 1 | calibration | 2023-08-25 | 1 |
| 2 | calibration | 2023-02-14 | 1 |
| 3 | trial | 2023-02-22 | 10 |
Qui a mené une expérience : une relation plusieurs-à-plusieurs via performed.
SELECT s.personal, s.family, e.kind, e.started
FROM performed pf
JOIN staff s ON s.ident = pf.staff
JOIN experiment e ON e.ident = pf.experiment
ORDER BY e.ident, s.ident
LIMIT 3;
| personal | family | kind | started |
|---|---|---|---|
| Nitya | Lal | calibration | 2023-08-25 |
| Indrans | Sridhar | calibration | 2023-02-14 |
| Kartik | Gupta | trial | 2023-02-22 |
Exercices SQL par thème
La base Querynomicon compte 49 exercices, du premier SELECT jusqu'aux vues, index et triggers. Les solutions sont vérifiées automatiquement sur un vrai SQLite. Le nombre à droite indique combien d'exercices compte le thème ; les points colorés montrent la plage de difficulté.
- Les bases du SQL 1
- Requêtes analytiques 2
- Manipulation de données (DML) 1
- Langage de définition de données (DDL) 13
Par où commencer
Les premiers exercices sur la base Querynomicon :
- Récupérer tous les départements
- Noms du personnel
- Trier les manchots
- Espèces de manchots
- Manchots légers
- Liste des manchots
- Répartition des manchots par îles
- Distribution de la population (Pivot)
- Trouver les petits manchots
- Trouver les espèces de petits manchots
Tous les exercices Querynomicon →
Questions fréquentes
Faut-il installer SQLite pour utiliser Querynomicon ?
Non. Les exercices et le bac à sable de SQLtest.online exécutent les requêtes sur nos serveurs : un navigateur suffit. Dans le bac à sable, choisissez SQLite 3 Preloaded.
Que sont les manchots de Palmer ?
Un jeu de données pédagogique très utilisé : les mesures de manchots Adélie, à jugulaire et papous relevées à la station Palmer, en Antarctique. Il sert souvent de remplaçant moderne au jeu de données iris.
Cette base convient-elle aux débutants ?
Oui. Les tables sont petites et le sujet ne demande aucune explication : vous pouvez vous concentrer sur le SQL lui-même, SELECT, WHERE, ORDER BY, GROUP BY et la gestion des NULL.