SQL SELECT: comment écrire une requête select en SQL

Par :

,le

La requête SQL SELECT permet d’interroger la base de données et de récupérer des enregistrements précis à partir d’une ou plusieurs tables de base de données SQL. Cette instruction forme le cœur du langage SQL, car les développeurs et analystes l’utilisent pour extraire les informations nécessaires à toute analyse ou application métier. Sans SELECT, il reste impossible d’afficher ou de traiter les données stockées.

Syntaxe de base pour la requête SQL SELECT

Cette syntaxe SQL est la même pour Postgresql, Sql-server, MySql, MariaDb et SQLite

// exemple 1
SELECT colonne1 FROM table;

// exemple 2
SELECT colonne1, colonne2 FROM table;

// exemple 3
SELECT * FROM table;

Une requête SELECT minimale contient:

  • le mot-clé SELECT
  • une liste de colonnes ou la wildcard « * »
  • le mot-clé FROM et le nom de la table
  • et un point virgule pour clore la requête.

Cette structure renvoie les données de la colonne indiquée sous forme de tableau.

Exemples de requêtes

Voici comment faire une requête SQL qui va lister et renvoyer tous les enregistrements de la table nommée clients. Petit challenge : Vous pouvez créer votre base de données relationnelle en local puis insérer ce jeu de données .

SELECT * FROM clients;
idnomvilleagesolde
1DupontParis281500
2MartinLyon352200
3DurandMarseille421800
4LeroyParis311900

L’éxécution de la requête ci-dessous extrait uniquement la colonne des noms. Le résultat de la requête apparaît sous forme d’une liste.

SELECT nom FROM clients;
nom
Dupont
Martin
Durand
Leroy

La requête suivante sélectionne deux colonnes spécifiques de la Bdd. Les résultats de la requête s’alignent côte à côte pour une lecture facile.

SELECT nom, ville FROM clients;
nomville
DupontParis
MartinLyon
DurandMarseille
LeroyParis

Ces exemples montrent comment la commande SQL SELECT contrôle exactement les données affichées. La maîtrise de cette syntaxe prépare à réaliser des requêtes plus complexes.

Différences entre « SELECT * » et une liste explicite de colonnes

Utiliser la première requête permet de  récupérer tous les enregistrements de la table, comme id, nom, ville, age et solde dans notre exemple. Cette forme convient aux tests rapides, car elle affiche l’ensemble des données relationnelles sans effort. En revanche, spécifier les colonnes transforme la deuxième requête en un outil précis et efficace. Cette pratique évite de surcharger les résultats avec des informations inutiles.

//instruction 1SELECT * FROM clients;
// intruction 2 
SELECT nom, solde FROM clients;

La différence principale réside dans la performance : SELECT * charge toutes les données, même inutiles, ce qui ralentit les grandes bases de données. Une liste explicite réduit le volume transféré et protège contre les changements futurs de table.

Bonnes pratiques

Nommez toujours les colonnes exactes dont le projet a besoin, au lieu d’utiliser l’astérisque. Par exemple, si une nouvelle colonne est ajoutée , l’instruction SELECT * casse les applications. Ajoutez des alias avec AS pour renommer les colonnes et testez chaque requête sur des données de test pour valider les choix.

SELECT nom AS "Nom complet"

Ordre logique des clauses dans une requête de sélection

Chaque clause joue un rôle précis :

  • FROM identifie les sources
  • WHERE filtre les lignes
  • GROUP BY regroupe pour les calculs
  • HAVING filtre les groupes
  • ORDER BY trie les résultats finaux
  • LIMIT restreint le nombre de lignes.
SELECT colonnes
FROM tables
WHERE conditions
GROUP BY regroupement
HAVING conditions_groupes
ORDER BY tri
LIMIT nombre_lignes;

Le moteur SQL n’exécute pas les clauses dans l’ordre où elles sont écrites. Il commence par FROM pour identifier les tables sources, applique ensuite WHERE pour filtrer les lignes, puis GROUP BY pour regrouper les résultats, HAVING pour filtrer ces groupes, SELECT pour projeter les colonnes, ORDER BY pour trier et enfin LIMIT pour restreindre le nombre de lignes retournées. Comprendre cet ordre d’exécution explique pourquoi il est impossible d’utiliser un alias défini dans SELECT directement dans une clause WHERE de la même requête.

Cette compréhension évite les erreurs les plus courantes rencontrées par les débutants. Les pièges syntaxiques surviennent souvent quand cet ordre est perturbé.

Erreurs fréquentes des débutants

Oublier le mot-clé FROM après SELECT empêche toute exécution, car le moteur ignore la source des données. Inverser WHERE et FROM produit une erreur de syntaxe immédiate. Ajouter un point-virgule à la fin corrige ces oublis basiques.

Les fautes de frappe comme « SLECT » au lieu de « SELECT » bloquent tout. Les guillemets doubles pour les chaînes de caractères fonctionnent mal dans la plupart des SGBD ; utilisez toujours les simples. Vérifiez les parenthèses dans les conditions complexes et testez clause par clause pour isoler les problèmes.

Sources: MySql , ORACLE