Le langage SQL permet de récupérer et de manipuler des données depuis des tables de données. Dans cet article, nous allons apprendre à écrire des requêtes simples mais fondamentales en SQL.
Que signifie SQL ?
SQL est l’abréviation de Structured query language, que l’on peut traduire en français par langage de requête structuré. Ce langage est utilisé pour interroger les bases de données.
Qu’est ce qu’une base de donnée relationnelle ?
Une base de données relationnelle est une structure logique dans laquelle les tables de données sont liés les unes aux autres.
Qu’est-ce qu’une table ?
Une table est un objet d’une base de données qui nous permet de placer les données dans des lignes et des colonnes. Les tables sont les objets principaux d’une base donnée car elles contiennent la data.
Prenons la table suivante en exemple :
Nom: nom de l’élève
Niveau : Niveau de l’élève
Âge : Âge de l’élève
Distance
Poids : Poids de l’élève
Nous utiliserons cette table dans nos exemples. Le nom de la table est : élève.
Nos premières requêtes.
La clause SELECT peut être considéré comme le point de départ des requêtes SQL. Il est utilisé pour récupérer des données depuis les tables. Dans la syntaxe du SELECT, en premier l’on marque les colonnes que l’on souhaite récupérer en les séparant par une virgule s’il y ‘en a plusieurs.
Ensuite, on utilise la clause FROM, après lequel on indique la table dans laquelle l’on souhaite retirer les informations.
Dans l’exemple suivant, la requête récupère les âges et poids des élèves.
1
2 3 |
SELECT Âge
, Poids FROM Élève ; |
Si l’on souhaite récupérer seulement le nom des élèves, la syntaxe est la suivante :
1
2 |
SELECT Nom
FROM Élève ; |
L’Astérisque (*) permet d’appeler toutes les colonnes de notre table. Dans l’exemple suivant, la requête donne toutes les colonnes de la table élève.
1
2 |
SELECT *
FROM Élève ; |
Conseil :
Notre objectif principal est d’obtenir des résultats avec les requêtes aussi rapidement que possible avec le moins d’utilisation de ressources. Si possible, il faut éviter d’utiliser astérisque * à la suite du SELECT. Cet usage entraine une plus grande utilisation consommation des ressources. Autrement dit, si l’on n’a pas besoin de toutes les colonnes d’une table, il ne faut pas utiliser l’astérisque par facilité.
Filtrer les données : la clause WHERE
La clause WHERE est utilisée pour filtrer les données en prenant en argument certaines conditions. Après la clause WHERE il faut définir les conditions de filtrage. L’exemple suivant donne le nom de tous les élèves avec un âge supérieur à 8.
1
2 3 |
SELECT Nom
FROM Élève WHERE Age > 8 ; |
L’operateur LIKE est un opérateur logique qui permet de filtrer d’une manière spécial après la clause WHERE. Le signe (%) est souvent utilisé de pair avec l’opérateur Like. Avec la requête suivante, nous allons récupérer le nom des élèves qui commencent par G.
1
2 3 |
SELECT *
FROM Élève WHERE Nom LIKE ‘G%’ ; |
L’opérateur IN permet d’appliquer des « valeurs filtres » dans la clause WHERE. La requête suivante permet de récupérer le nom des élèves avec un poids de 42 ou 51
1
2 3 |
SELECT Nom
FROM Élève WHERE Poids IN (42,51) ; |
L’opérateur BETWEEN permet de filtrer des données qui sont comprises entre deux valeurs. La requête suivante retourne le poids de tous les élèves avec un âge compris entre 7 et 10 ans.
1
2 3 |
SELECT Poids
FROM Élève WHERE Âge BETWEEN 7 AND 10 ; |
Trier les données : La clause ORDER BY
La clause ORDER BY nous aide à trier les données. La sortie de la requête peut être tirée de manière ascendante avec le mot clé ASC ou de manière descendante avec le mot clé DESC. La requête suivante tri les élèves en fonction de leur âge de manière décroissante.
1
2 3 |
SELECT *
FROM Élève ORDER BY Âge DESC ; |
Eliminer les duplications : La clause DISTINCT
La clause DISTINCT est utilisée pour éliminer les duplications de données parmi les colonnes résultats, de tel manière que le résultat ne soit pas redondant. La requête suivante ressort le niveau des élèves qui ont un Âge supérieur ou égale à 8.
1
2 3 |
SELECT DISTINCT Niveau
FROM Élève WHERE Âge >=8 ; |
Ici certains niveaux auraient du sortir plusieurs fois dans le résultats, en effet, plusieurs élèves de plus de 8 ans sont dans le même niveau ! La clause DINSTICNT permet de ne faire apparaître les niveaux qu’une seule fois.