Culture générale   >   Les requêtes d'interrogation de la base de données en langage SQL

Les requêtes d'interrogation de la base de données en langage SQL

  • Fiche de cours
  • Quiz
  • Profs en ligne
Objectifs : la gestion des connaissances est un élément prépondérant pour la performance des entreprises. C'est généralement une base de données qui stocke ces informations. Comment extraire des informations d'une base de données ? Comment effectuer une projection, une sélection, une jointure et un tri dans une requête SQL (Structured Query Language, c’est-à-dire langage de requêtes structuré) ?
1. La projection

La commande SELECT effectue une projection. SELECT permet d'extraire des données ou de faire des calculs sur les données d'une base. Cette commande suivie du nom d'un champ signifie que ce champ doit être affiché. SELECT est indissociable de la commande FROM. FROM indique de quelle(s) table(s) seront extraites les informations.

a. Syntaxe
SELECT nom du (ou des) champ(s) à sélectionner
FROM nom de la (ou les) table(s) contenant les champs sélectionnés ;

• Exemple :

SELECT Num_client
FROM Client;
= signifie l'affichage des numéros client provenant de la table client.

b. Les fonctions d'agrégat
Des fonctions peuvent être appliquées aux champs lors de la projection. Les principales fonctions sont :

SUM ( )

renvoie la somme d'un champ

AVG ( )

renvoie la moyenne d'un champ

MAX ( )

renvoie la valeur maximale d'un champ

MIN ( )

renvoie la valeur minimale d'un champ 

COUNT ( )

renvoie le nombre d'enregistrements de la table

• Exemple de fonction d'agrégat :

SELECT COUNT(Num_client)
FROM Client ;
= renvoie le nombre d'enregistrements du champ Num_client
c. Compléments
L'opérateur * (étoile) permet d'afficher l'ensemble des champs d'une table. Cet opérateur permet un gain de temps lors de la saisie de la requête. En effet, sans cet opérateur, il faudrait nommer chaque champ.
Exemple : SELECT * FROM Client donne l'ensemble des champs de la table Client.

L'opérateur AS permet de donner un nom à un champ d'une requête.
SELECT COUNT(Num_Client) AS Nombre_de_clients FROM Clients ;

Cette requête pourra avoir comme résultat :

Nombre de clients

125

2. La sélection (ou restriction)
La commande WHERE permet de spécifier les enregistrements (lignes de la table) à sélectionner (opération de restriction) en fonction d'une condition. La condition (ou prédicat) utilise au moins un opérateur. En présence de plusieurs conditions, les opérateurs AND ou OR sont utilisés.

a. Syntaxe
SELECT champ(s) à afficher
FROM table contenant les champs sélectionnés
WHERE Condition ;

 Exemple :

SELECT N°_telephone
FROM Client
WHERE Nom_Client = "Dupond" ;

= signifie l'affichage du numéro de téléphone du client Dupond. En présence d'une chaîne de caractères, celle-ci doit être saisie entre guillemets. A notre niveau, peu importe que ce soit des guillemets doubles ou des guillemets simples (apostrophes). Quant à la casse (majuscule ou minuscule), il faut la respecter. "dupond" et "DUPOND" ne sont pas identiques dans un système de gestion de bases de données relationnelles.

b. Les opérateurs
Le langage SQL comme tout autre langage utilise divers opérateurs. Les catégories d'opérateurs les plus couramment utilisées sont :
• les opérateurs arithmétiques : +, -, *, /
• les opérateurs de comparaison : <, >, =
• les opérateurs logiques : AND, OR, NOT
• des comparateurs de chaîne : LIKE, BETWEEN et IN

3. La jointure
La jointure permet de sélectionner des données contenues dans plusieurs tables. C'est la clé étrangère qui va jouer la liaison entre ces tables. Lorsque la commande FROM est suivie de plus d'un champ, il y a au minimum un critère de jointure. La commande WHERE est utilisée pour matérialiser la jointure. En présence de plusieurs jointures, l'opérateur AND est utilisé.

Syntaxe

SELECT
champ(s) à afficher
FROM tables contenant les champs sélectionnés
WHERE table1.clé primaire = table2.clé étrangère ;

• Exemple :

SELECT Nom_Client, Num_Commande
FROM Client, Commande
WHERE Client.Num_Client = Commande.Num_Client_Cde ;

