Bases de données et langage SQL
Modélisation, requêtes SQL et exploitation des données.
Bases de données et langage SQL
Une base de données relationnelle organise l'information en tables (relations) composées de lignes (enregistrements) et de colonnes (attributs). Le SGBD (système de gestion de base de données : MySQL, PostgreSQL, Oracle) assure le stockage, la cohérence, la sécurité et l'accès concurrent aux données. En SIG, la base est le socle du système d'information : elle garantit que la même donnée client est vue de la même façon par la comptabilité, la logistique et le commerce.
I. Le modèle relationnel
- Clé primaire : attribut (ou groupe d'attributs) identifiant de façon unique chaque ligne. Ex.
id_client. Elle ne peut être ni nulle ni dupliquée. - Clé étrangère : attribut qui référence la clé primaire d'une autre table ; elle matérialise l'association et garantit l'intégrité référentielle (on ne peut pas enregistrer une commande d'un client inexistant).
- Cardinalités : 1,1 / 0,n / 1,n décrivent le nombre d'occurrences associées. Une association « plusieurs à plusieurs » se traduit par une table de jonction.
Schéma d'exemple
CLIENT(id_client, nom, ville)
COMMANDE(id_commande, date_cmd, #id_client)
LIGNE(#id_commande, #id_produit, quantite)
PRODUIT(id_produit, libelle, prix_ht)
Le préfixe # note une clé étrangère.
II. Interroger : SELECT
SELECT nom, ville
FROM client
WHERE ville = 'Lyon'
ORDER BY nom ASC;
Clauses à connaître, dans l'ordre d'écriture : SELECT … FROM … WHERE … GROUP BY … HAVING … ORDER BY … LIMIT.
Opérateurs utiles : =, <>, >, BETWEEN … AND …, IN (…), LIKE 'A%' (commence par A), IS NULL, AND / OR / NOT.
III. Jointures et agrégats
SELECT c.nom, SUM(l.quantite * p.prix_ht) AS ca_ht
FROM client c
JOIN commande cd ON cd.id_client = c.id_client
JOIN ligne l ON l.id_commande = cd.id_commande
JOIN produit p ON p.id_produit = l.id_produit
WHERE cd.date_cmd >= '2025-01-01'
GROUP BY c.nom
HAVING SUM(l.quantite * p.prix_ht) > 1000
ORDER BY ca_ht DESC;
Points de méthode :
WHEREfiltre avant le regroupement,HAVINGfiltre après : on ne peut pas écrire une fonction d'agrégat dansWHERE.- Fonctions d'agrégat :
COUNT(),SUM(),AVG(),MIN(),MAX(). - Toute colonne du
SELECTnon agrégée doit figurer dans leGROUP BY. JOIN(interne) ne conserve que les lignes appariées ;LEFT JOINconserve toutes les lignes de la table de gauche, avecNULLà droite — utile pour repérer les clients sans commande.
IV. Modifier les données
INSERT INTO client (id_client, nom, ville) VALUES (42, 'Durand', 'Nantes');
UPDATE produit SET prix_ht = prix_ht * 1.05 WHERE id_produit = 7;
DELETE FROM commande WHERE date_cmd < '2020-01-01';
Avertissement : un UPDATE ou un DELETE sans WHERE s'applique à toute la table. En production, on teste d'abord la condition avec un SELECT.
V. Sécurité, qualité et cadre juridique
- Droits :
GRANT SELECT ON client TO comptable;— principe du moindre privilège. - Injection SQL : concaténer une saisie utilisateur dans une requête permet à un attaquant d'exécuter du code ; la parade est la requête paramétrée.
- Sauvegarde et journalisation garantissent la reprise après incident.
- RGPD : les données personnelles imposent une finalité déterminée, la minimisation des champs collectés, une durée de conservation limitée et le droit d'accès/rectification/effacement de la personne concernée.
À retenir
- Clé primaire = identifiant unique ; clé étrangère = lien entre tables et intégrité référentielle.
- Ordre des clauses : SELECT, FROM, WHERE, GROUP BY, HAVING, ORDER BY.
WHEREavant agrégation,HAVINGaprès.LEFT JOINpour retrouver les cas « sans correspondance ».- Jamais d'
UPDATE/DELETEsansWHERE; toujours des requêtes paramétrées.
Sources et références
Ce cours est rédigé par l'équipe RévisionBac à partir du programme officiel et des sources institutionnelles ci-dessous. Elles permettent de vérifier les définitions, les chiffres et les normes citées.
- 1.Programmes et ressources du lycée général et technologique — Éduscol — Ministère de l'Éducation nationale
- 2.Bulletin officiel de l'Éducation nationale (programmes du baccalauréat) — education.gouv.fr
- 3.Protection des données personnelles (RGPD) — CNIL
- 4.Bonnes pratiques de cybersécurité — ANSSI
- 5.Textes de loi et jurisprudence — Légifrance
Contenu vérifié et mis à jour le 08/08/2026. Les liens renvoient vers les sites officiels des éditeurs cités.
Historique éditorial
Ce chapitre est rédigé et relu par l'équipe RévisionBac, puis enrichi par les contributions validées.
- — Dernière mise à jour du cours (relecture et enrichissement)
- — Première publication de la fiche de cours