Tableaux et Énumérations
PostgreSQL, réputé pour son extensibilité et sa polyvalence, propose plusieurs types de données au-delà des entiers et des chaînes de caractères conventionnels. Parmi ceux-ci se trouvent les tableaux (arrays) et les énumérations (enums), qui offrent aux développeurs des capacités avancées de modélisation des données. Dans cet article de blog, nous explorerons ces types de données sophistiqués, en démontrant leur utilisation et leurs avantages à l'aide de la base de données d'échantillon dvdrental sample database.
Le Type Array
Les tableaux (arrays) dans PostgreSQL permettent le stockage de plusieurs valeurs dans un seul champ de base de données. Cette capacité s'avère précieuse dans les scénarios où il est essentiel de manipuler des listes ou des ensembles de données. Prenons un exemple pratique. Supposons que nous voulions stocker des films avec les acteurs qui ont joué dans chaque film. Nous pouvons utiliser le type de données array pour y parvenir efficacement. Voici d'abord les instructions pour créer et peupler la nouvelle table "films_with_actors":
CREATE TABLE films_with_actors (
film_id SERIAL PRIMARY KEY,
title VARCHAR(255),
actors TEXT[]
);
INSERT INTO films_with_actors (title, actors) VALUES
('Inception', ARRAY['Leonardo DiCaprio', 'Joseph Gordon-Levitt']),
('The Shawshank Redemption', ARRAY['Tim Robbins', 'Morgan Freeman']);
Dans Navicat, nous pouvons créer notre table en utilisant le Concepteur de Table:
Notez que si nous ajoutons des crochets carrés "[]" au type de texte, Navicat le reconnaîtra comme un type de tableau et ajoutera un "1" au champ Dimension lors de l'enregistrement de la table, indiquant qu'il s'agit d'un tableau unidimensionnel.
Après avoir créé la table, nous pourrons y ajouter des données. Assurez-vous d'encadrer les valeurs de tableau dans des accolades "{}" pour indiquer à Navicat quelles valeurs inclure dans chaque tableau :
Dans les requêtes, nous pouvons faire référence à un élément spécifique du tableau en ajoutant l'index souhaité entre crochets carrés. Ainsi, "actors[1]" récupérerait la première valeur du tableau:
Le Type Enum
Abréviation de "Enumerated" (énuméré), le type Enum permet aux développeurs de définir un ensemble fixe de valeurs possibles pour une colonne. Cela améliore l'intégrité des données et la clarté au sein du schéma de la base de données. Illustrons cela en ajoutant une colonne "rating" à la table "films_with_actors". Nous pouvons définir un type énuméré pour les classifications des films à l'aide de l'instruction DDL suivante :
CREATE TYPE rating AS ENUM ('G', 'PG', 'PG-13', 'R', 'NC-17');
ALTER TABLE films_with_actors ADD COLUMN rating rating;
Dans Navicat, nous pouvons ajouter la nouvelle colonne dans le Concepteur de Table en cliquant sur le bouton "Ajouter un champ" au-dessus de la liste des colonnes. Après avoir créé le type Enum pour les classifications à l'aide de l'instruction CREATE TYPE ci-dessus, nous pouvons le choisir en sélectionnant l'élément "(Type)" dans la liste déroulante Type, puis en choisissant l'élément de classification dans la liste des types d'objets :
Maintenant, la colonne de classification de la table inclura un menu déroulant avec nos valeurs Enum définies :
Conclusion
Les types de données tableau et énumération de PostgreSQL offrent aux développeurs des outils puissants pour modéliser efficacement des structures de données complexes. En tirant parti de ces fonctionnalités avancées, les développeurs peuvent améliorer l'intégrité des données, rationaliser les requêtes et construire des schémas de base de données plus robustes. Dans le blog de la semaine prochaine, nous conclurons notre exploration des types de données avancés de PostgreSQL avec un examen du type Range. Offrant une manière concise de représenter une plage de valeurs dans un seul champ de base de données, le type Range est extrêmement utile dans divers domaines, des données temporelles aux intervalles numériques.
Vous cherchez un outil graphique facile à utiliser pour le développement de bases de données PostgreSQL ? Navicat 16 For PostgreSQL est là pour vous. Cliquez ici pour télécharger l'application entièrement fonctionnelle pour un essai gratuit de 14 jours !