Fiche de cours

Langage d'interrogation des données (LID)

Lycée   >   Terminale STMG   >   Sciences de gestion et numérique   >   Langage d'interrogation des données (LID)

  • Fiche de cours
  • Quiz et exercices
  • Vidéos et podcasts
Objectifs : qu’est-ce permet un langage d’interrogation de données ? Qu’est-ce qu’une commande SELECT, une clause FROM, WHERE, ORDER BY ?

Le langage d’interrogation de données (LID) permet d’établir une combinaison d’opérations portant sur des tables (relation). Le résultat de cette combinaison d'opérations est lui-même une table dont l’existence ne dure qu'un temps.

On observera qu’en fait l'ordre SQL SELECT est composé de six clauses dont quatre sont optionnelles. La plupart du temps, la difficulté réside dans la compréhension de la différence entre le filtre WHERE et le filtre HAVING. Le filtre WHERE permet de filtrer les données des tables tandis que le filtre HAVING permet de filtrer les données du résultat.

Voici les clauses de l'ordre SELECT :

SELECT NomChamp1, NomChamp2 Champs à projeter ou à calculer
ou fonction d’agrégat
FROM TABLE1, TABLE2… Tables utiles à la requête
WHERE Expression AND/OR Jointures et restrictions
GROUP BY NomChamp Regroupement de résultat d’opérations d’agrégat
HAVING Expression Restriction sur l’affichage des résultats d’opérations d’agrégat
ORDER BY NomChamp [ASC]/DESC Critères de tri
   
Nous n’étudierons donc pas toutes les clauses du langage d’interrogation de données mais seulement les suivantes : SELECT et FROM, WHERE et ORDER BY.

1. La commande SELECT et la clause FROM
• Le SELECT est la commande de base du SQL destinée à extraire des données d’une base ou calculer de nouvelles données à partir d’existantes. La syntaxe est la suivante :

SELECT [DISTINCT ou ALL] * ou liste de colonnes
FROM nom de table ou de la vue
[WHERE prédicats]
[GROUP BY ordre des groupes]
[HAVING condition]
[ORDER BY ] liste de colonnes


A côté de cette syntaxe, il existe les agrégats suivants :
- SUM […] : renvoie à la somme d'un champ (valeurs de données de type numérique ou date/heure).
- AVG […] : renvoie la moyenne d'un champ (valeurs de données de type numérique ou date/heure).
MIN […] : renvoie la valeur minimale d'un champ (valeurs de données de type numérique, date et texte).
- MAX […] : renvoie la valeur maximale d'un champ (valeurs de données de type numérique, date et texte).
- COUNT […] : renvoie le nombre d’enregistrements de la table.

• Il est possible de surnommer une table dans la clause FROM, dans ce cas, la syntaxe de la partie FROM de la commande SELECT est la suivante :
FROM nom_de_table ou nom_de_la_vue surnom

2. Les clauses WHERE et ORDER BY
• La clause WHERE est un filtre sur les données, ce qui permet soit d’effectuer des jointures ou des restrictions. La syntaxe est la suivante :
WHERE [prédicats]

Le prédicat doit contenir n’importe quelle expression logique renvoyant une valeur vraie.

Exemple :
SELECT CLI_NOM
FROM T_CLIENT
WHERE 1=1
CLI_NOM
-------
DUPONT
MARTIN
BOUVIER
DUBOIS
DREYFUS
FAURE
LACOMBE
DUHAMEL    
BOYER
MARTIN
...

Attention : la plupart des SGBDR ne comportent pas de colonne de type booléen. Une requête comme la première risque d'échouer.

Exemple :

SELECT *
FROM TJ_CHB_PLN_CLI
WHERE CHB_PLN_CLI_OCCUPE
ERREUR !
bien que CHB_PLN_CLI_OCCUPE puisse être du booléen, la plupart des compilateurs SQL n’acceptent pas ce test direct.
SELECT *
FROM TJ_CHB_PLN_CLI
WHERE CHB_PLN_CLI_OCCUPE = True
CORRECT ...
Mais sur certains compilateurs SQL il faut faire :
CHB_PLN_CLI_OCCUPE = 'True' (littéral).

