Passer au contenu principal
Page

CHAPITRE 4 - Gérer la base de données avec SQL

Conditions d’achèvement

 4 Gérer la base de données avec SQL

 

Pourquoi devrions-nous nous préoccuper de SQL? Les entreprises doivent garder une trace de beaucoup de données, et la seule façon pratique de le faire est de stocker les données est un certain type de base de données. Si vous devenez analyste de données pour l'entreprise monde, d'une manière ou d'une autre,  vous allez devoir trouver comment extraire des données de ces bases de données afin de faire tout type d'analyse. Ce chapitre est conçu pour vous aider à apprendre de haut niveau comment le faire et nous aurons un module dédié qui vous guidera plus en détail dans le monde SQL.

Dans de nombreuses entreprises axées sur la technologie, la seule façon d'extraire des données d'une base de données est d'écrire vos propres requêtes SQL, qui sont des lignes structurées de code informatique qui extraient des données. Dans d'autres entreprises plus grandes et plus traditionnelles, il y a des personnes dans l'entreprise qui pourraient extraire les données pour vous, mais vous devez faire une demande formelle pour qu'elles écrivent, exécutent et interrogent. Et cela peut prendre des jours ou des semaines pour qu'elles répondent à votre demande, surtout si beaucoup d'autres personnes demandent également des requêtes. Pour cette raison,  les entreprises sont très désireuses d'embaucher des analystes qui  peuvent non seulement analyser les données, mais qui savent comment obtenir les données en premier lieu.

Nous avons mentionné plus tôt que SQL est le langage utilisé pour extraire des données de types spécifiques de bases de données appelées bases de données relationnelles. Les bases de données relationnelles sont la référence pour les bases de données qui stockent des données commerciales hautement organisées et structurées - base de données relationnelle . Il existe également de nouvelles classes de bases de données spécialement conçues pour les données qui sont collectées à un rythme extrêmement rapide, telles que les données GPS ou biocapteurs, ou les données non structurées   qui ne correspondent pas bien aux formats hautement prescrits, tels que les tweets ou les textes. Toutefois, bien que ces bases de données soient certainement susceptibles de gagner en popularité à l'avenir, elles ne représentent actuellement qu'une très petite fraction du marché des bases de données.

 

1.1 Récupération des données

 

1.1.1 SELECT - FROM

 

Dans cette section nous allons passer en revue l'épine dorsale de la récupération de données avec l'instruction select. La majorité de ce que les data scientistes font avec SQL consiste à récupérer des données. Pour pouvoir faire cela et vous aider à démarrer, la première instruction que nous allons utiliser est appelée l'instruction SELECT. Après cette section, vous serez en mesure d'écrire une instruction SELECT de base, d'indiquer à une base de données la table à partir de laquelle vous voulez vos données, de sélectionner toutes les colonnes ou certaines colonnes d'une table dans une requête et de limiter la quantité de données renvoyées dans une requête. Avec l'instruction SELECT, vous allez spécifier deux éléments d'information, ce que vous voulez sélectionner et d'où vous le souhaitez.

Regardons le concept à l'aide d'un exemple. Donc, dans cet exemple, je vais sélectionner le nom du produit, c'est une colonne du tableau que je veux, puis je vais dire d'où je veux l'obtenir. Je veux donc l'obtenir auprès des produits. La sortie de ceci va alors ressembler à la colonne ci-dessous. Dont il a un nom de produit de colonne, puis toute la liste des produits. Nous avons du shampoing, du dentifrice, du déodorant et une brosse à dents.

 

 

Si vous souhaitez récupérer plusieurs colonnes d'une table, ce que vous devez faire est d'ajouter les noms des colonnes individuelles ensemble. Mais ajoutez une virgule après avoir ajouté le nom de la colonne. Donc, dans cet exemple, nous sélectionnerons toujours dans la table Products, mais sélectionnerons également le prod_name, le prod_id et le prod_price.

 

 

Supposons maintenant que vous ayez une table qui a 20 colonnes et que vous voulez toutes les colonnes de la table. Au lieu d'avoir à écrire chaque colonne individuelle, ce qui prendrait un certain temps, il existe un caractère générique que vous pouvez utiliser, à savoir l'astérisque. Vous pouvez donc mettre SELECT

* puis FROM Products et cela va aller de l'avant et récupérer tout de la table Products, chaque colonne individuelle, et le mettre dans votre sortie. Voilà donc les principes de base de l'utilisation de SELECT.  

Une image contenant texte, capture d’écran, Rectangle

Le contenu généré par l’IA peut être incorrect.

 

Chaque fois que vous récupérez des données, vous allez avoir une instruction SELECT. Parce que vous récupérez des données, vous devez dire quelque chose comme bonjour, allez me chercher quelque chose. C'est à cela que sert SELECT. Et le FROM qui l'accompagne ira toujours de pair, car si vous sélectionnez quelque chose, vous devez indiquer à SQL, dans la base de données, où l'obtenir.

 

1.1.2 LIMIT

Souvent, cependant, nous pouvons vouloir extraire la table entière pour en avoir une vue, pour   comprendre quelles données s'y trouvent. Nous pouvons donc faire une étoile SELECT. Mais s'il y a quelque chose comme cinq millions d'enregistrements dedans et que nous pouvons vraiment vouloir en obtenir un échantillon. Donc, juste pour voir certaines des données du tableau, nous devrons peut-être limiter nos résultats. Pour ce faire, nous pouvons SELECT les colonnes que nous voulons dans la table que nous   voulons. Ensuite, après l'instruction FROM, nous allons simplement mettre une instruction qui dit limite, et vous pouvez mettre le nombre.

 

Une image contenant texte, Police, capture d’écran

Le contenu généré par l’IA peut être incorrect.

 

1.2 Créer des tableaux

 

Nous avons donc passé un peu de temps à discuter des bases des bases de données et de la façon de récupérer des données à partir de tables, mais il y a autre chose que nous pouvons faire un SQL aussi, et c'est en fait créer de nouvelles tables et stocker des données à l'intérieur. Dans cette section, vous apprendrez comment être en mesure de discuter des situations dans lesquelles il est avantageux de créer  de nouvelles tables, de créer de nouvelles tables dans une base de données existante, d'écrire des données dans une nouvelle table et de définir si les colonnes peuvent accepter des valeurs nulles ou non.

