4th Jul 2022 7 minutes de lecture Énumération et explication de tous les éléments de base d'une requête SQL Kateryna Koidan sql apprendre sql sql query Table des matières Éléments de base d'une requête SQL SELECT FROM JOIN WHERE ORDER BY GROUP BY HAVING Syntaxe des requêtes SQL : Résumons "Quels sont les éléments de base d'une requête SQL ?" est une question populaire dans les entretiens d'embauche en SQL. Dans cet article, nous passons en revue la syntaxe de base d'une requête SQL. Une requête SQL, qui demande des informations à une base de données relationnelle, se compose de plusieurs éléments. Ceux-ci vous permettent de sélectionner des colonnes spécifiques dans des tables spécifiques et de filtrer et trier ces informations si nécessaire. Dans cet article, je vais passer brièvement en revue ces éléments en expliquant ce que fait chaque élément et comment l'utiliser. Éléments de base d'une requête SQL SELECT L'instruction SELECT est la première chose que vous rencontrerez lorsque vous commencerez à apprendre le langage SQL. Avec l'instruction SELECT, vous choisissez les colonnes à afficher dans la sortie. Par exemple, imaginons que nous sommes des analystes de données au Louvre. Nous disposons de plusieurs tables dans notre base de données, notamment celles qui concernent artworks et artists. artworks idtitleartist_idyeartype 111The Mona Lisa121506painting 112Jean-Baptiste Poquelin (Moliere)141787sculpture 113The Wedding Feast at Cana111563painting 114The Lacemaker131670painting 115A River141759sculpture artists idnameyear_birthyear_death 11Paolo Veronese15281588 12Leonardo da Vinci14521519 13Johannes Vermeer16321675 14Jean-Jacques Caffieri17251792 Notre première tâche consiste à obtenir des informations de base sur les œuvres d'art que nous exposons, à savoir le site title, l'année de création et le type d'œuvre. Voici la requête permettant de demander ces informations : SELECT title, year, type FROM artworks; Dans l'instruction SELECT, nous listons simplement les colonnes que nous voulons voir. Voici le résultat : titleyeartype The Mona Lisa1506painting Jean-Baptiste Poquelin (Moliere)1787sculpture The Wedding Feast at Cana1563painting The Lacemaker1670painting A River1759sculpture Vous trouverez d'autres exemples de SELECT dans cet article sur la rédaction d'une instruction SELECT. Consultez également notre cours SQL pour les débutants pour commencer à apprendre SQL de manière interactive. FROM Comme vous l'avez vu dans notre premier exemple, lorsque vous choisissez les colonnes à afficher, vous devez également spécifier la table dans laquelle ces données sont stockées. Ceci est fait avec le mot-clé FROM. Dans l'exemple ci-dessus, nous avons demandé des informations sur diverses œuvres d'art, qui sont (comme prévu) stockées dans la table artworks table. Maintenant, obtenons quelques informations de base sur les artistes présentés dans notre musée. Pour ce faire, nous allons demander le nom des artistes, leur année de naissance et leur année de décès dans la table artists table : SELECT name, year_birth, year_death FROM artists; Voici le résultat de cette requête SQL : nameyear_birthyear_death Paolo Veronese15281588 Leonardo da Vinci14521519 Johannes Vermeer16321675 Jean-Jacques Caffieri17251792 JOIN Dans de nombreux cas, vous devrez joindre les données de plusieurs tables pour obtenir le résultat souhaité. L'instruction JOIN vous permet d'obtenir des informations de deux tables ou plus dans une seule requête SQL. Par exemple, disons que vous voulez voir les noms des artistes avec leurs œuvres d'art. Ces informations ne sont pas disponibles dans une seule table : vous avez le nom de l'œuvre d'art dans les tables artworks tandis que le nom de l'artiste est stocké dans la table artists table. Cependant, vous pouvez facilement joindre ces deux informations en utilisant le numéro d'identification de l'artiste , qui est stocké dans les deux tables : SELECT artworks.title, artists.name FROM artworks JOIN artists ON artworks.artist_id = artists.id; Nous spécifions une table dans l'instruction FROM et une autre table dans l'instruction JOIN. Nous utilisons également le mot-clé ON pour indiquer à la base de données les valeurs de colonne à faire correspondre pour joindre les tables. Voici le résultat : titlename The Mona LisaLeonardo da Vinci Jean-Baptiste Poquelin (Moliere)Jean-Jacques Caffieri The Wedding Feast at CanaPaolo Veronese The LacemakerJohannes Vermeer A RiverJean-Jacques Caffieri Pour comprendre les différents types de jointures disponibles en SQL, consultez ce guide d'introduction. N'oubliez pas non plus de consulter nos 10 meilleures questions d'entretien sur les jointures SQL. Elles sont idéales pour s'entraîner (même si vous ne vous préparez pas à un entretien d'embauche). WHERE La clause WHERE est utilisée pour filtrer les résultats d'une requête. Par exemple, supposons que votre prochaine mission consiste à répertorier les titres des peintures disponibles dans le musée et leur année de création. Vous ne voulez pas d'informations sur les sculptures et autres types d'œuvres d'art dans le jeu de résultats. Voici la requête SQL à utiliser : SELECT title, year FROM artworks WHERE type = ‘painting’; Avec l'instruction WHERE, vous spécifiez simplement que le type d'œuvre d'art doit être "peinture". Vous obtenez ainsi ce résultat : titleyear The Mona Lisa1506 The Wedding Feast at Cana1563 The Lacemaker1670 Pour plus de détails sur la clause WHERE, consultez cet article. ORDER BY Vous souhaitez souvent que les résultats de la requête soient affichés dans un ordre spécifique. En SQL, vous pouvez trier le jeu de résultats avec la clause ORDER BY. Par exemple, classons le résultat de la dernière requête SQL par année de création, en commençant par les œuvres les plus récentes. Pour ce faire, il suffit de spécifier la colonne année dans la clause ORDER BY et d'ajouter le mot-clé DESC pour mettre les résultats dans l'ordre décroissant : SELECT title, year FROM artworks WHERE type = ‘painting’ ORDER BY year DESC; titleyear The Lacemaker1670 The Wedding Feast at Cana1563 The Mona Lisa1506 Pour en savoir plus sur le classement des lignes par une ou plusieurs colonnes, consultez cet article d'introduction. Pour des cas d'utilisation plus avancés de ORDER BY, consultez ce guide approfondi sur l'instruction ORDER BY. GROUP BY Par défaut, tous les résultats que nous obtenons sont orientés vers les enregistrements. Cependant, dans certains cas, nous pouvons vouloir calculer des mesures pour des groupes d'enregistrements (par exemple, le nombre de peintures de chaque artiste, le chef-d'œuvre le plus ancien pour chaque type d'œuvre, etc.) C'est ici que la clause GROUP BY entre en jeu. Avec GROUP BY, vous pouvez créer des groupes d'enregistrements (rangées) et calculer des mesures sur chaque groupe. Par exemple, voyons l'année de création du chef-d'œuvre le plus ancien de chaque type d'œuvre d'art : SELECT type, MIN (year) AS oldest_work_from FROM artworks GROUP BY type; Ici, nous calculons l'année la plus ancienne (minimale) pour chaque type d'œuvre d'art. Nous obtenons le résultat suivant : typeoldest_work_from painting1506 sculpture1759 Pour en savoir plus sur la syntaxe de GROUP BY, consultez cet article. Vous trouverez également d'autres exemples avec GROUP BY ici. HAVING Comme la clause WHERE, HAVING filtre le résultat d'une requête. Toutefois, WHERE filtre au niveau de l'enregistrement, tandis que HAVING filtre au niveau du groupe. Pour en savoir plus sur la différence entre HAVING et WHERE, cliquez ici. Supposons que nous voulions obtenir les types d'œuvres d'art dont l'œuvre la plus ancienne est antérieure à 1600. Comme il s'agit d'une condition pour une valeur agrégée, nous la plaçons dans la clause HAVING : SELECT type, MIN (year) AS oldest_work_from FROM artworks GROUP BY type HAVING MIN (year) < 1600; Dans notre cas, seuls les tableaux satisfont à cette condition : typeoldest_work_from painting1506 Obtenez plus de détails sur quand et comment utiliser la clause HAVING dans ce guide. Syntaxe des requêtes SQL : Résumons Comme nous avons passé en revue les éléments de base d'une requête SQL, vous avez probablement pu constater que l'endroit et la manière d'utiliser ces éléments sont généralement simples. Cependant, il existe de nombreux détails qui n'ont pas été abordés dans cet aperçu. Pour vous aider à réviser vos connaissances de la syntaxe SQL, nous avons préparé une feuille de cheat de deux pages SQL pour les débutants. N'hésitez pas à la télécharger, à l'imprimer et à la coller sur votre bureau. Essayons maintenant d'utiliser tous les éléments de base dans une requête SQL. Obtenons les noms des artistes ainsi que l'année de leur œuvre la plus ancienne que nous avons au musée. Nous voulons également (1) exclure la Joconde, car elle est trop célèbre ; (2) inclure uniquement les artistes dont l'œuvre la plus ancienne a été créée avant 1700, et (3) ordonner le résultat par année de l'œuvre la plus ancienne, en commençant par la plus ancienne. Voici la requête à utiliser : Le résultat de cette requête est : nameoldest_work_from Paolo Veronese1563 Johannes Vermeer1670 Avez-vous été en mesure de suivre la logique de cette requête SQL ? Si vous ne vous sentez pas à l'aise avec l'utilisation de différents éléments de requête, n'hésitez pas à consulter notre SQL pour les débutants cours. En 129 exercices interactifs, il couvre les applications fondamentales de SQL, notamment la création de rapports de base, le travail avec plusieurs tables, la création de rapports avec des fonctions d'agrégation et l'écriture de sous-requêtes et d'instructions complexes. Vous souhaitez encore plus de pratique ? LearnSQL.fr a développé une Exercices Pratiques de SQL avec 88 exercices interactifs pour tester vos connaissances de base de SQL. Merci de votre lecture et bon apprentissage ! Tags: sql apprendre sql sql query