Deux tables sont ici nécessaires pour afficher le nom du client et le numéro de commande. Une jointure est donc nécessaire. Cette jointure signifie que les valeurs prises par le champ Num_Client (clé primaire) de la table Client doivent être égales aux valeurs prises par le champ Num_Client_Cde (clé étrangère) de la table Commande.

4. Le tri
La commande ORDER BY permet d'effectuer un tri. ASC signifie un tri croissant et DESC signifie un tri décroissant. Par défaut le tri est croissant.

Syntaxe

SELECT nom du (ou des) champ(s) à sélectionner
FROM nom de la (ou les) table(s) contenant les champs sélectionnés
ORDER BY nom du champ sur le quel s'effectue le tri ;

• Exemple :

SELECT Nom_client, Num_client
FROM Client
ORDER BY Nom_client;
= signifie l'affichage des numéros et des noms des clients par ordre alphabétique.

5. Le regroupement
a. La commande GROUP BY
La commande (ou clause) GROUP BY groupe des lignes (enregistrements) d'une table d'après une fonction d'agrégat et plus précisément une fonction de calcul statistique (SUM, AVG, COUNT). Les requêtes de regroupement sont souvent utilisées dans l'analyse financière.

Syntaxe

SELECT champs à afficher
FROM tables nécessaires
GROUP BY champ sur lequel s'effectue le regroupement ;

Exemple :

SELECT Marque, AVG(prix) AS moyenne
FROM Vehicule
GROUP BY Marque ;
= signifie l'affichage des moyennes des prix par marque de véhicule.

b. La restriction sur le regroupement (HAVING)
La commande HAVING effectue une restriction sur le résultat des regroupements et non sur les données de la table.

Syntaxe

SELECT champs à afficher
FROM tables nécessaires
GROUP BY champ sur lequel s'effectue le regroupement
HAVING condition spécifique au regroupement ;

Exemple :

SELECT Marque, AVG(prix) AS moyenne
FROM Vehicule
GROUP BY Marque
HAVING AVG(prix) > 20 000 ;
= signifie l'affichage des moyennes des prix par marque de véhicule pour les marques qui ont une moyenne de prix supérieure à 20 000 €.

L'essentiel

SQL est un langage permettant, entre autres, d'interroger et de modifier une base de données. Le langage SQL utilise des commandes.

Une projection s'effectue en SQL avec la commande SELECT…FROM…
Une sélection (ou restriction) s'effectue avec la commande WHERE.
Quand une requête nécessite plusieurs tables, une jointure est nécessaire. Cette jointure se matérialise par la présence d'une commande WHERE.
La commande ORDER BY permet d'effectuer un tri.
La commande GROUP BY permet d'effectuer un regroupement. Cette commande est parfois associée à la commande HAVING qui introduit une restriction dans le regroupement.

Syntaxe

SELECT champs à afficher
FROM tables nécessaires
WHERE condition
AND critère de jointure
GROUP BY champ sur lequel s'effectue le regroupement
HAVING condition spécifique au regroupement
ORDER BY nom du champ sur lequel s'effectue le tri

Comment as-tu trouvé ce cours ?

Évalue ce cours !

 

Question 1/5

La médiane de 6 notes est 13. Cela signifie que :

Question 2/5

On a obtenu la série statistique suivante :

Combien vaut la médiane ?

Question 3/5

On a obtenu la série ci-dessous :

Quelle est la médiane de cette série ?

Question 4/5

On a relevé les tailles en cm des élèves d’une classe :

 

Parmi les propositions suivantes, laquelle est vraie ?

Question 5/5

Les notes en français de deux classes littéraires sont données dans le tableau suivant :

Quelle est la note médiane ?

Vous avez obtenu75%de bonnes réponses !

Recevez l'intégralité des bonnes réponses ainsi que les rappels de cours associés :

Votre adresse e-mail sera exclusivement utilisée pour vous envoyer notre newsletter. Vous pourrez vous désinscrire à tout moment, à travers le lien de désinscription présent dans chaque newsletter. Pour en savoir plus sur la gestion de vos données personnelles et pour exercer vos droits, vous pouvez consulter notre charte.

Une erreur s'est produite, veuillez ré-essayer

Consultez votre boite email, vous y trouverez vos résultats de quiz!

Découvrez le soutien scolaire en ligne avec myMaxicours

Le service propose une plateforme de contenus interactifs, ludiques et variés pour les élèves du CP à la Terminale. Nous proposons des univers adaptés aux tranches d'âge afin de favoriser la concentration, encourager et motiver quel que soit le niveau. Nous souhaitons que chacun se sente bien pour apprendre et progresser en toute sérénité !