La possibilité de créer des tables et d'y stocker des données est vraiment bénéfique en tant que data scientist, car vous créez toujours des modèles et construisez des prédictions. Vous souhaiterez peut-être reprendre les prédictions que vous créez et les réécrire dans une base de données. Cela garantit que quelqu'un d'autre pourra ensuite récupérer ces prédictions et les utiliser dans un tableau de bord qu'il   crée, ou peut-être que vous souhaitez créer un tableau de bord ou le visualiser avec un autre outil qui peut être connecté et utilisé avec cette base de données. Il est également utile si vous extrayez des données du Web ou si vous les récupérez quelque part et que vous souhaitez stocker ces données dans une base de données avec le reste de vos informations. De cette façon, vous pouvez ensuite le rejoindre.

Le data scientist n'est généralement pas responsable de la gestion de toute la base de données, qui est généralement laissée au DBA ou à un type d'administrateur. Cependant, ils peuvent avoir des capacités pour écrire et créer leurs propres tables. Il est donc important d'avoir une compréhension de base de la façon dont cela fonctionne.

Pour ce faire, il existe une instruction que nous  utilisons appelée CREATE TABLE .

 

Donc, dans cet exemple, je veux créer un tableau qui concerne les différentes chaussures. Peut-être que je veux commencer à regarder des choses comme depuis combien de temps j'ai la chaussure, les différentes marques, combien je les paie, ou chercher des chaussures que j'ai qui sont similaires ou peut-être de couleurs différentes. Pour cette instruction, vous aurez besoin d'un nom de table. Ensuite, vous avez également besoin du nom et de la définition des colonnes. Et cela, vous devez également définir le type de données. Pour ce faire, nous allons écrire l'instruction CREATE TABLE .

Une image contenant texte, capture d’écran, Police

Le contenu généré par l’IA peut être incorrect.

 

Nous mettrons le nom de la table puis entre parenthèses, nous séparerons la liste des colonnes que nous allons nommer cette table. Dans cet exemple, j'ai les colonnes comme Id de chaussure, la marque, le type de chaussure, la couleur, le prix et la description.

Après avoir répertorié la colonne, je vais définir le type de données. Pour cela, je veux que ce soit un personnage avec 10. Ensuite, je définis quelques spécifications autour de cette colonne. L'ID de chaussure sera ma clé primaire dans cet exemple. Vous pouvez voir par les autres colonnes, j'ai également défini le type de données combien de caractères ou de décimales je vais autoriser à être inséré dans cette colonne.

Ensuite, je mets également si j'autorise ou non les valeurs nulles. Si je ne spécifie pas, cela suppose que les valeurs nulles sont acceptées.

 

Une image contenant texte, capture d’écran, Police

Le contenu généré par l’IA peut être incorrect.

 

Dans cet exemple, il s'agit d'un exemple assez simple car la syntaxe de création de ces tables varie considérablement selon le système de gestion de base de données relationnelle que vous utilisez. Cela vous donnera la structure de base pour créer votre table. Cependant, il est important de regarder les spécifications de votre système de gestion de base de données relationnelle que vous utilisez, afin que vous puissiez obtenir la syntaxe correcte pour cela.

Une chose importante à noter lors de la création de ces tables est de définir si une colonne peut contenir une valeur nulle ou est une clé primaire. Chaque colonne que vous avez dans une table peut accepter des valeurs nulles ou non, et vous devez définir cette capacité. Comme le montre cet exemple, j'ai créé une   table avec plusieurs colonnes, dont certaines ne peuvent pas accepter les valeurs nulles. Ce ne sont pas des lignes nulles. Et la seule colonne qui peut accepter une valeur nulle, la seule ligne qui contient null. Il est important de ne pas confondre les valeurs nulles avec des chaînes vides. Les valeurs nulles sont vraiment l'absence de tout, alors que les chaînes vides, il y a en fait une valeur là-bas. Ce pourrait être des espaces ou quelque chose comme ça.

Une autre chose dont il est important de se souvenir est que tout ce que vous définissez comme clé primaire ne peut pas accepter de valeurs nulles. Ainsi, la ligne répertoriée ici en tant que clé primaire ne pourrait pas accepter des valeurs nulles pour cet exemple. Comme défini précédemment dans l'exemple, j'ai dit que l'ID de chaussure était une clé primaire. Par conséquent, cela ne peut jamais avoir une valeur vide ou aucune valeur.

L'autre chose qu'il est important de retenir est que si vous indiquez qu'une colonne ne peut pas être nulle, vous obtiendrez une erreur si vous n'entrez pas de valeur dans cette colonne lorsque vous y insérez des données. Ceci est juste une vérification pour vous assurer que dans les colonnes que vous avez déterminées comme non nulles, les valeurs seront toujours présentes. Sinon, vous obtiendrez une erreur renvoyée.

 

1.2.1 INSERT INTO

 

Afin d'obtenir les données dans la table après avoir défini la table, les colonnes et les types de données que vous souhaitez y ajouter, il existe en réalité deux façons de procéder.

 

Une image contenant texte, capture d’écran

Le contenu généré par l’IA peut être incorrect.Vous pouvez dire INSERT INTO Shoes, donc je dis, je veux mettre ces données dans le tableau des chaussures. Je veux mettre les valeurs et après ça. Donc, dans ce cas, j'ai mis les valeurs entre parenthèses simples. Je les ai énumérés dans l'ordre. Maintenant, cela fonctionne bien, mais je ne recommanderais pas d'utiliser ce premier exemple. Comment ce premier exemple va fonctionner, c'est qu'il va prendre la première valeur indiquée et la mettre dans la première colonne. La deuxième valeur ira dans la deuxième colonne, et la troisième valeur dans la troisième colonne, et ainsi de suite. Et cela les mettra en ordre. Comme je l'ai déjà dit, cela fonctionne, mais ce n'est pas recommandé. Vous n'avez aucune garantie de savoir quelles données vont dans quelle colonne.

 

