Aller au contenu principal

SELECT

#SELECT

Projection de colonnes, alias, filtres, tri et pagination.

sqlsql
1select id, name from users where id >= 1 order by id desc limit 5;

Colonnes calculées et alias:

sqlsql
1select id, upper(name) as NAME_UPPER from users;

#Playground

#Exercice : Sous-requêtes dans SELECT

Créez une requête qui affiche pour chaque utilisateur son nom et le nombre total de commandes qu'il a passées, en utilisant une sous-requête dans la clause SELECT.

#Instructions

  1. Supposez que vous avez deux tables :
    • users(id, name)
    • orders(id, user_id, amount)
  2. Utilisez une sous-requête dans la clause SELECT pour compter le nombre de commandes pour chaque utilisateur.
  3. La sous-requête doit compter les commandes de l'utilisateur courant dans la boucle principale.

#Exemple de requête

sqlsql
1-- Création des tables de démonstration2create table users(id int, name text);3create table orders(id int, user_id int, amount real);4 5-- Insertion de données6insert into users values (1, 'Alice'), (2, 'Bob'), (3, 'Charlie');7insert into orders values (1, 1, 100.0), (2, 1, 50.0), (3, 2, 200.0);8 9-- Requête avec sous-requête dans SELECT10select 11    name,12    (select count(*) from orders where user_id = users.id) as order_count13from users;

#À retenir

SELECT en bref
  • Ordre logique: FROM → WHERE → GROUP BY → HAVING → SELECT → ORDER BY → LIMIT.
  • Utiliser des alias explicites pour la lisibilité.

#Quiz

Que renvoie SELECT COUNT(name) FROM users WHERE id > 0 ?