Filtrer les enregistrements - restrictions

Vidéo non disponible ! Réessayez plus tard
Cette vidéo fait partie de la formation
Apprendre MySQL 8.0 par la pratique
Revoir le teaser Je m'abonne
Transcription

Cette leçon fait partie de la formation
89,00€ Je commande

Formation incluse dans l'abonnement Elephorm Je m'abonne à Elephorm

DescriptionProgrammeAvis

Cette leçon fait partie de la formation
89,00€ Je commande

Formation incluse dans l'abonnement Elephorm Je m'abonne à Elephorm

Être capable de créer et exploiter une base de données MySQL au quotidien de manière autonome.

Cette formation a été conçue à destination d'un public sans connaissances préalables sur les bases de données, avec l'ambition de transmettre les notions fondamentales permettant d'entrer sereinement et efficacement dans l'univers des bases de données, et d'exploiter MySQL au quotidien de manière autonome.

Elle permet de tirer parti de logiciels de qualité conçus spécialement pour travailler avec les bases de données : MySQL Workbench et Datagrip.

Elle met l'accent sur la pratique, et comprend de nombreuses démonstrations, mises en situations, exercices corrigés et commentés.

Elle met à disposition en ressources téléchargeables 3 bases de données portant sur des thèmes variés (médicaments vétérinaires, sécurité routière, prénoms), les scripts SQL des démonstrations les plus longues, et intègre un code promotionnel vous permettant de bénéficier d'une prolongation à 4 mois de la période d'essai gratuite de Datagrip.