Une image contenant texte, capture d’écran

Le contenu généré par l’IA peut être incorrect.

Une image contenant texte, capture d’écran

Le contenu généré par l’IA peut être incorrect.

 

Il vaut donc mieux être un peu plus précis à ce sujet. Pour cela, vous souhaitez utiliser la même instruction

INSERT INTO Shoes. Avant de mettre les valeurs, je vais lister les colonnes dans lesquelles je veux l'insérer. Ici, je la liste dans le même ordre, ID de chaussure, marque, type, couleur, prix et description. Cependant, cette fois après cela, j'indique également les valeurs que je veux aller dans le même ordre. Cela peut être très utile si vous souhaitez insérer seulement quelques valeurs dans une colonne. Donc, pour cet exemple, je pourrais supprimer les trois premiers, afin de pouvoir supprimer le type, la marque et l'ID. Je voudrais simplement les supprimer en les rayant. Ensuite, il supprime également les trois premières valeurs ici. Maintenant, je suis assuré que les valeurs Black, 695.00 et NULL iront dans Color, Price et Description.

Je recommanderai d'utiliser cette méthode. C'est un peu plus sûr car vous avez plus de contrôle.

 

1.2.2 CREATE TEMPORARY TABLE

 

Tout d'abord, la chose la plus importante à savoir à propos de ces tables temporaires est qu'elles seront supprimées lorsque la session cliente en cours sera terminée. C'est pourquoi on les appelle des tables temporaires. Cependant, ils sont vraiment bons à utiliser car ils sont beaucoup plus rapides que la création d'une vraie table. Donc, si vous avez des requêtes complexes et que vous souhaitez le simplifier un peu en créant un sous-ensemble, puis en vous joignant à ce sous-ensemble et en pilotant un nouveau calcul à  partir de cela, les tables temporaires sont une excellente option.

Pour cela, nous utilisons l'instruction CREATE TEMPORARY TABLE . Ensuite, nous mettons le nom de la table temporaire que nous voulons créer. Ensuite, je tire comme un sous-ensemble d'une autre table.

 Une image contenant texte, capture d’écran, Police

Le contenu généré par l’IA peut être incorrect.

Dans ce cas, je tire un sous-ensemble de données de ma table Shoes . Ici, je crée juste une table temporaire qui est des sandales de type chaussure. Maintenant, je crée une table individuelle qui va juste avoir les chaussures qui sont des sandales. Comme mentionné précédemment, la façon dont vous créez des tables, les mettez à jour et les insérez dépend fortement du système de gestion de base de données relationnelle que vous utilisez.

 

1.3 Ajout de commentaires à SQL

Il suffit d'ajouter quelques commentaires utiles ici et là pour vous permettre de comprendre beaucoup plus facilement ce que vous faisiez et pourquoi vous le faisiez. Mais vous pouvez également utiliser les commentaires pour désactiver l'expression de certains codes, souvent appelés commentaires de code. Cette technique vous aide à résoudre un peu mieux certains des problèmes que vous rencontrez avec votre requête. Vous pouvez supprimer efficacement certaines parties de votre requête sans vous débarrasser des instructions elles-mêmes. Ensuite, ramenez-les un par un pour voir où votre requête tourne mal.

Il y a donc deux façons d'ajouter des commentaires.

 

L'un consiste à ajouter des commentaires sur une seule ligne et l'autre à ajouter une section de commentaires. Dans ce cas, je sélectionne shoe_id, brand_id, my shoe_name dans shoes. Et je veux juste commenter le brand_id. Je n'en ai pas besoin ici. Je vais donc ajouter deux tirets, et cela va simplement supprimer toute cette ligne. Quand j'exécute ce bloc de code, c'est ce qui va se passer, c'est que je vais juste obtenir le retour pour le shoe_id et le shoe_name.

 

Une image contenant texte, capture d’écran

Le contenu généré par l’IA peut être incorrect.

 

Et l'exemple suivant que j'ai fait est de commenter une section du code. Comme vous pouvez le voir, pour  ce faire, j'ai utilisé une combinaison d'une barre oblique inverse et d'un astérisque. Ce que cela signifie effectivement, c'est de ne rien exécuter entre les deux barres obliques inverses et l'astérisque. Vous pouvez l'utiliser pour une grande partie des requêtes. Et cela devient vraiment utile lorsque vous souhaitez simplement affiner la ligne individuelle que vous souhaitez exécuter.

 

Une image contenant texte, capture d’écran, Police

Le contenu généré par l’IA peut être incorrect.

 

Il est donc important de comprendre comment l'ajout de commentaires de la bonne manière peut vous aider à comprendre votre code. Mais parfois, les commentaires peuvent être exagérés et peuvent certainement vous dérouter. Je pense qu'il est bon de réaliser que garder votre code organisé, le garder dans un format vraiment standard va simplement le rendre beaucoup plus facile à lire. Et puis ajoutez des commentaires là où il ne suit pas le flux ou la syntaxe normale, ou juste de petits points que vous voudrez peut-être lire ou noter pour plus tard.

Maintenant, un dernier point qui ne fait pas vraiment partie de la discussion sur les commentaires, mais quelque chose que vous pouvez trouver utile en général est l'utilisation d'un code source ou d'un éditeur   de texte. Souvent, le système de gestion de base de données relationnelle que vous utilisez aura un endroit pour saisir vos requêtes. Mais parfois, il est vraiment utile de les écrire à l'extérieur dans un éditeur de code source afin de pouvoir les modifier et les enregistrer. Celui que j'utilise tout le temps et que je recommande toujours est VisualStudio Code. Cela pourrait être quelque chose que vous souhaitez télécharger et utiliser pour commencer à écrire vos requêtes. Cela peut également aider beaucoup avec la mise en évidence automatique des couleurs de vos différentes déclarations, et peut vous aider avec une partie de l'indentation pour vous assurer que vous écrivez votre code et qu'il est beau et propre.

 

1.4 Bases du filtrage avec SQL

 

