💾 SQL & Bases de Données
Interroger et manipuler les données relationnelles
1. Introduction aux Bases de Données Relationnelles
Structure d'une Table
Une base de données relationnelle organise l'information sous forme de tables (ou relations).
Chaque table est composée de :
Chaque table est composée de :
- Attributs (colonnes) : les propriétés des données (ex:
nom,age). - Enregistrements (lignes ou n-uplets) : les données elles-mêmes.
- Domaine : le type de donnée autorisé pour un attribut (ex: entier, chaîne, date).
🔑 Les Clés
- Clé Primaire (Primary Key) : Un attribut qui identifie de manière unique chaque ligne (ex:
id_eleve). - Clé Étrangère (Foreign Key) : Un attribut qui fait référence à la clé primaire d'une autre table pour lier les données (ex:
id_classe).
2. Le Langage SQL
SELECT ... FROM
La commande de base pour récupérer des données.
Syntaxe de base
SELECT colonnes
FROM table;
-- Exemples :
SELECT * FROM Eleves; -- Tout sélectionner
SELECT nom, prenom FROM Eleves; -- Seulement nom et prénom
3. Filtrer les données : WHERE
La clause
WHERE permet de ne garder que les lignes qui respectent une condition.
Exemple de filtre
SELECT *
FROM Eleves
WHERE age >= 16;
Opérateurs de comparaison :
Opérateurs logiques :
=, <> (différent), <, >, <=, >=Opérateurs logiques :
AND, OR, NOT
Conditions multiples
SELECT *
FROM Eleves
WHERE age >= 16 AND classe = 'Terminale';
4. Trier et Épurer
ORDER BY (Trier)
Permet de trier les résultats par ordre croissant (
ASC, par défaut) ou décroissant (DESC).
Exemple de tri
SELECT *
FROM Voitures
ORDER BY prix DESC; -- Du plus cher au moins cher
DISTINCT (Éliminer les doublons)
Pour éviter d'avoir plusieurs fois la même ligne dans le résultat.
Exemple sans doublons
SELECT DISTINCT ville
FROM Clients;
5. Les Jointures : JOIN
Combiner des tables
Les jointures permettent de combiner les données de plusieurs tables liées par une clé étrangère.
Syntaxe de Jointure
SELECT Eleves.nom, Classes.nom_classe
FROM Eleves
JOIN Classes ON Eleves.id_classe = Classes.id;
📝 Résumé des clauses
⚠️ L'ordre est strict :
SELECT(Quoi ?)FROM(D'où ?)JOIN ... ON ...(Avec qui ?)WHERE(Quelles conditions ?)ORDER BY(Quel ordre ?)
La requête complète
SELECT colonnes
FROM table1
JOIN table2 ON conditions_jointure
WHERE conditions_filtre
ORDER BY colonne_tri;