Quinta
Quinta – SQL
Objectif
Créer une petite base de données et écrire des requêtes SQL simples.
Le but est de : - créer des tables - ajouter des données - faire des requêtes SQL
Fichiers importants
- create_tables.sql : créer les tables
- insert_data.sql : ajouter les villes et les personnes
- queries.sql : requêtes SQL de l’exercice
- .gitlab-ci.yml : vérifier les scripts automatiquement
- quinta.db : base de données SQLite (locale)
Tables
Table city
- id
- name
- lat
- lon
Table people
- id
- name
- height
- date_of_birth
- city (ville de résidence)
- place_of_birth (ville de naissance)
Les tables utilisent des clés étrangères (foreign keys).
Exécution (SQLite)
sqlite3 quinta.db < create_tables.sql
sqlite3 quinta.db < insert_data.sql
sqlite3 quinta.db < queries.sql
Requêtes SQL
Toutes les personnes
SELECT * FROM people;
Trier par date de naissance (ancien vers récent)
SELECT * FROM people
ORDER BY date_of_birth ASC;
Trier par taille (petit vers grand)
SELECT * FROM people
ORDER BY height ASC;
Personnes avec leur ville de naissance
SELECT p.name, c.name AS birth_city
FROM people p
JOIN city c ON p.place_of_birth = c.id;
Nombre de personnes par ville
SELECT c.name, COUNT(*) AS nb_people
FROM people p
JOIN city c ON p.city = c.id
GROUP BY c.name;
Personne née la plus proche de Toulouse
SELECT p.name
FROM people p
JOIN city c ON p.place_of_birth = c.id
JOIN city t ON t.name = 'Toulouse'
ORDER BY ((c.lat - t.lat)*(c.lat - t.lat) + (c.lon - t.lon)*(c.lon - t.lon))
ASC
LIMIT 1;
Ce que j’ai appris
- Créer des tables SQL
- Ajouter des données avec INSERT
- Lire des données avec SELECT
- Trier avec ORDER BY
- Lier des tables avec JOIN
- Utiliser SQLite
Liens
Dépôt GitLab https://gitlab.com/ahmadola111-group/quinta-sql
Documentation (site) https://ahmad-docs-b3e3cc.gitlab.io/quinta/