Nous avons donc tout appris sur les bases de l'acquisition de données à partir d'une table à l'aide des commandes SELECTet FROM . Mais ce n'est qu'une partie de l'histoire, car la plupart des bases de données contiennent des milliers, voire des millions d'enregistrements. Souvent, nous ne voulons pas examiner toutes ces données. Dans cette section, nous allons passer en revue le filtrage avec SQL. Le filtrage est extrêmement important car il nous permet de restreindre les données que nous voulons récupérer. Le filtrage est également utilisé lorsque vous effectuez une analyse pour obtenir des informations très précises sur les données que vous souhaitez analyser dans le cadre de votre modèle. Après avoir regardé cette vidéo, vous devriez être en mesure de décrire les bases du filtrage de vos données, d'utiliser la clause WHERE avec des opérateurs communs, d'utiliser la clause BETWEEN et d'expliquer le concept d'une valeur nulle.

 

Il est important de comprendre le filtrage SQL, car nous avons plusieurs options pour filtrer nos données et obtenir des informations spécifiques. Mais il y a d'énormes avantages lorsque nous le faisons directement avec SQL au lieu de compter sur l'application cliente pour le faire.

Tout d'abord, lorsque nous filtrons nos données, cela réduira souvent le nombre d'enregistrements que nous récupérons. Au lieu de simplement saisir une table entière et d'en extraire chaque colonne et ligne, nous pouvons être très précis sur les données que nous voulons obtenir à partir de cette table. Et par la suite, cela réduit la quantité de données que nous extrayons du système. Lire la vidéo à partir de 1 minute 31 secondes et suivre la transcription.

 

La réduction de la quantité de données que vous analysez accélérera bien sûr les performances des requêtes, ce qui, à son tour, accélérera notre traitement global.

Cela aide également lorsque nous ajoutons le filtrage au niveau de la base de données, car cela réduit la pression du côté client de l'application, ce qui lui permettra également de mieux fonctionner. Avant de commencer à extraire une table entière dans un programme comme le nôtre pour commencer à analyser, filtrez ces données avant même de les extraire. Cela signifie que vous n'aurez pas autant de données à traiter lorsque vous les analysez.

Pour ce faire, nous utilisons ce qu'on appelle la clause WHERE . Et la clause WHERE vient après l'utilisation de notre SELECT et FROM .

 

Vous devez sélectionner vos colonnes, puis choisir la table à partir de laquelle vous voulez les colonnes. Et puis vous ajoutez où avec votre valeur d'opérateur de nom de colonne.

Vous pouvez utiliser plusieurs opérateurs différents. Vous pouvez utiliser des valeurs égales, non égales, supérieures, inférieures, supérieures ou égales à, inférieures ou égales à, entre et est nul.

 

Exemple 4.4 - 1 Tofu

 

 

 

Une image contenant texte, capture d’écran, ligne, Police

Le contenu généré par l’IA peut être incorrect.

 
 


 

Une image contenant texte, capture d’écran, Police

Le contenu généré par l’IA peut être incorrect.

 

Dans le premier exemple, nous allons filtrer uniquement sur une seule condition. Pour cela, encore une fois, nous avons sélectionné notre ProductName, notre UnitPrice, nos SupplierIDs. Mais nous voulons simplement regarder les fournisseurs et le prix unitaire du produit nommé tofu. Donc, après le FROM , nous allons ajouter où le nom du produit est égal, puis nous entrons ce que nous voulons qu'il soit égal.

Dans ce cas, le tofu est une variable chaîne. Nous allons donc mettre la chaîne entre guillemets individuels. Comme vous pouvez le voir, le résultat est une seule ligne où le nom du produit est tofu. Et puis nous    avons également le prix unitaire et l'identifiant du fournisseur. Pour cela, dans cet exemple, si nous avions plusieurs enregistrements nommés tofu, nous verrions plus de lignes.

 

Exemple 4.4 - 2 Tofu Price > 75?

 

 

 

Une autre façon de procéder consiste à filtrer sur une seule valeur. Dans le dernier exemple, nous avions  une chaîne. Donc une seule condition. Mais peut-être voulons-nous regarder des produits dont les prix sont supérieurs ou égaux à 75. Donc, sur cet exemple, nous prendrons les colonnes qui nous intéressent et nous obtiendrons les données des tables de produits. Mais cette fois, nous allons regarder les enregistrements   où le prix unitaire est supérieur ou égal à 75. Comme vous pouvez le voir maintenant, nous récupérons plusieurs enregistrements. Mais si vous regardez le prix unitaire, tous les enregistrements pour ce prix unitaire sont supérieurs ou supérieurs à une valeur de 75.

 

Une image contenant texte, capture d’écran, Police, ligne

Le contenu généré par l’IA peut être incorrect. 

Une image contenant texte, capture d’écran, Police

Le contenu généré par l’IA peut être incorrect.

 

 

Une autre façon de filtrer est de rechercher les non-correspondances. Peut-être que vous n'avez pas juste une liste d'un produit que vous voulez rechercher, comme le tofu, peut-être avez-vous tout un tas de produits. Mais vous savez que vous ne voulez pas un seul produit en particulier, ou quelques produits. Ce serait facile de simplement dire: donnez-moi tout sauf le blanc.

 Une image contenant texte, capture d’écran, Police, nombre

Le contenu généré par l’IA peut être incorrect.

Une image contenant texte, Police, capture d’écran

Le contenu généré par l’IA peut être incorrect.

 

Encore une fois, nous allons examiner les produits et leurs prix de différents fournisseurs. Mais pour cette requête, nous ne voulons pas inclure un nom de produit spécifique, Alice Mutton. Donc, fondamentalement, nous voulons extraire tous les enregistrements sauf cela. Nous ajouterons notre opérateur, dans ce cas, pas égal. Et puis, comme il s'agit d'une valeur de chaîne, nous ajouterons ces guillemets simples autour de la chaîne que nous voulons filtrer.

 

Une image contenant texte, capture d’écran, Police

Le contenu généré par l’IA peut être incorrect.

 

Une image contenant texte, capture d’écran, nombre, Police

Le contenu généré par l’IA peut être incorrect. 

