Sql:SELECT
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 (HAVINGpeut porter sur une fonction d'agrégat commeCOUNT(), ce queWHEREne 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 deLIMIT.
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