Retour à la liste des articles Articles
11 minutes de lecture

Les requêtes SQL les plus importantes pour les débutants

Comment obtenir des données d'une table ? Comment créer ou supprimer une table ? Comment afficher des enregistrements distincts ? Comment sélectionner les lignes qui contiennent une valeur spécifique dans une colonne ? Vous pouvez facilement faire tout cela en écrivant des requêtes SQL de base.

Ce guide présente les 30 requêtes SQL les plus importantes pour les débutants. Jetons-y un coup d'œil.

1. Récupération des données de toutes les colonnes

Il s'agit d'une requête très basique pour afficher toutes les données d'une table. Remarquez que cette requête ne comporte qu'un seul caractère après SELECT: "*" (qui désigne toutes les colonnes). Par conséquent, vous n'avez pas besoin d'énumérer les noms des colonnes. Bien entendu, n'oubliez pas d'écrire FROM et le nom de la table dont vous voulez récupérer les données. Dans cet exemple, nous récupérons les données de la table animal.

SELECT *
FROM animal;

2. Récupération des données de certaines colonnes

La requête ci-dessus affiche toutes les données de la table animal. Si vous souhaitez extraire les données de certaines colonnes uniquement, indiquez-les après SELECT. Dans cet exemple, nous récupérons les données des colonnes id et name.

SELECT id, name
FROM animal;

3. Filtrage des données à l'aide de la clause WHERE

Outre l'extraction de données de certaines colonnes, vous pouvez également filtrer les données en énumérant les conditions après WHERE. Dans cet exemple, il y a une condition : age>=2. Nous recherchons les enregistrements dont la valeur est égale ou supérieure à 2 dans la colonne age.

SELECT id, name, age
FROM animal
WHERE age>=2;

4. Filtrage des données à l'aide de conditions réunies par l'opérateur AND

Si vous souhaitez filtrer des données en utilisant plus d'une condition, vous pouvez utiliser AND. Dans cet exemple, nous recherchons les enregistrements dont la valeur est égale ou supérieure à 2 dans la colonne age et 'dog' dans la colonne name.

SELECT id, name, age 
FROM animal
WHERE age >= 2 AND name = 'dog';

5. Filtrage des données à l'aide de conditions reliées par l'opérateur OR

Si une seule des conditions doit être remplie, vous pouvez utiliser OR. Dans cet exemple, nous recherchons les enregistrements dont la valeur est égale ou supérieure à 2 dans la colonne age ou 'dog' dans la colonne name.

SELECT id, name, age 
FROM animal
WHERE age >= 2 OR name = 'dog';

6. Utilisation de DISTINCT pour récupérer des enregistrements non répétés

Vous pouvez placer DISTINCT après SELECT pour récupérer un seul enregistrement de chaque type. Dans cet exemple, nous voulons récupérer les enregistrements des colonnes name et color. Si les valeurs de ces colonnes sont les mêmes dans plus d'un enregistrement (par exemple, il y a plus d'un T-shirt jaune dans la table), la requête renvoie un seul de ces enregistrements.

SELECT DISTINCT name, color
FROM clothing;

7. Extraction de données sans NULL dans une certaine colonne

Si vous souhaitez extraire des données uniquement des lignes sans NULL dans une certaine colonne, utilisez IS NOT NULL. Dans cet exemple, la valeur de la colonne color ne peut pas être NULL. Ainsi, seuls les enregistrements dont la valeur est stockée dans la colonne color seront renvoyés. Un opérateur similaire à IS NOT NULL est IS NULL, qui vérifie si une valeur est égale à NULL.

SELECT name, color
FROM clothing
WHERE color IS NOT NULL;

8. Tri des données en fonction d'une colonne

Pour trier des données en fonction d'une colonne, placez le nom de la colonne après ORDER BY. La méthode de tri par défaut est alphabétique, mais vous pouvez également afficher les lignes par ordre décroissant en ajoutant DESC après le nom de la colonne. Dans cet exemple, nous voulons trier les données des colonnes id et name en fonction de la colonne name.

SELECT id, name 
FROM animal
ORDER BY name;

9. Tri des données en fonction de plus d'une colonne

Vous pouvez également trier les données en fonction de plusieurs colonnes. Dans cet exemple, les enregistrements sont d'abord triés en fonction de la colonne name par ordre décroissant, puis en fonction de la colonne id par ordre croissant. Si la requête trouve des enregistrements portant le même nom (par exemple, tous les enregistrements dont le nom de colonne est 'dog'), elle trie ces enregistrements par ordre croissant en fonction de id.

SELECT id, name 
FROM animal
ORDER BY name DESC, id;

10. Recherche de valeurs correspondant à un certain modèle

Vous pouvez utiliser LIKE pour récupérer des données qui correspondent à un certain modèle. Dans cet exemple, nous voulons récupérer les enregistrements des colonnes id et name qui contiennent une chaîne de caractères contenant le caractère "e" dans la colonne name (par exemple, les enregistrements avec des noms comme éléphant,abeille, etc.)