C'est toujours le même format, mais de cette façon nous pouvons filtrer où les unités et le stock sont entre 15 et 80. Et donc ça roule vraiment de la façon dont vous l'écrivez parce que vous allez mettre la colonne dans laquelle vous êtes intéressé par les unités et le stock, puis entre les deux numéros que vous recherchez. Donc, pour ce faire, je veux juste mettre entre 15, et je veux m'assurer d'inclure et avant la condition suivante.

 

Une image contenant texte, carte de visite, capture d’écran

Le contenu généré par l’IA peut être incorrect.

Un autre exemple que nous allons parcourir est le filtrage de la valeur nulle. Dans cet exemple, nous   filtrons pour quelque chose qui est nul. Il est vraiment important, encore une fois, de se souvenir de la différence entre les nuls et les zéros. Un nul est très différent d'un prix nul. Un null signifie qu'il n'y a en fait aucune donnée dans cette colonne. Si vous voulez regarder quelque chose où vous savez que le prix est 0  ou qu'il s'agit d'une chaîne vide, vous devez le saisir comme condition. Si vous voulez rechercher quelque chose où il n'y a tout simplement aucune information pour cette colonne, c'est là que vous voudriez simplement utiliser est null. C'est un excellent moyen de vérifier et de voir. La colonne représentant les noms de produits contient-elle un certain type d'informations pour chaque enregistrement?

 

1.5 Filtrage avancé: IN, OR et NOT

 

Si vous avez déjà essayé certains des opérateurs dans la dernière section, vous comprendrez qu'ils sont   très puissants et que vous pouvez faire beaucoup avec eux. Nous allons simplement les développer un peu plus tard en passant en revue les opérateurs IN, OR et NOT.

 

1.5.1 IN

 

Pour utiliser l'opérateur IN, ce que nous allons faire est de spécifier une plage de conditions. C'est similaire à BETWEEN, où vous pourriez dire que c'est entre deux variables. Vous pouvez également faire un nombre très précis de conditions et avoir des conditions supplémentaires. Pour ce faire, vous allez mettre vos valeurs entre parenthèses et vous allez avoir une liste de valeurs séparées par des virgules.

 

Une image contenant texte, capture d’écran, carte de visite, Police

Le contenu généré par l’IA peut être incorrect.

 

Une image contenant texte, capture d’écran, nombre, Police

Le contenu généré par l’IA peut être incorrect. 

Dans cet exemple, nous allons chercher des fournisseurs, mais nous voulons une liste individuelle de ceux- ci. Nous voulons uniquement les fournisseurs 9, 10 et 11.

C'est quelque chose où BETWEEN n'aurait pas été utile, car nous ne recherchons pas une plage de valeurs. Nous recherchons des valeurs spécifiques. Dans cet exemple, nous allons utiliser notre instruction SELECT, d'où nous l'obtenons, et nous ajouterons où SupplierID est IN. Et nous indiquerons les valeurs 9, 10 et 11 dans cet exemple. Vous pouvez également ajouter des valeurs de chaîne. Mais rappelez-vous simplement que ceux-ci doivent être ajoutés avec des guillemets simples pour indiquer qu'il s'agit de valeurs de chaîne.

 

1.5.2 OR

 

Un autre opérateur est l'opérateur OR. Une chose importante à savoir à ce sujet est qu'un système de gestion de base de données n'évaluera pas la deuxième condition si la première condition est remplie. Vous ne voudrez donc pas utiliser cela pour quelque chose lorsque vous souhaitez vérifier les deux valeurs.

N'oubliez pas que vous voudrez utiliser AND dans ce cas.

 

Une image contenant texte, capture d’écran, carte de visite, Police

Le contenu généré par l’IA peut être incorrect.

 

Une image contenant texte, capture d’écran, ligne, Rectangle

Le contenu généré par l’IA peut être incorrect. 

Pour cet exemple, vous utilisez ProductName. Je veux m'assurer que je suis très précis que je veux du tofu sur Konbu. Parce qu'une fois qu'il aura trouvé Tofu, il ne me donnera pas les autres noms de produits. Ceci est vraiment utile si c'est vraiment ce que vous voulez. Mais si ce n'est pas le cas, soyez vraiment précis sur l'ordre dans lequel vous placez les articles dans votre requête. Vous pensez peut-être que IN et OU peuvent accomplir la même chose, et ils le peuvent, selon la manière dont les choses sont écrites.

Si vous utilisez IN, IN vous offre beaucoup plus d'options quant au nombre d'éléments que vous pouvez lister. Avec IN, vous pouvez lister plusieurs choses. J'aurais pu énumérer dix noms de produits différents et tout rapporter. OU, ça va juste m'en donner deux. Et IN s'exécute plus rapidement que OR, c'est donc un autre avantage de l'utilisation de IN. Avec IN, vous n'avez pas à penser à l'ordre dans lequel vous placez vos différentes conditions. Et un autre avantage, et probablement le principal avantage de l'utilisation de IN,    est que nous pouvons utiliser une autre instruction select pour les sous-requêtes. C'est quelque chose que nous reviendrons dans une leçon ultérieure, mais gardez cela à l'esprit pour le moment.

 

1.5.3 AND

 

Exemple 4.5 - 3 AND

Une image contenant texte, capture d’écran, Police

Le contenu généré par l’IA peut être incorrect.

 

Une image contenant texte, capture d’écran, Police, nombre

Le contenu généré par l’IA peut être incorrect. 

 

Une image contenant texte, capture d’écran, Police

Le contenu généré par l’IA peut être incorrect.

 

Une image contenant texte, capture d’écran, Police, nombre

Le contenu généré par l’IA peut être incorrect. 

Dans cet exemple, je recherche des produits pour lesquels j'ai un groupe spécifique de fournisseurs. Mais j'ai aussi un prix unitaire spécifique que je veux qu'il soit également supérieur. Je pourrais l'écrire comme je l'ai fait dans le premier exemple. J'ai ma déclaration SELECT, et j'ai d'où elle vient. Et j'ai où SupplierID est égal à 9 ou égal à 11, et j'ajoute également que le prix unitaire est supérieur à 15.

