Bases de données et langage SQL

Modélisation, requêtes SQL et exploitation des données.

Se connecter pour contribuerPublié le · Dernière mise à jour le

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 :

  • WHERE filtre avant le regroupement, HAVING filtre après : on ne peut pas écrire une fonction d'agrégat dans WHERE.
  • Fonctions d'agrégat : COUNT(), SUM(), AVG(), MIN(), MAX().
  • Toute colonne du SELECT non agrégée doit figurer dans le GROUP BY.
  • JOIN (interne) ne conserve que les lignes appariées ; LEFT JOIN conserve toutes les lignes de la table de gauche, avec NULL à 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.
  • WHERE avant agrégation, HAVING après.
  • LEFT JOIN pour retrouver les cas « sans correspondance ».
  • Jamais d'UPDATE/DELETE sans WHERE ; 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. 1.Programmes et ressources du lycée général et technologiqueÉduscol — Ministère de l'Éducation nationale
  2. 2.Bulletin officiel de l'Éducation nationale (programmes du baccalauréat)education.gouv.fr
  3. 3.Protection des données personnelles (RGPD)CNIL
  4. 4.Bonnes pratiques de cybersécuritéANSSI
  5. 5.Textes de loi et jurisprudenceLé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.

  1. Dernière mise à jour du cours (relecture et enrichissement)
  2. Première publication de la fiche de cours