Skip to content

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/