Découvrir PostgreSQL

Découvrir les rangées

Testez gratuitement nos 1302 formations

pendant 10 jours !

Tester maintenant Afficher tous les abonnements
Vous allez voir que le type range permet d'exprimer des rangées de nombres ou de dates. Voyez-en son utilité.
06:34

Transcription

Je vais reprendre mon exemple de mes sessions avec le " sessionid ", la date du début, la durée, pour vous parler d'un type de donnée qui est relativement récent, d'ailleurs qui est un type complexe comme les tableaux et qui s'appelle la rangée et qui est un type absolument génial comme ce quand vient de voir finalement depuis le début dans PostgreSQL. Alors rangée pourquoi, parce qu'on va pouvoir exprimer donc une rangée de valeur, et ça va nous permettre d'exprimer de façon très puissante des problématiques d'inclusion ou d'exclusion d'une rangée. Et de faire des calculs assez complexes qui était auparavant plutôt difficile à faire. Alors qu'est-ce que c'est que cette notion de rangée ? On a la possibilité d'exprimer comme un type complexe une rangée de plusieurs types de données. On peut faire des rangées d'entier, on peut faire des rangées de date principalement. On a des entiers " integer ", ou " begin to numeric " et on a des dates de type " timestamp " " avec ou sans time zone " et de type " date ". Pour cela on peut exprimer nos rangées à l'intérieur d'une chaine ou avec des fonctions de transtypage qui vont traduire à partir des paramètres qui lui sont envoyés ou extraire si vous voulez une rangée et nous retourner une rangée. Alors je vais prendre, puisque j'ai ici une date de début et une durée, un exemple de rangée de date et je vais dire je veux savoir quelle est la rangée entre une date de début et une date de fin. Pour cela je vais prendre plutôt des dates donc je vais utiliser la fonction " daterange ". Je vais lui envoyer en premier paramètre et bien le début de la rangée, " la datedebut ". En deuxième paramètre la fin de la rangée, " datedebut + duree ". Aussi simple que ça. On voit déjà ce que ça donne. Vous voyez que le résultat qui apparait ici est exprimé d'une façon particulière et c'est un type de donnée " daterange ". Alors exprimé de façon particulière parce qu'on a ici le début de la rangée et on a ici la fin de la rangée. Ça va du " 27 septembre au 02 octobre ". Vous voyez aussi qu'il y a une expression particulière ici. On n'a pas la même chose au début et à la fin en terme de signe parce que il y a une subtilité qui fait que on a un crochet ou une parenthèse ouvrante ou un crochet et une parenthèse fermante. Et ça exprime l'inclusion de la valeur la plus petite ou de la valeur la plus grande. Spécifiquement quand on va vouloir faire des calculs d'inclusion ou de chevauchement. Alors le crochet veut dire que la valeur est incluse et la parenthèse veut dire que la valeur n'est pas incluse. On va y revenir dans trois secondes ne vous inquiétez pas mais déjà c'est pour vous expliquer cet affichage. Alors je peux déjà avec ça manipuler ma rangée à l'aide de fonction adaptée et d'operateur, on va voir ça. Par exemple de cette rangée quelle est la plus petite valeur ? Je vais utiliser la fonction " lower " qui a été adapté pour la rangée. " Lower " c'est en minuscule mais là si je l'applique a une rangée c'est la plus petite valeur. Donc le " lower " de cette rangée, il faut que j'enlève ma virgule ici, c'est bien le " 27 septembre ". Le " upper " de cette rangée ça va être. Alors je vous parlais d'inclusion ou d'exclusion, il n'y pas vraiment d'implication dans ces deux fonctions. Alors ici ce que ça veut dire c'est que j'ai une rangée du " 27 septembre au 02 octobre " avec le " 27 septembre " inclus mais le " 02 octobre " non-inclus. Et ici je vois bien le " 02 octobre " en terme de " upper " mais simplement ça va avoir un impact, on va le voir, sur seulement les calculs de chevauchement et d'intersection si vous voulez. Et bien on va faire ça d'ailleurs. Je voudrais savoir maintenant par rapport à cette rangée s'il y a un chevauchement et donc je vais utiliser un operateur spécifique, qui est le " && " qui est un opérateur de chevauchement qui va retourner vous vous souvenez d'OVERLAPS pour les dates. Ici l'opérateur d'overlapping pour les rangées c'est le " && ". Et donc je vais tester deux rangées. Je vais dire est-ce que entre cette rangée ici par exemple ça et une rangée que je vais créer au passage. [clic] Je vais dire par exemple [clic] une rangée qui va du " '2011-02-12' " au " '2011-02-13' " [clic] et bien est-ce qu'il y a un chevauchement ? Et c'est ce qui va se produire. Et assez normalement on devra avoir un chevauchement sur la troisième ligne ici. Et bien on va voir. Effectivement aucun chevauchement puisqu'on a des " f " qui veut dire False mais un chevauchement ici entre cette rangée et celle-ci. Cette rangée étant exprimée donc par défaut en disant du " 12 février " inclus au " 13 février " non-inclus, puisque par défaut on a ce comportement. Alors c'est un comportement qu'on peut changer d'ailleurs parce qu'à la fonction " daterange, numrange, int4range " etc. qui va nous créer des rangées, je peux ajouter un troisième paramètre qui va décrire comment les " boundaries ", comment les limites des rangées vont se comporter. Et je peux forcer finalement les deux inclusions. Donc vous vous souvenez crochet ça veut dire inclus et parenthèse ça veut dire non-inclus. Et je vais mettre ici du " 12 au 12 " inclus. Et j'ai le même résultat parce que si je ne l'avais pas mis, j'aurais une rangée particulièrement vide. Voilà on aura un False parce que on prendrait du " 12 au 12 " non-inclus donc ça veut dire qu'on inclut rien du tout. On va voir ça d'ailleurs ce que ça veut dire que le vide ou pas vide.

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
Votre/vos formateur(s) :
Date de parution :31 mars 2016
Durée :2h46 (30 vidéos)

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 !