Aller au contenu

Sciences de gestion et numérique · Première STMGBac

Bases de données et requêtes : cours de 1re STMG

Publié le 10 novembre 2026 · Mis à jour le 10 novembre 2026 · Signaler une erreur

L'essentiel

  • Une base de données range des informations structurées dans des tables : une ligne = un enregistrement, une colonne = un champ.
  • La clé primaire identifie chaque ligne ; la clé étrangère relie une table à une autre dans une base relationnelle.
  • Le SGBD gère la base ; on l'interroge par des requêtes : choisir des colonnes (SELECT), filtrer (WHERE), trier (ORDER BY).
  • Les fonctions COUNT, SUM, AVG, MIN, MAX calculent sur plusieurs lignes ; GROUP BY calcule par groupe.
  • Une jointure réunit deux tables grâce à la clé étrangère pour répondre à une question qui touche les deux.
  • Des données ouvertes sont publiées en accès libre : on peut les interroger comme une base ou les traiter dans un tableur.

Pourquoi organiser les données dans une base

Une entreprise de vente en ligne reçoit chaque jour des dizaines de commandes. Chaque commande contient le nom d'un client, une adresse, des produits, un montant, une date. Si tout est noté dans des fichiers séparés ou des cahiers, retrouver « toutes les commandes de septembre supérieures à 100 euros » devient long et source d'erreurs.

La solution : ranger ces données dans une base de données, c'est-à-dire un ensemble organisé de données que l'on peut consulter, mettre à jour et croiser rapidement. Dans ce chapitre, tu apprends comment une base est construite, puis comment on lui pose des questions grâce aux requêtes.

Dans les activités de gestion, l'information circule dans le système d'information de l'organisation, qui la transforme en véritable ressource stratégique. 3 Mais une information n'est utile que si l'on sait la retrouver et la trier. Une base de données bien conçue et des requêtes bien écrites servent exactement à cela : passer de la simple donnée brute à une information utile pour décider.

