Blog Navicat

Exploration des Types de Données Avancés de PostgreSQL : Partie 2 8 Mars, 2024 par Robert Gravelle

Types de Plage

Les types de plage offrent une manière concise de représenter une plage de valeurs au sein d'un seul champ de base de données. Ils trouvent des applications dans divers domaines, de données temporelles aux intervalles numériques. Dans cet article de blog, nous explorerons leur utilisation (et leurs avantages !) en utilisant à la fois des instructions DML/SQL et Navicat for PostgreSQL 16.

Compréhension des Types de Plage

Dans PostgreSQL, les types de plage permettent de représenter des plages continues de valeurs. Ces plages peuvent être de différents types de données tels que numériques, date ou timestamp. Par exemple, une plage pourrait représenter une période de temps, un ensemble de températures ou une gamme de prix de produits.

Exemple Pratique : Suivi des Durées de Location

Prenons un scénario où nous voulons suivre la durée des locations dans la base de données d'échantillon dvdrental sample database. Nous pouvons utiliser des types de plage pour stocker efficacement les durées de location. Voici les instructions pour créer et peupler la nouvelle table "rentals_with_rental_period":


CREATE TABLE rentals_with_rental_period (
    rental_id SERIAL PRIMARY KEY,
    customer_id INT,
    rental_duration INT,
    rental_period DATERANGE
);

INSERT INTO rentals_with_rental_period (customer_id, rental_duration, rental_period)
VALUES
(1, 7, '[2024-02-01, 2024-02-08]'),
(2, 5, '[2024-01-15, 2024-01-20]');
    

Dans Navicat, nous pouvons créer notre table en utilisant le Concepteur de Table :

rentals_with_rental_period_in_table_designer (59K)

Après avoir créé la table, nous pouvons y ajouter des données. Assurez-vous de préfixer les valeurs de plage avec un crochet ouvrant "[" et de les terminer par une parenthèse fermante ")". Cela indique à Navicat que les valeurs appartiennent à une plage :

rentals_with_rental_period_table (24K)

Dans cet exemple, la colonne "rental_period" stocke des plages représentant les dates de début et de fin de chaque location. Nous pouvons facilement interroger les locations qui incluent une date spécifique en utilisant @> operator:

range_query (40K)

Extension des Applications : Intervalles Numériques

Les types de plage ne se limitent pas aux données temporelles. Ils peuvent également être utilisés pour représenter des intervalles numériques. Par exemple, imaginez un scénario où le prix d'un produit peut varier dans une plage spécifique en fonction de la quantité achetée. Nous pouvons utiliser des types de plage pour modéliser cela de manière efficace :


CREATE TABLE product_price (
    product_id SERIAL PRIMARY KEY,
    price_range NUMRANGE
);

INSERT INTO product_price (price_range)
VALUES
('[10.00, 20.00)'),
('[20.00, 30.00)'),
('[30.00, )');
    

Dans cet exemple, la colonne "price_range" stocke des plages représentant les prix minimum et maximum pour chaque produit. Nous pouvons interroger les produits dans une plage de prix spécifique en utilisant l'opérateur @> operator:


SELECT * FROM product_price
WHERE price_range @> 25.00;
    

Conclusion

Les types de plage dans PostgreSQL offrent un moyen puissant de représenter et d'interroger des plages continues de valeurs. Que ce soit pour traiter des données temporelles, des intervalles numériques ou d'autres valeurs continues, les types de plage offrent une solution concise et efficace. En utilisant les types de plage, les développeurs peuvent améliorer l'expressivité et la flexibilité de leurs schémas de base de données, ouvrant la voie à des applications plus sophistiquées.

Vous recherchez un outil graphique facile à utiliser pour le développement de bases de données PostgreSQL ? Navicat 16 For PostgreSQL vous offre tout ce dont vous avez besoin. Cliquez ici pour télécharger l'application entièrement fonctionnelle et profitez d'un essai gratuit de 14 jours!

Partager
Archives du blog