Si le type booléen n'existe pas, alors il faut faire
CHB_PLN_CLI_OCCUPE = 1 si l'on a choisi de définir les booléens comme INTEGER(1) avec 0 et 1
  
• La clause ORDER BY permet de définir le tri des colonnes de la réponse, soit en précisant le nom littéral de la colonne, soit en précisant son numéro d'ordre dans l'énumération qui suit le mot clef SELECT. Sa syntaxe est la suivante :

ORDER BY colonne1 | 1 [ASC ou DESC ] [, colonne2 | 2 [ASC ou DESC ] ...

ASC spécifie l’ordre ascendant et DESC l’ordre descendant du tri. ASC ou DESC peuvent être omis, dans ce cas c'est l'ordre ascendant qui est utilisé par défaut.

Bien que la clause ORDER BY ne soit pas nécessaire, il est souvent utile de trier la réponse en fonction des colonnes. En revanche le temps de réponse s'en ressent souvent.
Pour spécifier l'ordre de tri, on doit placer les noms des colonnes séparées par des virgules juste après le mot clef ORDER BY, dans l'ordre voulu. On peut aussi utiliser le rang de chaque colonne dans l'ordre spécifié dans la clause SELECT.

Attention : le tri est un tri interne, il ne faut donc placer dans cette clause que les noms des colonnes présentées dans la clause SELECT.

Souvent, le fait de placer DISTINCT suffit, en général, à établir un tri puisque le moteur doit se livrer à une comparaison des lignes mais ce mécanisme n'est pas garanti car ce tri s’effectue dans un ordre non contrôlable qui peut varier d’un serveur à l’autre.

Exemple :
SELECT CLI_NOM, CLI_PRENOM
FROM T_CLIENT
ORDER BY CLI_NOM, CLI_PRENOM

ou

SELECT CLI_NOM, CLI_PRENOM
FROM T_CLIENT
ORDER BY 1, 2
CLI_NOM CLI_PRENOM
-------- ----------
AIACH Alexandre
ALBERT Christian
AUZENAT Michel
BACQUE Michel
BAILLY Jean-François
BAVEREL Frédéric
BEAUNEE Pierre
BENATTAR Bernard
BENATTAR Pierre
BENZAQUI Joël
...
 
Remarque : les marqueurs NULL sont situés en premier dans l'ordre ainsi établi.

Un problème, qui n’est pas résolu, est de pouvoir choisir l’ordre des colonnes de la réponse. Sur certains serveurs cela peut être obtenu en plaçant les noms des colonnes à obtenir dans l’ordre où l’on veut les voir apparaître dans la clause SELECT mais cette possibilité n'est jamais garantie.

Attention : la clause ORDER BY est la dernière clause de tout ordre SQL et ne doit figurer qu'une seule fois dans le SELECT, même s'il existe des requêtes imbriquées ou un jeu de requêtes ensemblistes.
Voici un exemple illustrant tous les types de clauses.

Exemple : liste des loyers toutes charges comprises des locataires à Lille par ordre alphabétique.

SELECT NomClt, NumAppart, [loyerHC]
            + charges [AS LoyerTCC] 
            3 champs à projeter 
            dont un champ calculé

FROM CLIENT, APPARTEMENT 
            Tables utiles à la requête

WHERE CLIENT.NumAppart = 
            APPARTEMENT. NumAppart 
            Jointures entre les 2 tables

AND VilleAppart = « Lille » 
            Restriction aux clients de Lille

ORDER BY NomClt ASC 
            Tri par ordre alphabétique du nom.

L’essentiel

L’utilité d’un LID est de réaliser des combinaisons d’opérations sur différentes tables. L’utilisation des clauses, même celles dîtes optionnelles, est importante. La clause SELECT permet d’extraire des données d’une base ou calculer de nouvelles données à partir d’existantes. La clause FROM permet de renommer une table. Les clauses WHERE et ORDER BY permettent, successivement, de filtrer et de trier ces mêmes données.

Évalue ce cours !

 

Des quiz et exercices pour mieux assimiler sa leçon

La plateforme de soutien scolaire en ligne myMaxicours propose des quiz et exercices en accompagnement de chaque fiche de cours. Les exercices permettent de vérifier si la leçon est bien comprise ou s’il reste encore des notions à revoir.

S’abonner

 

Des exercices variés pour ne pas s’ennuyer

Les exercices se déclinent sous toutes leurs formes sur myMaxicours ! Selon la matière et la classe étudiées, retrouvez des dictées, des mots à relier ou encore des phrases à compléter, mais aussi des textes à trous et bien d’autres formats !

Dans les classes de primaire, l’accent est mis sur des exercices illustrés très ludiques pour motiver les plus jeunes.

S’abonner

 

Des quiz pour une évaluation en direct

Les quiz et exercices permettent d’avoir un retour immédiat sur la bonne compréhension du cours. Une fois toutes les réponses communiquées, le résultat s’affiche à l’écran et permet à l’élève de se situer immédiatement.

myMaxicours offre des solutions efficaces de révision grâce aux fiches de cours et aux exercices associés. L’élève se rassure pour le prochain examen en testant ses connaissances au préalable.

S’abonner

Des vidéos et des podcasts pour apprendre différemment

Certains élèves ont une mémoire visuelle quand d’autres ont plutôt une mémoire auditive. myMaxicours s’adapte à tous les enfants et adolescents pour leur proposer un apprentissage serein et efficace.

Découvrez de nombreuses vidéos et podcasts en complément des fiches de cours et des exercices pour une année scolaire au top !

S’abonner

 

Des podcasts pour les révisions

La plateforme de soutien scolaire en ligne myMaxicours propose des podcasts de révision pour toutes les classes à examen : troisième, première et terminale.

Les ados peuvent écouter les différents cours afin de mieux les mémoriser en préparation de leurs examens. Des fiches de cours de différentes matières sont disponibles en podcasts ainsi qu’une préparation au grand oral avec de nombreux conseils pratiques.

S’abonner

 

Des vidéos de cours pour comprendre en image

Des vidéos de cours illustrent les notions principales à retenir et complètent les fiches de cours. De quoi réviser sa prochaine évaluation ou son prochain examen en toute confiance !

S’abonner

Découvrez le soutien scolaire en ligne avec myMaxicours

Plongez dans l'univers de myMaxicours et découvrez une approche innovante du soutien scolaire en ligne, conçue pour captiver et éduquer les élèves de CP à la terminale. Notre plateforme se distingue par une riche sélection de contenus interactifs et ludiques, élaborés pour stimuler la concentration et la motivation à travers des parcours d'apprentissage adaptés à chaque tranche d'âge. Chez myMaxicours, nous croyons en une éducation où chaque élève trouve sa place, progresse à son rythme et développe sa confiance en soi dans un environnement bienveillant.

Profitez d'un accès direct à nos Profs en ligne pour une assistance personnalisée, ou explorez nos exercices et corrigés pour renforcer vos connaissances. Notre assistance scolaire en ligne est conçue pour vous accompagner à chaque étape de votre parcours éducatif, tandis que nos vidéos et fiches de cours offrent des explications claires et concises sur une multitude de sujets. Avec myMaxicours, avancez sereinement sur le chemin de la réussite scolaire, armé des meilleurs outils et du soutien de professionnels dédiés à votre épanouissement académique.

Fiches de cours les plus recherchées

Sciences de gestion et numérique

Langage de contrôle de données (LCD)

Sciences de gestion et numérique

Approche des processus organisationnels

Sciences de gestion et numérique

Gestion du projet de système d'information

Sciences de gestion et numérique

Justification économique d'un projet d'évolution de système d'information

Sciences de gestion et numérique

Les normes associées aux réseaux informatiques : TCP/IP

Sciences de gestion et numérique

Organisation du projet

Sciences de gestion et numérique

Suivi du projet

Sciences de gestion et numérique

La modélisation des processus (le modèle événement-résultat)

Sciences de gestion et numérique

Généralités sur les réseaux pour le SI de l'organisation

Sciences de gestion et numérique

Adressage Internet Protocol