Voir plus
Dans cette vidéo, je vais vous montrer comment on applique une restriction sur un jeu d'enregistrement. Qu'est-ce qu'une restriction ? C'est comme un filtre. Globalement, c'est une condition que l'on veut appliquer aux enregistrements que l'on veut voir en résultat. Prenons la table lieu, ici. Elle contient pas loin de 54 000 enregistrements, comme on l'a déjà vu, mais seulement certains d'entre eux vont m'intéresser et doivent figurer dans les résultats. Par exemple, si je veux n'avoir que les lieux pour lesquels la catégorie de la route est une nationale, comment est-ce que je m'y prends ? Je vais vous montrer. On va faire, pour commencer, une projection. Ici, je vais conserver toutes les colonnes. On n'est pas obligé de conserver toutes les colonnes pour appliquer une restriction, mais ici, ce sera plus simple. On prend la table lieu, et là, on va ajouter le mot-clé, une clause, comme on dit, where, et là, DataGrip me suggère les colonnes sur lesquelles je peux appliquer des restrictions. Moi, ce qui m'intéresse, c'est la catégorie route. Ensuite, égal, et j'ai dit nationale. Alors, on voit ici tout le bénéfice d'utiliser un éditeur de SQL intelligent, c'est qu'il nous suggère des valeurs que l'on peut saisir d'après celles qui sont présentes dans la table. Ce n'est pas toujours le cas, et seuls certains éditeurs de qualité proposent ce genre de service. Autrement, vous seriez obligé de vous souvenir des valeurs, comment elles sont écrites, quelles sont-elles, pour pouvoir les utiliser, appliquer un filtre. Ici, on prend nationale, et quand j'exécute cette requête, je vois que, dans les enregistrements, j'ai déjà beaucoup moins d'enregistrements, puisque j'en ai 2664, alors qu'au départ, j'en avais pas loin de 54 000, et puis, je n'ai que des nationales comme catégorie de route. Alors, j'ai placé, entre guillemets, cette valeur, parce que c'est une chaîne de caractère, c'est comme ça qu'on doit les faire figurer quand on écrit un script SQL. On peut filtrer, bien sûr, sur d'autres types de données, par exemple, le nombre de voix. Donc, ici, c'est une valeur numérique, je peux donc à la place de catégorie de route, je peux mettre nombre de voix, par exemple, est égal à 4. Ici, je n'ai pas besoin d'indiquer des cotes, simplement parce que c'est une valeur numérique. Quand j'exécute mon script, j'ai uniquement les valeurs 4. On peut filtrer sur des valeurs de date, on peut filtrer sur d'autres types de données. Par exemple, ici, je n'ai pas de champ de type date dans ma table. On va prendre une autre table, la table accidents, qui, de mémoire, contient un champ date. Par exemple, je vais reprendre cette valeur, ici, et je vais créer une nouvelle requête. Select, all, from, accident, where, date, égal, on indique la date entre cotes, et donc là, j'ai tous les enregistrements pour lesquels la date de signalement est celle que j'ai indiquée. Alors, jusqu'ici, j'ai utilisé des égalités, mais on n'est pas obligé. On peut aussi mettre supérieur, inférieur, inférieur ou égal, supérieur, supérieur ou égal, ou différent de. Si j'utilise différent de, eh bien, j'aurai tous les enregistrements pour lesquels la date de signalement est différente de celle que j'ai indiquée. Comment fait-on si l'on souhaite, par exemple, avoir des enregistrements pour lesquels la date associée est comprise entre deux valeurs ? Eh bien, on a deux possibilités. La première est la suivante. On peut mettre between une première date, par exemple celle-là, and une deuxième date. Alors, on va rajouter un mois, et quand j'exécute mon script, je vois que j'ai des enregistrements pour lesquels la date est comprise entre ces deux bornes-là. C'est également valable sur d'autres types de données, par exemple des données de type texte, des données de type numérique. L'autre possibilité, c'est d'utiliser un opérateur logique. Par exemple, je peux dire la date est supérieure à la valeur minimale, et la date est inférieure à la date, la borne supérieure. Ça nous permet aussi d'être plus sélectif sur les conditions aux bornes. Est-ce qu'on veut inclure ou pas les extrémités ? Ici, on ne les inclut pas, mais on peut très bien les inclure. Donc là, je veux inclure les bornes, et donc ça revient à utiliser between dans ce cas. Je disais que ça marchait également sur des champs de type texte. On va faire un essai sur notre table lieu. Par exemple, je vois que dans le profil, le champ profil, j'ai des enregistrements pour lesquels la valeur est plate, l'autre pour laquelle la valeur est pente. Je peux très bien choisir de n'afficher que les enregistrements pour lesquels le profil est compris entre la lettre M et la lettre R, par exemple. Ce qui exclura bas de côte. Voyons voir. Donc, on va prendre la table lieu. Alors, on met des simples côtes. Et là, je vois que du coup, j'ai plate, pente, mais je n'ai pas bas de côte. Ça peut s'appliquer aussi sur des valeurs numériques. J'ai ici, par exemple, une vitesse maximale autorisée à l'endroit où l'accident était signalé. Donc, je peux aussi choisir de faire un filtre sur cette valeur-là, et par exemple, choisir d'en afficher que les enregistrements pour lesquels la vitesse est comprise entre 50 et 70. Et là, je vois que je n'ai que des valeurs comprises entre 50 et 70. Mais à ce moment-là, si je souhaite que dans mes résultats, j'ai trois valeurs de vitesse, par exemple, 50, 70 et 90, comment est-ce que je fais ? J'ai deux possibilités pour le faire. Soit j'utilise IN, suivi d'une énumération des valeurs que je souhaite conserver. Par exemple, là, je veux que la vitesse soit égale à soit 50, soit 70, soit 90. Et donc, je vois que dans les enregistrements, c'est bien ce que j'ai. Je pourrais aussi choisir d'utiliser un opérateur logique. Auquel cas, je ferai ça. OR OR Donc là, on demande à n'afficher que les enregistrements pour lesquels la vitesse maximale autorisée est égale à 50 ou 70 ou 90. Et j'ai exactement les mêmes résultats. Il y a un troisième opérateur logique qui peut être utile, c'est l'opérateur NOT. Supposons par exemple que je veuille tous les enregistrements sauf ceux pour lesquels la vitesse maximale autorisée à l'endroit où l'accident a été signalé est égale à 50. Alors, j'ai deux possibilités pour le faire. Soit je procède comme ça, je dis je veux une vitesse différente de 50 ou bien je mets un opérateur logique devant NOT ce qui revient exactement au même. Un autre cas qui peut être intéressant et qui est assez puissant, c'est d'utiliser LIKE. Je vous explique. Tout à l'heure, j'ai choisi de n'afficher que les enregistrements pour lesquels la valeur de profil commençait par une lettre comprise entre M et R. Je peux aussi choisir d'être un peu plus restrictif. Je m'explique. Supposons par exemple que je veuille uniquement un profil qui commence par la lettre P. Alors, je pourrais dire SELECT ALL FROM lieu WHERE PROFILE LIKE P % Qu'est-ce que ça signifie ? Ça signifie qu'on veut que le profil ressemble à ce schéma-là dans lequel la valeur commence par la lettre P et ensuite on a un nombre indéfini de caractères. Ça peut être 1, 2, 3, 10, 20. Voilà. Si je fais ça, je vois que j'aurai dedans PLAT, PENTE. Voilà. Supposons que je veuille uniquement ceux qui se terminent, uniquement les enregistrements qui se terminent par un T. Alors à ce moment-là, j'utilise ça. Je mets le % au début et le T à la fin. Et je n'ai que ceux qui se terminent par un T. Alors, on voit aussi par moment que certains enregistrements ont des valeurs manquantes. Par exemple, celui-ci. On ne connaît pas le nombre de voix. Ça peut être intéressant, des fois, d'exclure les enregistrements pour lesquels on n'a pas de valeur. Donc, ça apparaît nul. À ce moment-là, on procède de la manière suivante. Ici, on fait une restriction sur le nombre de voix et on utilise cette instruction-là IS NULL. Là, ça va nous afficher tous les enregistrements pour lesquels le nombre de voix n'a pas de valeur. Voilà. Et on voit qu'effectivement, c'est nul partout. À l'inverse, si on veut conserver les seuls enregistrements pour lesquels il y a une valeur pour le nombre de voix, alors à ce moment-là, on va choisir de rajouter IS NOT NULL et on sera certain qu'on aura des valeurs exploitables à cet endroit-là. Il faut savoir qu'on peut effectuer des restrictions sur plusieurs colonnes en même temps. Par exemple, ici, je vois que j'ai aussi une valeur manquante sur la colonne CIRCULATION pour cet enregistrement-là. Si je veux enlever de mon résultat les enregistrements pour lesquels j'ai nul aussi bien sur CIRCULATION que sur NOMBRE DE VOIX, alors à ce moment-là, je procède de la manière suivante. AND CIRCULATION IS NOT NULL Voilà. Et petit à petit, j'améliore la qualité de mon résultat. Il faut faire attention aux priorités qui s'appliquent lorsqu'on combine des restrictions et ne pas hésiter à utiliser des parenthèses pour bien isoler nos restrictions. Je m'explique. Si je mets par exemple OR SURFACE égale NORMAL, qu'est-ce qui va se passer ? Je vais avoir une première exigence qui va s'appliquer qui comporte ces deux restrictions-là et ensuite je vais avoir ça. Si par contre j'avais mis des parenthèses ici, on aurait eu dans nos résultats les lieux pour lesquels le nombre de voix n'est pas nul et pour lesquels en plus, soit la circulation n'est pas nulle, soit la surface est égale à la valeur normale. Donc c'est important de faire attention à la manière dont on positionne les parenthèses pour orienter les priorités dans lesquelles les restrictions s'appliquent.