Ce que vous remarquerez cependant, c'est que j'obtiens des prix unitaires qui ne sont pas supérieurs à 15. Ainsi, l'une des choses à comprendre pour expliquer pourquoi cela se produit est que SQL traite le OR avant le AND . Et donc, l'un des moyens de limiter cela est d'utiliser des parenthèses.

Dans l'exemple Type02, vous pouvez voir que j'ai la même déclaration et requête exactes. Sauf que j'ai placé des parenthèses autour de SupplierID, puis que j'ai AND UnitPrice. Maintenant, vous pouvez voir que j'obtiens toutes les valeurs que je veux. Tous mes UnitPrices sont supérieurs à 15, et mes SupplierID ne   sont que ceux de 9 et 11.

Une chose importante à comprendre ici est juste l'ordre des opérations lors de l'utilisation des opérateurs AND et OR. Vous n'êtes pas obligé d'utiliser une parenthèse, mais c'est toujours très bien de prendre l'habitude de le faire.

 

1.5.4 NOT

 

C'est juste un moyen d'exclure différentes options. Encore une fois, c'est un excellent moyen lorsque vous voulez à peu près tout, mais il y a peut-être juste quelques variables que vous ne voulez pas.

 

Une image contenant texte, capture d’écran, carte de visite, Police

Le contenu généré par l’IA peut être incorrect.

 

Une image contenant texte, capture d’écran, ligne, Police

Le contenu généré par l’IA peut être incorrect. 

Donc, dans cet exemple, je recherche des employés différents, mais je ne veux aucun des employés qui sont de Londres ou de Seattle. Donc, pour ce faire, je vais simplement mettre, où NOT City équivaut à Londres, puis NOT City équivaut à Seattle. Encore une fois, en utilisant des guillemets simples pour désigner les chaînes London et Seattle. Et comme vous pouvez le voir dans nos résultats, il a tout renvoyé sauf pour les deux villes que j'avais spécifié de ne pas inclure.  

1.6 Tri avec ORDER BY

 

Pour trier les données avec SQL, nous utilisons la clause ORDER BY .

 

Le tri des données d'une manière particulière peut être très utile lors de la visualisation des données, sinon nos données pourraient être renvoyées d'une manière qui les rendrait un peu plus difficiles à interpréter. Les données des tableaux ne sont généralement pas ordonnées de manière cohérente car les données peuvent être mises à jour, supprimées ou modifiées à tout moment. Souvent, vous ne pouvez vraiment pas compter sur les données renvoyées dans un ordre logique. Donc, si vous voulez vraiment regarder vos données dans un ordre particulier, il est toujours bon d'être précis sur l'ordre dans lequel vous voulez qu'elles soient. L'autre chose est que, souvent lorsque vous regardez des données, vous vous ne pourrez   pas consulter tous les enregistrements. L'autre  chose est que, souvent, lorsque vous examinez des  données, vous ne pourrez pas consulter tous les enregistrements. Le tri de vos données de manière logique peut vous aider à consulter facilement les informations que vous souhaitez en plus. Il est vraiment utile d'être toujours précis sur les données que vous récupérez, mais aussi sur la façon dont vous voulez le faire.

ORDER BY nous permet de trier les données par colonnes particulières. Maintenant, il existe quelques règles lors de l'utilisation de ORDER BY. La première est qu'elle peut prendre plusieurs noms de colonnes. Vous pouvez classer par une colonne ou par toutes les colonnes, et donc cela se passe de la manière que vous voulez qu'il les ajoute. Si vous faites plusieurs colonnes, vous voulez simplement vous assurer d'ajouter une virgule après cela. L'autre chose est que vous pouvez en fait trier par une colonne que vous n'avez pas récupérée. Il se peut donc que ce ne soit pas dans votre instruction select, mais vous pouvez toujours utiliser la colonne pour trier vos données, ce qui est vraiment utile. La dernière règle est que ORDER BY doit toujours être la dernière clause de l'instruction select.

Ici, à la fin de ma requête, j'ai un ordre par colonnes deux et trois dans le tableau, ou vous pouvez même simplement le trier par les noms réels de la colonne.

 

 

Une image contenant texte, capture d’écran, nombre, Police

Le contenu généré par l’IA peut être incorrect. 

1.7 Opérations mathématiques

Dans cette section, nous allons utiliser des calculs mathématiques de base avec nos données. Avec les calculs mathématiques, nous entrons maintenant dans certaines techniques que nous pouvons utiliser dans l'analyse, mais aussi être en mesure de les utiliser dans SQL et de les pousser vers la base de  données. Comme nous en avons parlé dans de nombreux cas, plus nous pouvons pousser vers la base de données et avoir la puissance de traitement de la base de données, mieux c'est. Encore une fois, nous travaillons généralement avec de plus grandes quantités de données, nous voulons donc vraiment réduire cette pression sur l'application cliente. Plus nous pouvons le faire près de la source, mieux nous serons à long terme. Nous allons donc commencer par quelques simples. Nous avons l'addition, la soustraction, la multiplication et la division. Comme vous pouvez le voir sur le côté gauche, nous avons vos opérateurs standard pour cela.

 

 

Exemple 4.7 - 1

 

Dans cet exemple, ce que je veux faire, c'est que je veux obtenir les unités totales dans l'ordre. Et je veux avoir, que fois par le prix des unités pour obtenir le coût total de la commande.

Ce que je vais faire, c'est que je traiterai cela comme je le ferais pour toute autre colonne que je récupère. Ici, j'ai ma sélection. J'ai les différentes colonnes qui m'intéressent. J'ai mes identifiants de produit, les unités sur la commande et le prix unitaire. Et puis, je liste comme je le ferais dans n'importe quelle colonne, mais j'ajoute mes opérateurs. Ici, j'ai mes unités et commande multiplié par le prix unitaire. Et puis, j'utilise un alias, AS , pour ce que je veux que cette nouvelle colonne soit nommée, et cela va être le coût total de la commande. Et puis je vais dire d'où je le veux. Comme vous pouvez le voir, je peux maintenant récupérer quatre colonnes différentes; l'ID produit, les unités de la commande, le prix unitaire, puis ma nouvelle colonne calculée, qui correspond au coût total de la commande. Encore une fois, j'aime ajouter ces autres filtres lorsque je calcule quelque chose pour la première fois, juste pour faire quelques vérifications ponctuelles pour m'assurer que mes calculs sont corrects. Je n'ai pas besoin d'avoir le prix unitaire et les unités sur la commande. J'aurais pu simplement sélectionner l'ID du produit, puis calculer le nouveau champ.