SELECT id, name 
FROM animal
WHERE name LIKE '%e%';

11. Joindre les valeurs des colonnes de texte en une seule chaîne de caractères

La fonction CONCAT joint des chaînes de caractères. Dans cet exemple, les chaînes de caractères stockées dans les colonnes category et name sont renvoyées sous la forme d'une seule colonne de chaînes de caractères avec un espace entre la valeur de la colonne category et la valeur de la colonne name.

SELECT CONCAT(category, ' ', name) 
FROM tab;

12. Utilisation d'opérateurs mathématiques

Vous pouvez écrire des requêtes pour calculer des valeurs en utilisant des opérateurs mathématiques comme "+", "-", "*" et "/". Dans cet exemple, nous voulons calculer le prix réduit en soustrayant la valeur de la colonne discount de la valeur de la colonne price.

SELECT price - discount
FROM product;

13. Ajout de données provenant de différentes tables

Vous pouvez joindre des enregistrements provenant de différentes tables en utilisant l'opérateur UNION ALL. N'oubliez pas que les enregistrements doivent avoir le même type de données. Dans cet exemple, nous voulons récupérer toutes les lignes contenant des noms de famille dans la table customer et toutes les lignes avec des noms de famille de la table employee. Elle récupérera tous les noms de famille, même s'ils sont répétés. Si nous voulons sélectionner tous les noms de famille sans répétitions, nous utiliserons UNION au lieu de UNION ALL.

SELECT last_name FROM customer
UNION ALL
SELECT last_name FROM employee;

14. Trouver l'intersection d'ensembles de données

INTERSECT renvoie l'intersection de deux ensembles de données. Dans cet exemple, nous voulons uniquement récupérer les noms de famille figurant dans les deux tables. Pour voir ce qui est différent entre les ensembles, utilisez les opérateurs MINUS ou EXCEPT.

Si vous souhaitez en savoir plus sur les opérateurs d'ensembles et voir l'explication visuelle de ce concept, lisez cet article.

SELECT last_name FROM customer
INTERSECT
SELECT last_name FROM employee;

15. Joindre des données provenant de différentes tables

Vous pouvez joindre des tables à l'aide de JOIN, y compris INNER JOIN, LEFT JOIN, RIGHT JOIN, FULL JOIN et CROSS JOIN (pour plus d'informations, veuillez consulter les cours indiqués à la fin de cet article). Dans cet exemple, nous voulons joindre les données des tables customer et city. INNER JOIN doit venir après FROM et le nom de la première table, customer. Après INNER JOIN, placez le nom de la deuxième table , city. Les enregistrements contenant des données provenant des deux tables sont mis en correspondance par ON avec la condition de jointure. Les enregistrements de la table city sont mis en correspondance avec les enregistrements de la table customer s'ils ont la même valeur dans la colonne id de la table customer et dans la colonne customer_id de la table city.

SELECT customer.last_name, city.name 
FROM customer
INNER JOIN city 
  ON customer.id = city.customer_id;

16. Utilisation des alias de tables et de colonnes

Si vous joignez des tables, il est judicieux d'utiliser des alias pour les noms de table et de colonne. Dans cet exemple, nous voulons joindre deux tables, customer et cityet les nommer c et trespectivement. Nous définissons ces nouveaux noms dans FROM ou JOIN, en utilisant AS. De même, nous renommons les colonnes last_name dans la table customer et name dans la table city en lname et city, respectivement.

SELECT c.last_name AS lname, t.name AS city
FROM customer AS c
INNER JOIN city AS t
  ON c.id = t.customer_id;

17. Compter le nombre de rangées dans une table

COUNT compte le nombre de lignes. Dans cet exemple, elle renvoie le nombre de valeurs de la colonne id stockées dans la table product (le nombre de tous les produits).

SELECT COUNT(id)
FROM product;

18. Calculer la moyenne des valeurs d'une colonne

Vous pouvez calculer la moyenne des valeurs d'une colonne en utilisant AVG. Dans cet exemple, la requête renvoie le prix moyen de tous les produits de la table. product.

SELECT AVG(price)
FROM product;

19. Calcul de la somme des valeurs d'une colonne

SUM calcule la somme des valeurs d'une colonne. Dans cet exemple, il renvoie la valeur de tous les produits.

SELECT SUM(price)
FROM product;

20. Recherche de la valeur minimale d'une colonne

Vous pouvez trouver la valeur minimale stockée dans une colonne en utilisant MIN. Dans cet exemple, la requête renvoie le prix minimum parmi les produits.

SELECT MIN(price)
FROM product;

21. Recherche de la valeur maximale d'une colonne

