Numérique et Sciences Informatiques > Bases de Données > Langage SQL (Structured Query Language) > Requêtes SELECT (sélection, projection, jointures, conditions WHERE)
Introduction aux Requêtes SELECT en SQL
Apprenez à maîtriser les requêtes SELECT en SQL pour extraire et manipuler des données de bases de données. Ce guide couvre la sélection, la projection, les jointures et les conditions WHERE avec des exemples concrets adaptés au niveau lycée.
Introduction aux Requêtes SELECT
Les requêtes SELECT
sont l'épine dorsale de toute interaction avec une base de données SQL. Elles permettent d'extraire des informations spécifiques à partir d'une ou plusieurs tables. Comprendre leur fonctionnement est essentiel pour toute personne travaillant avec des données. En termes simples, SELECT
, c'est comme poser une question précise à votre base de données et obtenir une réponse ciblée.
La structure de base d'une requête SELECT
est la suivante: SELECT colonne1, colonne2 FROM nom_de_la_table WHERE condition;
Où: SELECT
indique les colonnes à extraire. FROM
spécifie la table d'où proviennent les données. WHERE
(optionnel) filtre les résultats en fonction d'une condition.
Sélection de Colonnes (Projection)
La projection consiste à choisir quelles colonnes afficher dans le résultat de la requête. Pour sélectionner toutes les colonnes d'une table, on utilise l'astérisque (*
). Pour sélectionner des colonnes spécifiques, on liste les noms des colonnes séparés par des virgules.
Exemple: Supposons que vous ayez une table nommée 'Etudiants' avec les colonnes 'ID', 'Nom', 'Prenom', 'Age'.
- Pour sélectionner toutes les colonnes : SELECT * FROM Etudiants;
- Pour sélectionner seulement le nom et le prénom : SELECT Nom, Prenom FROM Etudiants;
Il est aussi possible d'utiliser des alias (noms temporaires) pour renommer les colonnes affichées : SELECT Nom AS NomEtudiant, Prenom AS PrenomEtudiant FROM Etudiants;
Filtrage avec la Clause WHERE (Sélection)
La clause WHERE
permet de filtrer les lignes (enregistrements) retournées par la requête. Elle applique une condition qui doit être vraie pour qu'une ligne soit incluse dans le résultat. Vous pouvez utiliser des opérateurs de comparaison (=
, >
, <
, >=
, <=
, !=
) et des opérateurs logiques (AND
, OR
, NOT
) pour construire des conditions complexes.
Exemple:
- Pour sélectionner tous les étudiants dont l'âge est supérieur à 18 ans : SELECT * FROM Etudiants WHERE Age > 18;
- Pour sélectionner les étudiants dont le nom est 'Dupont' et le prénom est 'Jean' : SELECT * FROM Etudiants WHERE Nom = 'Dupont' AND Prenom = 'Jean';
- Pour sélectionner les étudiants dont le nom est 'Dupont' ou l'âge est inférieur à 17 ans: SELECT * FROM Etudiants WHERE Nom = 'Dupont' OR Age < 17;
La clause WHERE
est extrêmement puissante pour cibler précisément les données que vous recherchez.
Jointures (JOIN)
Les jointures permettent de combiner des données provenant de plusieurs tables en se basant sur une colonne commune. Il existe différents types de jointures, mais la plus courante est la jointure interne (INNER JOIN
), qui retourne uniquement les lignes pour lesquelles la condition de jointure est vraie dans les deux tables.
Exemple: Supposons que vous ayez deux tables : 'Etudiants' (ID_Etudiant, Nom, Prenom) et 'Notes' (ID_Note, ID_Etudiant, Matiere, Note). Pour obtenir le nom et la note de chaque étudiant, vous pouvez utiliser une jointure:SELECT Etudiants.Nom, Etudiants.Prenom, Notes.Matiere, Notes.Note FROM Etudiants INNER JOIN Notes ON Etudiants.ID_Etudiant = Notes.ID_Etudiant;
Dans cet exemple: INNER JOIN Notes ON Etudiants.ID_Etudiant = Notes.ID_Etudiant
spécifie que l'on combine les tables 'Etudiants' et 'Notes' lorsque les valeurs de la colonne 'ID_Etudiant' sont égales dans les deux tables.
Il existe d'autres types de jointures (LEFT JOIN
, RIGHT JOIN
, FULL OUTER JOIN
) qui permettent d'inclure des lignes même si la condition de jointure n'est pas vraie dans toutes les tables. Ces jointures sont plus avancées et permettent de gérer des cas de figure plus complexes.
Combinaison de Conditions WHERE et de Jointures
Vous pouvez combiner les clauses WHERE
et les jointures pour filtrer les résultats après avoir combiné les tables. Cela permet de créer des requêtes très spécifiques et puissantes.
Exemple: Pour obtenir le nom et la note de chaque étudiant en Mathématiques dont la note est supérieure à 15: SELECT Etudiants.Nom, Etudiants.Prenom, Notes.Note FROM Etudiants INNER JOIN Notes ON Etudiants.ID_Etudiant = Notes.ID_Etudiant WHERE Notes.Matiere = 'Mathématiques' AND Notes.Note > 15;
Cet exemple combine une jointure (pour combiner les tables 'Etudiants' et 'Notes') avec une clause WHERE
(pour filtrer les résultats en fonction de la matière et de la note). C'est un exemple concret de la puissance de SQL.
Clauses ORDER BY et LIMIT
La clause ORDER BY
permet de trier les résultats d'une requête selon une ou plusieurs colonnes, par ordre croissant (ASC
) ou décroissant (DESC
). La clause LIMIT
permet de limiter le nombre de lignes retournées.
Exemple:
- Pour sélectionner les 5 étudiants les plus jeunes : SELECT Nom, Prenom, Age FROM Etudiants ORDER BY Age ASC LIMIT 5;
- Pour sélectionner les étudiants par ordre alphabétique inverse de nom : SELECT Nom, Prenom FROM Etudiants ORDER BY Nom DESC;
Ces clauses sont très utiles pour organiser et paginer les résultats, surtout lorsque vous travaillez avec de grandes quantités de données.
Ce qu'il faut retenir
SELECT
permettent d'extraire des données de bases de données.FROM
spécifie la table à partir de laquelle les données sont extraites.WHERE
filtre les lignes en fonction d'une condition.JOIN
) combinent des données de plusieurs tables.ORDER BY
trie les résultats.LIMIT
limite le nombre de lignes retournées.
Maîtriser ces concepts est crucial pour interagir efficacement avec les bases de données SQL.
FAQ
-
Quelle est la différence entre
SELECT *
etSELECT colonne1, colonne2
?
SELECT *
sélectionne toutes les colonnes de la table, tandis queSELECT colonne1, colonne2
sélectionne uniquement les colonnes spécifiées. -
Comment combiner plusieurs conditions dans la clause
WHERE
?
Utilisez les opérateurs logiquesAND
(pour que toutes les conditions soient vraies) etOR
(pour qu'au moins une condition soit vraie). -
Pourquoi utiliser des jointures?
Les jointures permettent de combiner des données provenant de plusieurs tables liées entre elles, ce qui est essentiel lorsque les informations sont réparties dans différentes tables.