Programme détaillé

Je commande Je m'abonne
Je commande Je m'abonne
Je commande Je m'abonne
Je commande Je m'abonne
Je commande Je m'abonne
Je commande Je m'abonne
Je commande Je m'abonne
Je commande Je m'abonne
Je commande Je m'abonne
Je commande Je m'abonne
Je commande Je m'abonne
Je commande Je m'abonne
Je commande Je m'abonne
Je commande Je m'abonne
Je commande Je m'abonne
Je commande Je m'abonne
Je commande Je m'abonne
Je commande Je m'abonne
Je commande Je m'abonne
Je commande Je m'abonne
Je commande Je m'abonne
Unions 06:39
Je commande Je m'abonne
Je commande Je m'abonne
Je commande Je m'abonne
Je commande Je m'abonne
Je commande Je m'abonne
Je commande Je m'abonne
Je commande Je m'abonne
Je commande Je m'abonne
Je commande Je m'abonne
Je commande Je m'abonne
Je commande Je m'abonne
Je commande Je m'abonne
Je commande Je m'abonne
Je commande Je m'abonne
Je commande Je m'abonne
Je commande Je m'abonne
Je commande Je m'abonne
Je commande Je m'abonne
Je commande Je m'abonne
Je commande Je m'abonne
Je commande Je m'abonne
Je commande Je m'abonne
Je commande Je m'abonne
Je commande Je m'abonne
Je commande Je m'abonne
Je commande Je m'abonne
Nos dernières formations Code & Data
  • Nouveau
    Maîtriser FlutterFlow - De l'Idée à l'Application
    Découvrir
    Cette formation en FlutterFlow est l'outil idéal pour tout développeur souhaitant créer des applications mobiles robustes et interactives sans coder de manière complexe. Grâce à des modules complets et structurés, vous apprendrez à utiliser FlutterFlow et Firebase, à sécuriser vos données, à concevoir des interfaces utilisateur élégantes et à intégrer des API telles qu'OpenIA. Rejoignez-nous pour transformer vos idées en applications innovantes et performantes.
    4h08 57 leçons
  • Nouveau
    Webflow - Créer la landing Page d'OpenAI
    Découvrir
    À l'issue de cette formation, les participants seront capables de créer de manière autonome une landing page sophistiquée, similaire à celle d'OpenAI, en utilisant les fonctionnalités avancées de Webflow pour le design responsive et les interactions.
    3h48 19 leçons
  • Apprendre Svelte 3 et SvelteKit 1.0
    Découvrir
    Créez des applications web modernes et ultra-rapides avec notre formation "Apprendre Svelte 3 et SvelteKit 1.0". Rejoignez-nous et devenez un expert du développement JavaScript ! 🚀 #Svelte #SvelteKit #DéveloppementWeb
    7h42 77 leçons
  • Apprendre Vue JS 3
    Découvrir
    Apprenez à créer des applications web modernes avec notre formation "Apprendre Vue JS 3". Rejoignez-nous et maîtrisez ce puissant framework JavaScript ! 🚀 #VueJS #FormationWeb #Développement
    11h47 91 leçons
  • Gratuit
    Apprendre ChatGPT
    Découvrir
    Ce cours vise à fournir une compréhension approfondie de l'intelligence artificielle, en se concentrant sur l'utilisation pratique de ChatGPT et DALL-E. Les participants découvriront comment l'IA peut transformer des domaines variés tels que le marketing, le développement web, et le design graphique. Le contenu couvre les bases de l'IA, l'art de créer des prompts efficaces, l'utilisation de plugins avancés, et le codage assisté par IA. Des projets pratiques permettront d'appliquer ces connaissances dans des scénarios réels. Destiné aux professionnels de la technologie, aux marketeurs, aux développeurs, et à toute personne intéressée par l'IA, ce cours est une opportunité d'acquérir des compétences innovantes et applicables dans divers contextes professionnels et créatifs. Les prérequis incluent une compréhension basique de l'informatique et un intérêt pour l'IA. Le cours promet une aventure d'apprentissage enrichissante, ouvrant de nouvelles perspectives dans l'utilisation de l'intelligence artificielle.
    3h12 30 leçons

éditeur de vidéos pédagogiques

Des supports pédagogiques en vidéo, produits avec les meilleurs experts. Dans nos studios à Paris, Lyon ou Montpellier. Vous souhaitez travailler avec nous ?
image-micro