Mission Carthage

Accueil › Cours › Requêtes SQL simples

Requêtes SQL : SELECT, WHERE, ORDER BY, UPDATE, DELETE

Chapitre 28 · 3ème SI, Bac SI

Interroge une table : choisis les colonnes, filtre les lignes avec WHERE, trie-les, puis modifie et supprime des lignes avec UPDATE et DELETE.

Les leçons de ce chapitre

  1. Choisir des colonnes et des lignes
  2. Trier et filtrer mieux
  3. Modifier et supprimer des lignes

Leçon 28.1 : Choisir des colonnes et des lignes

10 min

Une requête SELECT lit une table sans la modifier. Après SELECT, on écrit les colonnes voulues ; après FROM, la table ; après WHERE, la condition que les lignes doivent remplir.

SELECT * FROM eleve;
SELECT nom, prenom FROM eleve WHERE ville = 'Sfax';

Calculer et renommer une colonne

SELECT prenom, moyenne + 1 AS moyenne_bonus FROM eleve;

Astuce : AS donne un nom à la colonne du résultat. Sans AS, MySQL l'appelle comme on l'a écrite : moyenne + 1.

Attention : Une virgule oubliée entre deux colonnes ne donne pas d'erreur : SELECT nom prenom affiche une seule colonne, nom, renommée prenom.

En SQL

La table eleve est créée en haut du script. Change la condition du WHERE : les élèves de Sousse, puis ceux qui ont plus de 12.

CREATE TABLE eleve (
  id INT PRIMARY KEY,
  nom VARCHAR(30) NOT NULL,
  prenom VARCHAR(30) NOT NULL,
  ville VARCHAR(20),
  moyenne DECIMAL(4,2)
);
INSERT INTO eleve VALUES
  (1, 'Ben Salah', 'Amine', 'Sfax', 12.50),
  (2, 'Trabelsi', 'Sarra', 'Tunis', 16.25),
  (3, 'Jaziri', 'Yassine', 'Sfax', 9.75),
  (4, 'Mansour', 'Rim', 'Sousse', 14.00),
  (5, 'Bouzid', 'Hedi', NULL, 11.00);

SELECT nom, prenom, moyenne FROM eleve WHERE ville = 'Sfax';

Leçon 28.2 : Trier et filtrer mieux

12 min

Trier : ORDER BY

SELECT prenom, moyenne FROM eleve ORDER BY moyenne DESC, prenom;

ORDER BY trie le résultat : ASC du plus petit au plus grand (par défaut), DESC du plus grand au plus petit. Après une virgule, une deuxième colonne départage les égalités. Sans ORDER BY, MySQL ne promet aucun ordre.

Des conditions plus riches

SELECT DISTINCT ville FROM eleve;
SELECT prenom FROM eleve ORDER BY moyenne DESC LIMIT 3;

Astuce : DISTINCT enlève les lignes en double du résultat. LIMIT 3 garde les 3 premières lignes : avec ORDER BY ... DESC, ce sont les 3 meilleurs.

En SQL

Essaie chaque condition : remplace le WHERE par moyenne BETWEEN 10 AND 14, puis nom LIKE 'B%', puis ville IS NULL.

CREATE TABLE eleve (
  id INT PRIMARY KEY,
  nom VARCHAR(30) NOT NULL,
  prenom VARCHAR(30) NOT NULL,
  ville VARCHAR(20),
  moyenne DECIMAL(4,2)
);
INSERT INTO eleve VALUES
  (1, 'Ben Salah', 'Amine', 'Sfax', 12.50),
  (2, 'Trabelsi', 'Sarra', 'Tunis', 16.25),
  (3, 'Jaziri', 'Yassine', 'Sfax', 9.75),
  (4, 'Mansour', 'Rim', 'Sousse', 14.00),
  (5, 'Bouzid', 'Hedi', NULL, 11.00);

SELECT nom, prenom, ville FROM eleve WHERE ville IN ('Sfax', 'Sousse') ORDER BY nom;

Leçon 28.3 : Modifier et supprimer des lignes

10 min

Modifier : UPDATE

UPDATE eleve SET ville = 'Gabès' WHERE id = 5;
UPDATE eleve SET moyenne = moyenne + 0.5 WHERE ville = 'Sfax';

UPDATE change des valeurs : après SET, les colonnes et leurs nouvelles valeurs (séparées par des virgules) ; après WHERE, les lignes concernées. Une nouvelle valeur peut se calculer avec l'ancienne : moyenne + 0.5.

Supprimer : DELETE

DELETE FROM eleve WHERE moyenne < 10;

Attention : Sans WHERE, UPDATE change toutes les lignes et DELETE les efface toutes. Avant de lancer, lis ta condition avec un SELECT : il montre les lignes qui seront touchées.

En SQL

Exécute : le SELECT final montre les changements. Puis supprime les élèves sans ville avec un DELETE placé avant le SELECT.

CREATE TABLE eleve (
  id INT PRIMARY KEY,
  nom VARCHAR(30) NOT NULL,
  prenom VARCHAR(30) NOT NULL,
  ville VARCHAR(20),
  moyenne DECIMAL(4,2)
);
INSERT INTO eleve VALUES
  (1, 'Ben Salah', 'Amine', 'Sfax', 12.50),
  (2, 'Trabelsi', 'Sarra', 'Tunis', 16.25),
  (3, 'Jaziri', 'Yassine', 'Sfax', 9.75),
  (4, 'Mansour', 'Rim', 'Sousse', 14.00),
  (5, 'Bouzid', 'Hedi', NULL, 11.00);

UPDATE eleve SET moyenne = moyenne + 0.5 WHERE ville = 'Sfax';
SELECT * FROM eleve;

S'entraîner gratuitement

Chaque leçon a 3 exercices gratuits avec indices pour appliquer ce chapitre avec Hannibot.

Ouvrir le chapitre dans Mission Carthage Essayer dans le compilateur en ligne

← Chapitre précédent : Bases de données : créer les tables · Chapitre suivant : SQL : jointures, regroupements et sous-requêtes →

Tous les chapitres · Voir les devoirs corrigés de 2ème TI

Cours écrit pour Mission Carthage d'après le programme officiel. Ton professeur reste la référence.