Vous pouvez trouver la valeur maximale stockée dans une colonne en utilisant MAX. Dans cet exemple, la requête renvoie le prix maximum des produits.

SELECT MAX(price)
FROM product;

22. Calcul de la valeur agrégée pour des groupes d'enregistrements

La fonction GROUP BY permet de regrouper des enregistrements pour calculer une valeur. Dans cet exemple, nous utilisons COUNT pour calculer le nombre de lignes (le nombre de produits) dans chaque groupe (category). Les colonnes de SELECT doivent être placées dans la clause GROUP BY. GROUP BY peut être utilisé de la même manière avec d'autres fonctions d'agrégation comme MAX, MIN, AVG et SUM.

SELECT category, COUNT(id)
FROM product
GROUP BY category;

23. Filtrage des enregistrements à l'aide des fonctions d'agrégation

Vous pouvez filtrer les enregistrements après avoir calculé les valeurs de chaque groupe à l'aide de HAVING. Dans cet exemple, nous voulons récupérer les catégories dont le prix moyen des produits est inférieur à 56,50.

SELECT category, AVG(price)
FROM product
GROUP BY category
HAVING AVG(price) < 56.50;

24. Suppression de données d'une table

DELETE FROM supprime toutes les données d'une table. Dans cet exemple, nous voulons supprimer toutes les données de la table product.

DELETE FROM product;

25. Suppression des enregistrements répondant à une certaine condition dans un tableau

Vous pouvez supprimer les enregistrements répondant à une certaine condition en utilisant WHERE. Dans cet exemple, nous voulons supprimer les enregistrements de la table product avec id égal à 5.

DELETE FROM product
WHERE id = 5;

26. Insérer des données dans un tableau

Vous pouvez ajouter un nouvel enregistrement à un tableau en utilisant INSERT INTO. Après INSERT INTO, mettez le nom de la table, puis entre parenthèses le nom des colonnes de la table. Après cela, mettez VALUES et ensuite, entre parenthèses, les valeurs des colonnes. Dans cet exemple, nous voulons insérer dans la table 25 dans id, 'sofa' dans name, et 'furniture' dans category. product.

INSERT INTO product(id, name, category) 
VALUES(25, 'sofa', 'furniture');

27. Mise à jour d'une colonne dans un tableau

UPDATE vous permet de modifier des données dans les enregistrements. Après UPDATE, mettez le nom de la table, puis SET, et ensuite le nom de la colonne à modifier avec "=" et nouvelle valeur à insérer. Cette requête modifie toutes les valeurs de la colonne. Dans cet exemple, nous voulons modifier toutes les valeurs de la colonne company en 'ABC'.

UPDATE product SET company = 'ABC';

28. Mise à jour d'une colonne en filtrant les enregistrements

Toutefois, si vous ne souhaitez pas modifier toutes les valeurs d'une colonne, vous pouvez ajouter WHERE avec une condition. Dans la condition, vous pouvez spécifier les enregistrements à modifier. Dans cet exemple, nous voulons modifier les valeurs de la colonne name en 'armchair' uniquement pour les enregistrements contenant id=25.

UPDATE product
SET name = 'armchair'
WHERE id = 25;

29. Création d'une table

Vous pouvez créer un tableau en utilisant CREATE TABLE. Après CREATE TABLE, mettez le nom de la table et définissez entre parenthèses les noms des colonnes et leurs types de données. Dans cet exemple, nous voulons créer la table tab avec deux colonnes : id dont le type de données est un entier et name limitée à un maximum de 50 caractères.

CREATE TABLE tab(id int, name varchar(50));

30. Suppression d'un tableau

Vous pouvez supprimer une table en utilisant DROP TABLE. Il suffit de mettre le nom de la table que vous voulez supprimer après DROP TABLE. Dans cet exemple, nous voulons supprimer la table tab.

DROP TABLE tab;

Résumé

Les requêtes décrites ci-dessus sont les plus couramment utilisées par les débutants et les professionnels. Ces requêtes sont nécessaires pour créer ou supprimer une table, insérer des données dans une table, mettre à jour des enregistrements ou supprimer des données d'une table.

Voulez-vous en savoir plus sur la création et la suppression de tables ? Voulez-vous vous plonger dans l'insertion, la mise à jour et la suppression de données en SQL ? Consultez ces cours utiles qui vous permettront d'acquérir une expérience pratique :" Créer des tables en SQL" et" Comment insérer, mettre à jour ou supprimer des données en SQL "."

Si vous souhaitez en savoir plus sur la vérification des données dans une table, le filtrage des données, le calcul des valeurs agrégées dans les colonnes ou les groupes et la recherche de valeurs correspondant à un modèle, consultez notre cours "SQL pour les débutants" et son ensemble de travaux pratiques.

Si vous souhaitez en savoir plus sur l'assemblage de données provenant de plus de deux tables, affinez vos connaissances avec le cours ". Les jointures en SQL."