Sql:SELECT

De wiki.nexiat.fr
Aller à la navigation Aller à la recherche
Fiche express
Type Commande SQL standard
Catégorie DML (Data Manipulation Language)
Rôle Lire (interroger) des données dans une ou plusieurs tables
Voir aussi Sql · Sql:INSERT · Sql:UPDATE

SELECT est la commande SQL de lecture de données — la plus utilisée du langage. Elle permet de choisir les colonnes à afficher, de filtrer les lignes, de trier et regrouper les résultats, et de combiner plusieurs tables (jointures).

Syntaxe

SELECT [DISTINCT] colonne1, colonne2, ...
FROM table
[JOIN autre_table ON condition]
[WHERE condition]
[GROUP BY colonne]
[HAVING condition_sur_groupe]
[ORDER BY colonne [ASC|DESC]]
[LIMIT nombre];
  • DISTINCT : élimine les doublons du résultat.
  • WHERE : filtre les lignes avant agrégation.
  • GROUP BY / HAVING : regroupe les lignes et filtre après
 agrégation (HAVING peut porter sur une fonction d'agrégat comme
 COUNT(), ce que WHERE ne permet pas).
  • ORDER BY : tri du résultat.
  • LIMIT : borne le nombre de lignes renvoyées (voir « Variantes par moteur »).

Exemples

-- Toutes les colonnes, toutes les lignes
SELECT * FROM utilisateurs;

-- Colonnes précises, filtre texte (LIKE + joker %)
SELECT nom, email FROM utilisateurs WHERE email LIKE '%@example.com';

-- Valeurs distinctes d'une colonne
SELECT DISTINCT nom FROM utilisateurs;

-- Tri et limite (page de résultats)
SELECT * FROM utilisateurs ORDER BY nom ASC LIMIT 10;

-- Agrégation : nombre d'utilisateurs par domaine d'e-mail
SELECT SUBSTRING_INDEX(email, '@', -1) AS domaine, COUNT(*) AS nb
FROM utilisateurs
GROUP BY domaine
HAVING COUNT(*) > 1;

-- Jointure entre deux tables
SELECT u.nom, c.date_commande
FROM utilisateurs u
JOIN commandes c ON c.utilisateur_id = u.id;

Variantes par moteur

  • MySQL/MariaDB, PostgreSQL : LIMIT n [OFFSET m] pour la pagination.
  • Oracle (avant 12c) : pas de LIMIT — filtrage via la pseudo-colonne
 ROWNUM ; depuis 12c, FETCH FIRST n ROWS ONLY (standard SQL) est
 disponible.
  • SQL Server : SELECT TOP n ... au lieu de LIMIT.

Voir aussi

  • Sql — panorama du langage SQL
  • Sql:INSERT — insérer des données (y compris via INSERT ... SELECT)
  • Sql:UPDATE — modifier des données
  • Sql:DELETE — supprimer des données