Et, avec n'importe quel calcul que vous faites, cela va suivre votre ordre normal des opérations. Vous vous souvenez probablement de l'ordre des opérations des cours de mathématiques que vous avez suivis dans le passé. L'idée que les choses entre parenthèses sont traitées en premier, puis les puissances sont les exposants, la multiplication, la division, l'addition et la soustraction. Une image contenant texte, capture d’écran, nombre, menu

Le contenu généré par l’IA peut être incorrect.

 

Une image contenant texte, Police, blanc, conception

Le contenu généré par l’IA peut être incorrect.

 Une image contenant texte, capture d’écran, Police

Le contenu généré par l’IA peut être incorrect.

 

1.8 Fonctions d'agrégation

 

Les fonctions d'agrégation offrent différentes façons de résumer vos données, ce qui vous aide vraiment à analyser vos données et à voir ce que vous avez.

Les fonctions d'agrégation sont utilisées pour toutes sortes de choses et elles peuvent être vraiment utiles pour trouver les valeurs les plus élevées ou les plus basses, le nombre total d'enregistrements, la valeur moyenne, etc. Sauf qu'il ne s'agit que de fonctions pré-intégrées, il est donc très facile de commencer à agréger et à résumer certaines de vos données. Souvent, dans les statistiques descriptives, nous apprenons à connaître et à comprendre nos données. Nous allons utiliser beaucoup de ces différents types de  fonctions d'agrégation. Les fonctions d'agrégation que nous pouvons utiliser sont AVG, COUNT, MIN, MAX et SUM et toutes sont assez explicites. Comme vous pouvez obtenir la moyenne des valeurs de colonne, comptez le nombre de valeurs, recherchez la valeur minimale et maximale dans une colonne, puis additionnez les valeurs totales de la colonne.

 

 

Une image contenant texte, capture d’écran, carte de visite, Police

Le contenu généré par l’IA peut être incorrect.

Dans cet exemple, pour la moyenne, nous utiliserons notre instruction select. Et puis, tout comme nous allons lister nos colonnes que nous voulons récupérer, vous allez les lister comme une colonne que vous souhaitez récupérer. Mais avant de mettre votre colonne, vous allez entrer et ajouter la fonction que vous voulez. Dans ce cas, j'ai AVG car je veux le prix unitaire moyen. Pour cette déclaration, je vais également ajouter mon alias pour renommer cette colonne car je ne vais pas simplement extraire le prix unitaire.

 

C'est maintenant la moyenne du prix unitaire, et cela provient du tableau des produits. Il convient de noter ici que les lignes contenant des valeurs nulles ou nulles seront ignorées par la fonction moyenne.

 

Une image contenant texte, capture d’écran, Police

Le contenu généré par l’IA peut être incorrect.

 

La fonction COUNT est vraiment utile lorsque nous voulons avoir une idée du contenu d'une table. Ceci est simplement utile pour comprendre le nombre d'enregistrements dans une table ou le nombre d'enregistrements contenant des informations. Si vous effectuez un COUNT avec une étoile et des crochets, vous comptez toutes les lignes d'un tableau. Et cela peut être toutes les valeurs ou aucune valeur, car cela  ne compte que n'importe quelle ligne dans une table.

Vous pouvez également compter une colonne individuelle simplement en sélectionnant le nombre, puis le nom de la colonne. Cela comptera ensuite les lignes pour cette colonne spécifique et ignorerait les valeurs nulles. Ci-dessus, nous avons deux exemples différents. Celui où nous recherchons tous les enregistrements de la table client. Et puis celui où nous comptons simplement les identifiants clients de la table des clients.

 

Exemple 4.8 - 3 MIN & MAX

Une image contenant texte, capture d’écran, Police

Le contenu généré par l’IA peut être incorrect.

 

Une autre fonction d'agrégation que nous avons est le MIN et le MAX. Encore une fois, vous commencez à comprendre vos données. Vous venez de recevoir une nouvelle table, vous voulez voir à quoi ressemblent certaines de ces données. C'est toujours formidable d'obtenir une gamme de vos données. Tirer quelque chose comme quelle est la valeur minimale, quelle est la valeur maximale, commence à vous donner une idée de ce que sont les distributions. Et il existe des valeurs aberrantes potentiellement très élevées dans ces données. Et tout cela peut être fait sur la base de données. C'est vraiment utile de le faire si possible. Pour l'utiliser correctement, nous allons mettre notre fonction entre parenthèses. Nous allons mettre la colonne sur laquelle nous voulions travailler, nous avons donc SELECT MAX (UnitPrice). Je fais toujours un alias car sinon le nom de la colonne apparaîtra comme vide.

Une autre chose à noter est que là encore les valeurs nulles seront ignorées avec les fonctions MIN et MAX. Si vous utilisez simplement cette fonction, sachez que lorsque les valeurs nulles sont ignorées et quand  elles ne le sont pas.

 

Une image contenant texte, capture d’écran, Police

Le contenu généré par l’IA peut être incorrect.

 

Enfin, nous avons la fonction d'agrégation SUM. Encore une fois, vous pouvez l'utiliser de la même manière qu'avec les autres fonctions d'agrégation. Allez-y et indiquez SOMME, la colonne que vous voulez additionner, ce que vous voulez qu'elle nomme, puis où vous voulez qu'elle soit. Pour cela, nous pouvons également les ajouter avec certaines de vos fonctions de calcul mathématique. Pour cet exemple, je veux regarder le prix unitaire en unités en stock. Je veux obtenir un total pour cela, mais je veux également ajouter tous ces éléments ensemble. J'ai maintenant le prix total de tous les produits avec le prix unitaire    et les unités en stock. Vous pouvez maintenant voir comment, avec les opérateurs mathématiques de certaines de ces fonctions d'agrégation, vous pouvez vraiment commencer à mieux comprendre vos données, et maintenant même commencer à faire des analyses et à saisir vos propres données.

 

 