Table CLIENT (données d'exemple)
id_clientnomville
1DurandLyon
2MartinNantes
3BernardLyon
4PetitLille
5MoreauNantes
Table CLIENT (données d'exemple) · La clé primaire est id_client.
Table COMMANDE (données d'exemple)
num_commandeid_clientdate_commandemontant
10112026-09-03120
10222026-09-0545
10312026-09-1280
10432026-10-01200
10552026-10-0260
10632026-10-10150
Table COMMANDE (données d'exemple) · La clé primaire est num_commande ; id_client est une clé étrangère.

Le vocabulaire d'une base : table, champ, enregistrement

Dans la table CLIENT du fil rouge, les champs sont id_client, nom et ville. Il y a cinq enregistrements, un par client. Dans la table COMMANDE, les champs sont num_commande, id_client, date_commande et montant, et il y a six enregistrements.

Chaque champ a un type : nombre entier, nombre décimal, texte, date. Le type compte, car il décide de ce qu'on peut faire avec le champ. On peut additionner des montants, pas des noms ; on peut trier des dates dans l'ordre du calendrier si elles sont enregistrées comme des dates.

Base relationnelle et clé étrangère

Pourquoi deux tables plutôt qu'une seule ? Imagine un grand tableau unique où chaque commande répète le nom, la ville et l'adresse du client. Le client Bernard a passé deux commandes : ses informations seraient écrites deux fois. S'il déménage, il faudrait corriger chaque ligne, avec le risque d'en oublier une et de se retrouver avec deux adresses différentes pour la même personne.

On évite ce défaut en séparant les données : les informations du client sont écrites une seule fois dans CLIENT, et chaque commande renvoie au client par son numéro.

Le SGBD et la notion de requête

Pour écrire une requête, on utilise un langage compris par le SGBD. Le plus répandu pour les bases relationnelles s'appelle SQL. Il se lit presque comme de l'anglais simple. Au niveau de la première STMG, l'objectif est de comprendre ce que fait une requête et de savoir l'écrire ou la compléter dans des cas simples, pas de connaître toutes les subtilités du langage.

Une requête de consultation répond à la forme suivante :

SELECT champs_à_afficher
FROM table
WHERE condition
ORDER BY champ;

Seuls SELECT et FROM sont obligatoires. WHERE et ORDER BY s'ajoutent selon la question posée.

Lire une requête de consultationQuatre étapes pour lire une requête : FROM, WHERE, SELECT, ORDER BY.1FROMChoisir la table où chercher2WHEREGarder les lignes qui remplissent la condition3SELECTAfficher seulement les colonnes demandées4ORDER BYTrier le résultat selon un champ
  1. FROMChoisir la table où chercher
  2. WHEREGarder les lignes qui remplissent la condition
  3. SELECTAfficher seulement les colonnes demandées
  4. ORDER BYTrier le résultat selon un champ
Lire une requête de consultation

Sélectionner, filtrer et trier

Les conditions utilisent des opérateurs de comparaison : = (égal), <> (différent), <, >, <=, >=. On les combine avec AND (les deux conditions doivent être vraies) ou OR (au moins une des deux).

SELECT num_commande, montant
FROM COMMANDE
WHERE montant > 100 AND date_commande >= '2026-10-01';

Cette requête garde les commandes de plus de 100 € passées à partir du 1er octobre 2026 : ce sont la 104 (200 €) et la 106 (150 €). La commande 101 vaut 120 € mais date de septembre ; elle ne passe pas la seconde condition.

Calculer sur plusieurs lignes : agrégats et regroupements

Souvent, on veut un résultat par groupe : le total des achats de chaque client, par exemple. On utilise alors GROUP BY.

SELECT id_client, SUM(montant)
FROM COMMANDE
GROUP BY id_client;

Le SGBD forme un groupe par valeur de id_client, puis calcule la somme dans chaque groupe. Résultat : client 1 → 200 ; client 2 → 45 ; client 3 → 350 ; client 5 → 60. Le client 4 n'apparaît pas, car il n'a passé aucune commande.

Croiser deux tables : la jointure

Que faire si la question touche les deux tables ? Par exemple : « Quels sont les noms des clients qui ont passé une commande de plus de 100 € ? » Les montants sont dans COMMANDE, les noms dans CLIENT. Il faut joindre les deux tables grâce au lien entre clé étrangère et clé primaire.

Données ouvertes et requêtes dans les organisations

Les organisations n'exploitent pas seulement leurs propres bases. Des données ouvertes (open data) sont publiées en accès libre, et le site gouvernemental data.gouv.fr en centralise les principales. 3 Parmi les exemples étudiés en sciences de gestion, il existe des données ouvertes sur les produits alimentaires qui permettent de connaître leurs ingrédients. 3 On trouve aussi des données mises à disposition par des métropoles, dont la plupart sont libres d'accès. 3

Ces ensembles de données se présentent souvent sous forme de tableaux : une ligne par objet, une colonne par caractéristique, exactement comme une table. On peut donc les ouvrir dans un tableur, les filtrer et les trier, ou les intégrer dans une base pour les interroger. 3 Les notions du chapitre se retrouvent partout : repérer les champs, comprendre ce que représente une ligne, formuler la question sous forme de condition.

Exercices corrigés

Exercice 1 Compter les grosses commandes

★☆☆Environ 5 min

La table COMMANDE contient six commandes, de montants 120, 45, 80, 200, 60 et 150 euros.

On exécute :

SELECT COUNT(*)
FROM COMMANDE
WHERE montant >= 100;

Quelle valeur la requête renvoie-t-elle ?

Indice 1

Le WHERE filtre d'abord ; COUNT compte ensuite les lignes restantes.

Indice 2

Repère les montants qui valent 100 ou plus.

Voir la correction pas à pas
  1. Le WHERE garde les lignes dont le montant est supérieur ou égal à 100.

  2. Parmi 120, 45, 80, 200, 60 et 150, les montants retenus sont 120, 200 et 150.

  3. COUNT(*) compte ces lignes : trois.

La requête renvoie 3. Le filtre agit avant le comptage.

Exercice 2 Total d'un client

★★☆Environ 8 min

Dans la boutique, les commandes du client 3 sont la 104 (200 €) et la 106 (150 €). Les autres clients ont d'autres commandes.

  1. Écris la requête qui calcule le total des montants des commandes du client numéro 3.
  2. Donne le résultat en euros.
Indice 1

Utilise SUM et une condition sur id_client.

Indice 2

N'additionne que les commandes du client 3.

Voir la correction pas à pas
  1. Le champ à additionner est montant, dans la table COMMANDE : SELECT SUM(montant) FROM COMMANDE.

  2. Le critère porte sur le client : on ajoute WHERE id_client = 3.

  3. Requête complète : SELECT SUM(montant) FROM COMMANDE WHERE id_client = 3;

  4. Calcul : 200 + 150 = 350 euros.

Le total des commandes du client 3 est de 350 euros.

Exercice 3 Écrire une requête avec jointure

★★★Environ 12 min

On veut la liste des noms des clients de Nantes avec le montant de chacune de leurs commandes, triée du montant le plus faible au plus élevé.

Écris la requête SQL, puis donne le résultat.

Rappel : les clients de Nantes sont Martin (id 2) et Moreau (id 5) ; la commande 102 (Martin) vaut 45 € et la commande 105 (Moreau) vaut 60 €.

Indice 1

Le nom est dans CLIENT, le montant dans COMMANDE : il faut une jointure sur id_client.

Indice 2

Pense à ORDER BY, croissant par défaut.

Voir la correction pas à pas
  1. Les champs à afficher sont CLIENT.nom et COMMANDE.montant.

  2. On relie les tables : FROM CLIENT JOIN COMMANDE ON CLIENT.id_client = COMMANDE.id_client.

  3. On filtre sur la ville : WHERE CLIENT.ville = 'Nantes'.

  4. On trie par montant croissant : ORDER BY COMMANDE.montant.

  5. Résultat : Martin 45, puis Moreau 60.

La requête complète est :

SELECT CLIENT.nom, COMMANDE.montant
FROM CLIENT
JOIN COMMANDE ON CLIENT.id_client = COMMANDE.id_client
WHERE CLIENT.ville = 'Nantes'
ORDER BY COMMANDE.montant;

Elle renvoie Martin (45 €) puis Moreau (60 €).

Quiz

8 questions · correction immédiate · ton score reste sur ton appareil.

  1. Dans une table, comment s'appelle une ligne qui décrit un objet précis (par exemple un client) ?

  2. Quel champ de la table CLIENT (id_client, nom, ville) convient le mieux comme clé primaire ?

  3. Dans la table COMMANDE, le champ id_client reprend la clé primaire de CLIENT. Comment l'appelle-t-on ?

  4. Quelle requête affiche les noms des clients dont la ville est Lyon ?

  5. On veut les clients de Lyon ou de Nantes. Quelle condition faut-il écrire ?

  6. Quel est le résultat de SELECT SUM(montant) FROM COMMANDE ; sur les montants 120, 45, 80, 200, 60 et 150 euros ? (en euros)

  7. Une jointure entre CLIENT (5 lignes) et COMMANDE (6 lignes) est écrite sans condition ON. Le résultat contient 11 lignes.

  8. Parmi ces affirmations sur le SGBD, lesquelles sont justes ?

    Plusieurs réponses possibles.

Les questions qu'on se pose

Quelle est la différence entre une base de données et un SGBD ?

La base de données contient les données, organisées en tables. Le SGBD est le logiciel qui la gère : il stocke, protège et exécute les requêtes. Une base sans SGBD serait un simple fichier difficile à interroger.

Faut-il savoir écrire du SQL parfaitement au bac ?

L'objectif est surtout de comprendre ce que fait une requête et de savoir l'écrire ou la compléter dans des cas simples (SELECT, FROM, WHERE, tri, calcul, jointure). Entraîne-toi à lire une requête et à prédire son résultat sur un petit tableau, comme dans les exercices.

Pourquoi ne pas tout mettre dans une seule table ?

Les informations se répéteraient à chaque ligne. Une modification (nouvelle adresse) demanderait de corriger de nombreuses lignes, avec un risque d'incohérence. Avec des tables reliées par une clé étrangère, chaque information est écrite une seule fois.

Comment savoir s'il faut une jointure ?

Relis la question et repère les champs demandés ou utilisés dans les conditions. Si ces champs se trouvent dans deux tables différentes (un nom dans CLIENT, un montant dans COMMANDE), une jointure est nécessaire, avec la condition d'égalité entre clé étrangère et clé primaire.

Quelle différence entre WHERE et GROUP BY ?

WHERE filtre des lignes avant tout calcul. GROUP BY regroupe les lignes qui ont la même valeur dans un champ pour calculer un résultat par groupe, par exemple un total par client.

Sources

Programme visé : Programme de Sciences de gestion et numérique - Première STMG · Ministère de l'Éducation nationale (Bulletin officiel spécial n°1 du 22 janvier 2019)

  1. Programme de Sciences de gestion et numérique - Première STMG, Ministère de l'Éducation nationale (Bulletin officiel spécial n°1 du 22 janvier 2019). Consulté le 10 novembre 2026.
  2. Programmes et ressources en série STMG - Éduscol, Éduscol - Ministère de l'Éducation nationale. Consulté le 10 novembre 2026.
  3. Ressources Thème 2 : Numérique et intelligence collective - Sciences de gestion STMG Première, Éduscol - Ministère de l'Éducation nationale. Consulté le 10 novembre 2026.
  4. Ressources pédagogiques : Contenus et données massives en STMG, Éduscol - Ministère de l'Éducation nationale. Consulté le 10 novembre 2026.
  5. Ressources pédagogiques : Systèmes de gestion de bases de données relationnelles (SGBDR), Éduscol. Consulté le 10 novembre 2026.
  6. Ressources : Requêtes et extraction de données, Éduscol. Consulté le 10 novembre 2026.

Les numéros dans le texte renvoient à ces sources. Une source qui ne dit pas ce qu'on lui fait dire ? Signale-le.

Signaler une erreur sur cette page

Je suis en…

Primaire

  • CP Bientôt
  • CE1 Bientôt
  • CE2
  • CM1
  • CM2 Bientôt

Collège

Lycée

Supérieur

  • BTS Bientôt
  • BUT Bientôt
  • Licence Bientôt
  • Prépas Bientôt

Sur cette page