⌂  Menu général
Chapitre Bases de données

Entraînement type bac

Un sujet inédit, au format d'un exercice de bac isolé sur les bases de données. 45 minutes, 20 points, en autonomie — comme le jour J.

Durée sujet · 45 min Barème · /20 Séance · 6 / 7
Au programme

Objectifs de la séance

Mobiliser l'ensemble des compétences SQL du chapitre (schéma, WHERE, JOIN, GROUP BY, INSERT...) sur un sujet jamais vu, en conditions proches de l'épreuve écrite.

Sujet « Vélib' »

Le contexte et le schéma

Une entreprise de location de vélos en libre-service gère des stations, des vélos, des abonnés et des locations.

STATION(id_station, nom_station, ville, nb_bornes) VELO(id_velo, etat) ABONNE(id_abonne, nom, prenom, email, date_inscription) LOCATION(id_location, #id_abonne, #id_velo, #id_station_depart, #id_station_retour, date_heure_depart, date_heure_retour)

L'attribut etat de VELO prend l'une des valeurs : 'disponible', 'en_circulation', 'en_maintenance'. L'attribut date_heure_retour peut être vide (NULL) si la location est en cours.

Extrait de données

La base à interroger

STATION
1, 'Bellecour', 'Lyon', 20
2, 'Part-Dieu', 'Lyon', 30
3, 'Croix-Rousse', 'Lyon', 15
VELO
101, 'disponible'
102, 'en_circulation'
103, 'disponible'
104, 'en_maintenance'
105, 'disponible'
ABONNE
1, Girard, Camille
2, Nasri, Yanis
3, Leroy, Manon
idabonnévélodépartretourheure départheure retour
111011201/07 08:1501/07 08:42
221032101/07 09:0001/07 09:20
311041302/07 07:5002/07 08:10
431023202/07 12:00NULL
521052203/07 18:3003/07 18:55
611012104/07 07:4004/07 08:00
45 minutes, en autonomie

Questions

Q12 pts

Donner la clé primaire de LOCATION et ses clés étrangères. Quelle contrainte garantit que id_abonne référence toujours un abonné existant ?

Clé primaire : id_location. Clés étrangères : #id_abonne (→ ABONNE), #id_velo (→ VELO), #id_station_depart et #id_station_retour (→ STATION). C'est la contrainte de référence (intégrité référentielle) qui garantit que id_abonne correspond toujours à un abonné existant.
Q22 pts

Écrire une requête affichant le nom et le prénom des abonnés inscrits après le 1er mars 2025.

SELECT nom, prenom FROM ABONNE WHERE date_inscription > '2025-03-01';
→ Nasri Yanis et Leroy Manon.
Q32 pts

Écrire une requête affichant les vélos actuellement en maintenance.

SELECT * FROM VELO WHERE etat = 'en_maintenance';
→ vélo 104.
Q43 pts

Écrire une requête affichant, pour chaque location, le nom de l'abonné et le nom de la station de départ.

SELECT ABONNE.nom, STATION.nom_station FROM LOCATION JOIN ABONNE ON LOCATION.id_abonne = ABONNE.id_abonne JOIN STATION ON LOCATION.id_station_depart = STATION.id_station;
Q53 pts

Écrire une requête affichant les locations actuellement en cours (non terminées).

SELECT * FROM LOCATION WHERE date_heure_retour IS NULL;
→ location 4. Attention : IS NULL, jamais = NULL.
Q63 pts

Écrire une requête donnant le nombre de locations effectuées par chaque abonné.

SELECT id_abonne, COUNT(*) AS nb_locations FROM LOCATION GROUP BY id_abonne;
→ abonné 1 : 3 · abonné 2 : 2 · abonné 3 : 1.
Q73 pts

Écrire une requête INSERT ajoutant un nouvel abonné : id 4, Roux Théo, theo.roux@mail.fr, inscrit aujourd'hui.

INSERT INTO ABONNE (id_abonne, nom, prenom, email, date_inscription) VALUES (4, 'Roux', 'Théo', 'theo.roux@mail.fr', DATE('now'));
Q82 pts

Pourquoi date_heure_retour peut-elle être vide (NULL) ? Est-ce compatible avec une contrainte NOT NULL ?

Elle peut être vide tant que la location est en cours. Ce n'est donc pas compatible avec NOT NULL : cela empêcherait d'enregistrer une location tant qu'elle n'est pas terminée.
Pour aller plus loin

D'autres sujets de bac réels

Sélection de sujets officiels dont un exercice porte uniquement sur les bases de données/SQL, disponibles sur les sites d'annales NSI (fredpeuriere.com/bac-NSI.php, allophysique.com, pixees.fr).

AnnéeSujetExercice
2025Métropole, sujet 1Ex.1 — BDD, SQL
2025Centres étrangers, sujet 2Ex.1 — BDD, SQL
2024Amérique du Nord, sujet 2Ex.2 — BDD, SQL
2023Métropole, sujet 1Ex.1 — BDD, SQL
2023Polynésie, sujet 1Ex.1 — BDD, SQL
2023Nouvelle-Calédonie, sujets 1 et 2Ex.1 — BDD, SQL

Les sujets 2023 sont particulièrement adaptés en début d'entraînement : épreuve notée sur 12, exercices plus courts.

Séance 7

La suite : évaluation notée

Un sujet inédit, dans le même esprit que « Vélib' », pour l'évaluation de fin de séquence.