Une image contenant texte, capture d’écran, Police

Le contenu généré par l’IA peut être incorrect.

 

Si le mot distinct n'est pas spécifique dans une instruction, SQL supposera toujours que vous voulez toutes les données. Par exemple, vous pouvez avoir un client qui est dans une table plusieurs fois. Si vous    comptez simplement vos identifiants client et que vous ne faites pas la distinction pour ne compter que les identifiants clients distincts, vous risquez d'obtenir des enregistrements en double. Et cela est vraiment  utile pour exécuter des requêtes où vous comptez distinctement et pour voir où il peut même y avoir des doublons potentiels dans une colonne. Il y a certaines choses à garder à l'esprit lorsque vous utilisez

DISTINCT avec notre fonction d'agrégation de count. Vous ne pouvez pas utiliser DISTINCT sur la fonction

COUNT avec l'étoile. Gardez cela à l'esprit, non seulement pour savoir quand et où vous pouvez utiliser

DISTINCT, mais aussi pour réfléchir quand vous voulez utiliser DISTINCT et quand vous ne le faites pas.

 

1.9 Regroupement de données avec SQL

 

Dans nos sections précédentes, nous avons utilisé des fonctions d'agrégation, telles que moyenne, min,  max et somme. Cependant, l'une des choses sur lesquelles nous n'avons pas terminé est de savoir sur quoi vous agrégerez ces fonctions. Dans tous les exemples que nous avons examinés précédemment, nous  avions vu comment extraire un seul champ et l'agréger sur un seul champ. Eh bien, c'est utile. Souvent,  nous examinerons le prix total de quelque chose et nous voudrons peut-être l'examiner pour les clients ou pour les produits et nous devons choisir comment nous allons regrouper cette fonction. C'est le sujet de cette vidéo. Et après cette leçon, vous pourrez effectuer des agrégations supplémentaires à l'aide des clauses GROUP BY et HAVING . Discutez de la façon dont les NULL sont ou ne sont pas affectés par les clauses GROUP BY et HAVING, et comment utiliser les clauses GROUP BY et ORDER BY ensemble pour mieux trier vos données.

 

Une image contenant texte, capture d’écran, carte de visite, Police

Le contenu généré par l’IA peut être incorrect.

 

Dans la dernière section, nous avons expliqué comment compter les identifiants clients et voir notre nombre total de clients. Mais maintenant, ce que nous allons faire, c'est ajouter cette portion de région. Si nous devions simplement avoir notre instruction de sélection avec une région sélectionnée et que notre fonction agrégée compte les ID client en tant que clients totaux de la table des clients, nous allons obtenir un retour d'erreur. Parce que nous ne sommes pas satisfaits, d'accord, comment voulez-vous que je compte les identifiants clients? C'est là que nous ajoutons ce groupe par une clause. Nous avons maintenant après cela de, nous mettons la clause GROUP BY et ce que nous voulons qu'elle regroupe.

Certaines choses importantes à noter à propos des GROUP BY sont que nous pouvons les regrouper par plusieurs colonnes. Nous pouvons avoir plus de colonnes que juste région. Par exemple, nous voulons peut être connaître la région, la ville, le pays. Nous pouvons tous les lister dans notre clause GROUP BY. Nous ajouterons simplement une virgule après chaque colonne que nous voulons lister. Une des choses à noter qui est vraiment importante est que tous les champs que vous tirez avec la fonction d'agrégation doivent être sur votre clause GROUP BY, à l'exception du calcul agrégé. Même si vous souhaitez regrouper uniquement par cette région, il faudra également le résumer par toutes les autres colonnes. Alors, assurez- vous de les énumérer dans l'ordre.

Une autre chose à noter est que vous avez des NULL dans l'une de vos catégories, comme votre région. Disons que vous avez les régions de Californie, Idaho, Texas, Nebraska. Mais vous avez également certaines des autres régions qui sont vides. Ils n'ont aucune valeur. NULL sera alors regroupé dans sa propre catégorie.

Maintenant que nous avons commencé à utiliser les fonctions d'agrégation et à les regrouper, il est également important de savoir comment le filtrage avec la clause WHERE fonctionne pour certains de ces agrégats. WHERE ne fonctionne pas pour GROUP BY, car il filtre sur les lignes. Par conséquent, nous devons utiliser la clause HAVING lors du filtrage avec une fonction d'agrégation pour les regrouper.

 

Une image contenant texte, capture d’écran

Le contenu généré par l’IA peut être incorrect.

 

Dans cet exemple, nous voulons le nombre de commandes pour les clients. Mais nous voulons seulement voir le total des commandes des clients qui ont eu plus de deux commandes. Donc, pour ce faire, nous allons sélectionner nos identifiants clients, puis nous allons compter tous les enregistrements comme des commandes.

Et puis puisque nous voulons regarder cela par chaque client individuel, nous allons le regrouper par notre identifiant client. Ensuite, pour être sûr de ne sélectionner que les clients qui ont eu des commandes supérieures ou égales à 2, nous placerons notre clause HAVING de HAVING COUNT supérieur ou égal à 2.

Encore une fois, rappelez-vous simplement que les filtres WHERE avant le les données sont regroupées puis HAVING des filtres une fois les données groupées. Les lignes seront éliminées par la clause WHERE et celles- ci seront incluses dans la clause GROUP BY. C'est juste important de savoir quand vous devriez utiliser WHERE par rapport à HAVING.

Une autre chose à noter lorsque vous travaillez avec des GROUP BYs est qu'il est toujours recommandé d'utiliser la clause order by. Le GROUP BY ne trie en aucun cas les données. Il ne fait que les regrouper.  Dans nos exemples précédents, nous avons une liste d'états, une liste de régions. Il ne va pas trier ces régions par ordre alphabétique. Il va simplement les regrouper par différentes régions. Je recommande toujours d'utiliser une commande par dans ce genre de situation. Cela facilite simplement la lecture de vos données.