Découvrir PostgreSQL

Utiliser les expressions rationnelles

Testez gratuitement nos 1252 formations

pendant 10 jours !

Tester maintenant Afficher tous les abonnements
Dans cette vidéo, vous allez vous intéresser au support des expressions rationnelles. Découvrez cette richesse dans PostgreSQL.
06:33

Transcription

PostgreSQL a un excellent support des expressions rationnelles, parfois aussi appelées expressions régulières. Donc, il y a une formation au catalogue sur les expressions rationnelles, auquel je vous renvoie, pour avoir plus de détails sur la syntaxe des expressions rationnelles, et leur puissance. Je vais juste vous montrer ici comment les utiliser dans des requêtes, aussi bien dans la clause " WHERE ", que à travers des fonctions spécifiques, de remplacement et de matching. Ma requête de base extrait les" téléphones " de la table " contact ", qui sont manifestement formatés comme ça, il n'y a pas de formatage particulier. Et quand le " téléphone " " IS NOT NULL, " donc là où il y a des " téléphones ". Maintenant, je voudrais avoir une liste des " téléphones " qui commencent par " 01 " ou " 02 ". Et qui sont des " téléphones " français, dans ce format, qui ont donc dix chiffres. Je vais faire un " AND " dans ma clause " WHERE ", je vais reprendre mon " téléphone ". Et je pourrais passer à l'intérieur d'une fonction, qui s'appelle " regexp_matches ". Mais je n'ai pas besoin du tout de faire ça. Je veux utiliser une expression rationnelle. Alors, si vous connaissez le langage Perl, par exemple, ou Python d'ailleurs, il a un peu cette façon de s'exprimer également, il y a un opérateur qui est le " ~ " qui apparaît souvent dans les opérateurs, qui touchent à des expressions rationnelles. Et PostgreSQL fait la même chose, je vais vous montrer. J'exprime maintenant une expression rationnelle, pour dire, je veux que ça commence par un " 0 ", on va dire ça commence par un " 0 ", voilà. Ensuite, j'ai soit un " 1 ", soit un " 2 ". Et puis, ensuite, j'ai un nombre, donc ici un digit. Combien de fois ? " 8 ". Donc, j'exprime un nombre précis ici, pour dire d'abord 0, et ensuite, un, deux, trois, quatre, cinq, six, sept, huit chiffres qui suivent. On essaye ? Pas mal, non ? Donc, l'opérateur de matching d'une expression rationnelle. Il y en a plusieurs versions. Vous avez bien entendu la négation, qui commence par un point d'exclamation. Si vous connaissez Perl, là vous êtes chez vous. Et vous voyez, avant j'ai " 1, 2, 2, 1, " après je n'ai que des " 3, 8, 9, 6. " Donc, ça fonctionne correctement. Comme, bien entendu, l'expression rationnelle s'applique à des chaînes, vous avez une version case insensitive, insensible à la casse de la recherche, qui est comme ceci. Que ce soit en négation ou en positif. Donc ceci ça veut dire, ça n'a pas de sens pour mon " téléphone ", mais ça veut dire applique cette recherche avec ce pattern d'expression rationnelle, mais en étant insensible à la casse. J'en n'ai pas besoin. Admettons maintenant que je veuille faire un peu de formatage, c'est-à-dire reprendre mon " téléphone ", formater le numéro dans le résultat de mon " SELECT ". Je vais déjà faire un " as ". Et puis, je vais même faire " Téléphone Formaté ". C'est juste pour vous montrer. On a ici des séparateurs d'identifiants, qui me permettent d'inscrire des caractères spéciaux, et des espaces dans l'alias. Comme ceci, ce n'est pas forcément une bonne idée dans tous les cas, mais, si le résultat de la requête est montré directement à l'utilisateur, vous pouvez faire ça. Ensuite, je vais utiliser une fonction spécifique, qui va faire un replace, mais basé sur une expression rationnelle. Cette fonction qui porte d'ailleurs le même nom que celle qui lui ressemble dans Oracle, " regexp_replace " va prendre en premier paramètre, une valeur sur laquelle on va travailler, Ici, la valeur du " téléphone " que j'extrais de ma colonne. Ensuite vient un pattern que je vais chercher. Là je vais dire il faut que soit un digit, sur exactement deux positions. Je vais utiliser des parenthèses pour créer des groupes. Et je vais réutiliser ces groupes dans le " replace ". Si vous connaissez un peu les expressions rationnelles, c'est très très classique. Je vais prendre une, deux, trois, quatre, cinq fois ceci. Je vais commencer à formater un peu mon " replace ", pour que soit plus lisible, premier paramètre, deuxième paramètre. Je vais faire mon " as " ici, après la parenthèse. Troisième paramètre, donc le premier, la chaîne sur laquelle je cherche. Le deuxième, qu'est-ce que je cherche. Maintenant, le troisième, par quoi je remplace. Je vais remplacer par, et là je vais faire référence à ces groupes, de la même façon qu'on le fait traditionnellement, dans tous les moteurs d'expression rationnelle, c'est-à-dire le premier groupe trouvé. J'ajoute un espace. Ce que je veux ici, c'est reformater mon numéro, en mettant des espaces tous les deux chiffres. Et donc, je vais faire " 2 ", espace, " 3 ", espace, " 4 ", espace, " 5 ". Alors, juste pour la petite histoire, vous avez potentiellement un quatrième paramètre, qui correspond aux options de l'expression rationnelle. Par exemple, je pourrais faire " g ", pour avoir une recherche globale. Ça aussi, si vous avez l'habitude des expressions rationnelles, sinon, il y a une formation au catalogue, mais là j'en n'ai pas besoin. Tout ce que je veux, c'est trouver vraiment l'intégralité de ma chaîne. D'ailleurs, je peux faire ceci pour dire il faut que ce soit au début. Le " $ " pour dire que c'est à la fin de la chaîne, et je vais remplacer tout ceci par la même chose, avec des espaces, on essaye. Voilà le " Téléphone Formaté ", " 01 16 71 66 37. " Vous voyez que ça a parfaitement réussi. C'est pour vous faire juste un aperçu de la puissance des expressions rationneles dans Postgres. Vous pouvez les utiliser avec un opérateur spécial, c'est quand même très pratique, dans la clause " WHERE ". Et puis, vous pouvez les utiliser aussi avec des fonctions spécifiques, pour faire des matches ou des " replace ".

Découvrir PostgreSQL

Comprenez le fonctionnement de PostgreSQL ainsi que son architecture. Effectuez les tâches courantes de sécurité, de création de bases de données et d'objets, etc.

2h46 (30 vidéos)
Aucun commentaire n´est disponible actuellement
 
Logiciel :
PostgreSQL PostgreSQL 9
Spécial abonnés
Date de parution :31 mars 2016

Votre formation est disponible en ligne avec option de téléchargement. Bonne nouvelle : vous ne devez pas choisir entre les deux. Dès que vous achetez une formation, vous disposez des deux options de consultation !

Le téléchargement vous permet de consulter la formation hors ligne et offre une interface plus conviviale. Si vous travaillez sur différents ordinateurs ou que vous ne voulez pas regarder la formation en une seule fois, connectez-vous sur cette page pour consulter en ligne les vidéos de la formation. Nous vous souhaitons un excellent apprentissage avec cette formation vidéo.

N'hésitez pas à nous contacter si vous avez des questions !