PostgreSQL Tableau : fonctions, type, exemple
⚡ Résumé intelligent
PostgreSQL Le type Array permet de définir une colonne de table comme un tableau de n'importe quel type de données valide. Il permet de créer des colonnes de type tableau, d'insérer des valeurs avec le constructeur ARRAY ou des accolades, d'interroger et de modifier des éléments, et de rechercher avec ANY().
Qu'est-ce que le PostgreSQL Déployer?
In PostgreSQLOn peut définir une colonne comme un tableau de types de données valides. Le type de données peut être intégré, défini par l'utilisateur ou énuméré. Par ailleurs, les tableaux jouent un rôle important dans PostgreSQL.
Chaque correspondant PostgreSQL À chaque type de données correspond un type de tableau approprié. Par exemple, le type entier possède le type de tableau integer[], le type caractère possède le type de tableau character[], et ainsi de suite.
Nos Boissons PostgreSQL Arrays
Dans l'exemple suivant, nous allons créer une table nommée Employees avec la colonne contact définie sous forme de tableau de texte :
CREATE TABLE Employees ( id int PRIMARY KEY, name VARCHAR (100), contact TEXT [] );
La commande devrait s'exécuter avec succès.
Insertion PostgreSQL Valeurs du tableau
Faites-nous savoir insérer valeurs dans le tableau ci-dessus :
INSERT INTO Employees VALUES ( 1, 'Alice John', ARRAY [ '(408)-743-9045', '(408)-567-7834' ] );
L'insertion devrait s'exécuter avec succès.
Les valeurs de la troisième colonne, c'est-à-dire les coordonnées, ont été insérées sous forme de tableau. Ceci a été réalisé grâce au constructeur ARRAY. Dans cet exemple, elles sont encadrées par des crochets [ ]. Nous avons deux coordonnées pour l'employée Alice John.
Il nous est toujours possible d'utiliser des accolades {} comme indiqué ci-dessous :
INSERT INTO Employees VALUES ( 2, 'Kate Joel', '{"(408)-783-5731"}' ), ( 3, 'James Bush', '{"(408)-745-8965","(408)-567-78234"}' );
La commande devrait s'exécuter avec succès.
Les instructions ci-dessus inséreront deux lignes dans la table Employés. Lors de l'utilisation d'accolades, le tableau est placé entre guillemets simples ('), tandis que les éléments du tableau de texte sont entourés de guillemets doubles (').
Interrogation des données d'un tableau
Pour interroger les éléments d'un tableau, nous utilisons l'instruction SELECT. Pour afficher le contenu de notre table Employees, nous exécutons la commande suivante :
SELECT * FROM Employees;
Cela renvoie les éléments suivants :
Les éléments de la colonne « contact » du tableau sont encadrés par des accolades {}. Pour accéder aux éléments du tableau, on ajoute un indice entre crochets []. Le premier élément du tableau se trouve à la position 1.
Par exemple, nous devons récupérer les noms des employés et, pour ceux qui ont plusieurs contacts, uniquement leur premier contact. Nous pouvons y accéder via contact[1]. Voyons cela :
SELECT name, contact[1] FROM Employees;
Cela renverra ce qui suit :
Nous pouvons utiliser l'instruction SELECT conjointement avec la clause WHERE pour filtrer les lignes en fonction de la colonne de type tableau. Par exemple, pour afficher l'employé dont le deuxième contact est le (408)-567-78234, nous pouvons exécuter la commande suivante :
SELECT name FROM Employees WHERE contact [ 2 ] = '(408)-567-78234';
Cela renverra ce qui suit :
Modification PostgreSQL tableau
Vous pouvez mettre à jour tous les éléments d'un tableau ou un seul. Voici le contenu du tableau Employees :
Mettons à jour le deuxième numéro de téléphone de l'employé James Bush, dont l'identifiant est 3 :
Exécutez la commande suivante:
UPDATE Employees SET contact [ 2 ] = '(408)-589-89347' WHERE id = 3;
La commande devrait s'exécuter avec succès :
Interrogons la table pour vérifier si le changement a réussi :
Le changement a été réussi.
Recherche dans un PostgreSQL tableau
Actuellement, notre tableau Employés est le suivant :
Supposons que nous devions savoir à qui appartient le contact (408)-783-5731, quelle que soit sa position dans le tableau des contacts. Nous pouvons utiliser la fonction ANY() comme indiqué ci-dessous :
SELECT name, contact FROM Employees WHERE '(408)-783-5731' = ANY (contact);
Cela renverra ce qui suit :
Expansion des tableaux
On peut répartir les valeurs d'un tableau en lignes. Ce processus est appelé expansion de tableau. Dans l'exemple de la table « Employés », certains employés ont deux contacts dans le tableau « contacts ». On peut les répartir sur des lignes distinctes. PostgreSQL fournit la fonction unnest() qui peut être utilisée à cette fin. Par exemple :
SELECT name, unnest(contact) FROM Employees;
Cela renverra ce qui suit :
Les employés Alice John et James Bush ont deux contacts. Nous pouvons les répartir sur des lignes distinctes.
Utiliser pgAdmin
Nos Boissons PostgreSQL Arrays
Pour accomplir la même chose via pgAdmin, procédez comme suit :
Étape 1) Connectez-vous à votre compte pgAdmin.
Étape 2)
- Dans la barre de navigation de gauche, cliquez sur Bases de données.
- Cliquez sur le bouton Démo.
Étape 3) Tapez la requête dans l'éditeur de requêtes pour créer la table Employés :
CREATE TABLE Employees ( id int PRIMARY KEY, name VARCHAR (100), contact TEXT [] );
Étape 4) Cliquez sur le bouton Exécuter.
Insertion PostgreSQL Valeurs du tableau
Étape 1) Tapez la requête suivante dans l'éditeur de requête :
INSERT INTO Employees VALUES ( 1, 'Alice John', ARRAY [ '(408)-743-9045', '(408)-567-7834' ] );
Étape 2) Cliquez sur le bouton Exécuter :
Étape 3) Pour utiliser des accolades dans la requête, saisissez la requête suivante dans l'éditeur de requêtes :
INSERT INTO Employees VALUES ( 2, 'Kate Joel', '{"(408)-783-5731"}' ), ( 3, 'James Bush', '{"(408)-745-8965","(408)-567-78234"}' );
Cliquez ensuite sur le bouton Exécuter :
Interrogation des données d'un tableau
Étape 1) Pour afficher le contenu de la table Employees, saisissez la requête suivante dans l'éditeur de requêtes :
SELECT * FROM Employees;
Étape 2) Cliquez sur le bouton Exécuter :
Il devrait renvoyer ce qui suit :
Étape 3) Pour afficher les premiers contacts des employés, saisissez la requête suivante dans l'éditeur de requêtes et cliquez sur le bouton Exécuter :
SELECT name, contact[1] FROM Employees;
Il devrait renvoyer ce qui suit :
Étape 4) Pour combiner l'instruction SELECT avec la clause WHERE, saisissez la commande suivante dans l'éditeur de requêtes et cliquez sur le bouton Exécuter :
SELECT name FROM Employees WHERE contact [ 2 ] = '(408)-567-78234';
Il devrait renvoyer ce qui suit :
Modification PostgreSQL tableau
Étape 1) Pour mettre à jour le deuxième contact de l'utilisateur dont l'identifiant est 3, exécutez la commande suivante :
UPDATE Employees SET contact [ 2 ] = '(408)-589-89347' WHERE id = 3;
Étape 2) Cliquez sur le bouton Exécuter.
Étape 3) Saisissez la commande suivante dans l'éditeur de requêtes pour vérifier si la modification a réussi, puis cliquez sur le bouton Exécuter :
SELECT * FROM Employees;
Il devrait renvoyer ce qui suit :
Recherche dans un PostgreSQL tableau
Étape 1) Tapez la requête suivante dans l'éditeur de requête :
SELECT name, contact FROM Employees WHERE '(408)-783-5731' = ANY (contact);
Étape 2) Cliquez sur le bouton Exécuter.
Il devrait renvoyer ce qui suit :
Expansion des tableaux
Étape 1) Tapez la requête suivante dans l'éditeur de requête :
SELECT name, unnest(contact) FROM Employees;
Étape 2) Cliquez sur le bouton Exécuter.
Il devrait renvoyer ce qui suit :
Téléchargez la base de données utilisée dans ce tutoriel































