5
sql.dql
medina5 edited this page 2025-09-27 07:13:38 +02:00

Langage de requête de données

Note

DQL pour Data Query Language est le sous-langage responsable de la lecture, ou de l'interrogation, des données d'une base de données.

En SQL, cela correspond principalment à la commande select qui permet de sélectionner et d'extraire des données spécifiques à partir d'une ou plusieurs tables.

La dénomination de ce type de commande est requête ou query en anglais

Source

Dans une commande select il convient de définir les colonnes que l'on veut obtenir ainsi que la source des données définie par le mot clé from

select firstName, LastName, City from customers;

Sélectionner les colonnes prénom (firstName), nom (lastName) et ville (City) de la table clients (customers).

Pour sélectionner toutes les colonnes il faut utiliser le caractère joker *.

Filtre

La clause where permet de spécifier une condition qui doit être satisfaite pour qu'une ligne soit incluse dans le résultat de la requête.

select FirstName, LastName, City
from customers
where Country = 'France';
FirstName LastName City
Camille Bernard Paris
Dominique Lefebvre Paris
Marc Dubois Lyon
Wyatt Girard Bordeaux
Isabelle Mercier Dijon

Opérateurs

Opérateur Description
= égal
<> différent
> supérieur
>= supérieur ou égal
< inférieur
<= inférieur ou égal

entre

Détermine si une valeur se trouve entre deux limites inclusives. between peut être précédé du mot clé not pour inverser la condition.

where total between 10.0 and 20.0

quand le total est entre 10 et 20

dans

L'opérateur `in' détermine si une valeur est présente dans un ensemble de valeurs.

select FirstName, LastName, Country
from customers
where Country in ('France', 'Belgium', 'Germany');

Sélectionner les clients de France, Belgique ou Allemagne.

comme

détermine si une valeur correspond à tout ou partie d'une chaîne. souvent utilisé avec caractères génériques pour indiquer toute correspondance de chaîne de caractères avec zéro ou plusieurs caractères (%) ou une correspondance à caractère unique (_).

"products"."prod_name" like 'prod%'

Conditions multiples

Les conditions peuvent être combinées avec des opérateurs booléen AND et OR.

Tri

La commande ORDER BY dans une requête SELECT en SQL est utilisée pour trier les résultats retournés par la requête en fonction d'une ou plusieurs colonnes.

SELECT nom, prenom, age
FROM utilisateurs
ORDER BY age DESC, nom ASC;

Pagination

Si un nombre limite est donné, pas plus de ce nombre de lignes sera renvoyé (mais peut-être moins, si la requête elle-même génère moins de lignes).

OFFSET dit de sauter autant de lignes avant de commencer à renvoyer des lignes.

Si OFFSET et LIMIT apparaissent, les lignes OFFSET sont ignorées avant de commencer à compter les lignes LIMIT renvoyées.

Lors de l'utilisation de LIMIT, il est important d'utiliser une clause ORDER BY qui contraint les lignes de résultats dans un ordre unique. Sinon, vous obtiendrez un sous-ensemble imprévisible des lignes de la requête. Vous demandez peut-être les lignes du dixième au vingtième, mais du dixième au vingtième dans quel ordre ? L'ordre est inconnu, sauf si vous avez spécifié ORDER BY.

Agrégation

Agrégation

Regoupement

Les fonctions d'agrégation deviennent particulièrement puissantes lorsqu'elles sont utilisées avec GROUP BY, qui regroupe les lignes partageant une valeur commune dans une ou plusieurs colonnes avant d'appliquer l'agrégation.

SELECT departement, AVG(salaire)
FROM employes
GROUP BY departement;