PostgreSQL Tableau : fonctions, type, exemple

Qu’est ce qu' PostgreSQL Déployer?

In PostgreSQL, nous pouvons définir une colonne comme un tableau de types de données valides. Le type de données peut être un type intégré, défini par l'utilisateur ou énuméré. En dehors de cela, les tableaux jouent un rôle important dans PostgreSQL.

Chaque correspondant PostgreSQL le type de données est livré avec un type de tableau pertinent. Par exemple, le type de données entier a le type de tableau entier[], le type de données caractère a le type de tableau caractère[], etc.

La création 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.

La création PostgreSQL Arrays

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.

Insertion PostgreSQL Valeurs du tableau

Les valeurs de la troisième colonne, c'est-à-dire contact, ont été insérées sous forme de tableau. Ceci a été réalisé grâce à l'utilisation du constructeur ARRAY.

Dans cet exemple, nous les avons mis entre crochets []. Nous avons deux contacts 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.

Insertion PostgreSQL Valeurs du tableau

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 voir le contenu de notre table Employés, nous exécutons la commande suivante :

SELECT * FROM Employees;

Cela renvoie les éléments suivants :

Interrogation des données d'un tableau

Les éléments de la colonne du tableau, c'est-à-dire le contact, ont été placés entre accolades {}.

Pour accéder aux éléments du tableau eux-mêmes, nous ajoutons un indice entre crochets []. Le premier élément d'un tableau est en position 1.

Par exemple, nous devons obtenir les noms des employés et uniquement leur premier contact pour les employés ayant plusieurs contacts. Nous pouvons y accéder en tant que contact[1].

Voyons ceci :

SELECT name, contact[1]
FROM Employees;

Cela renverra ce qui suit :

Interrogation des données d'un tableau

Nous pouvons utiliser l'instruction SELECT avec la clause WHERE pour filtrer les lignes en fonction de la colonne du tableau.

Par exemple, pour voir l'employé avec (408)-567-78234 comme deuxième contact, nous pouvons exécuter la commande suivante :

SELECT
   name
FROM
   Employees
WHERE
   contact [ 2 ] = '(408)-567-78234';

Cela renverra ce qui suit :

Interrogation des données d'un tableau

Modification PostgreSQL tableau

Vous pouvez mettre à jour tout ou un seul élément d'un tableau.

Voici le contenu de la table Employés :

Modification PostgreSQL tableau

Mettons à jour le deuxième numéro de téléphone de l'employé James Bush, dont l'identifiant est 3 :

Modification PostgreSQL tableau

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 :

Modification PostgreSQL tableau

Interrogons la table pour vérifier si le changement a réussi :

Modification PostgreSQL tableau

Le changement a été réussi.

Recherche dans un PostgreSQL tableau

Actuellement, notre tableau Employés est le suivant :

Recherche dans un PostgreSQL tableau

Supposons que nous ayons besoin de savoir à qui appartient le contact (408)-783-5731, quelle que soit sa position dans le tableau de 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 :

Recherche dans un PostgreSQL tableau

Expansion des tableaux

Nous pouvons diviser les valeurs d'un tableau en lignes. Ce processus est connu sous le nom d’expansion du tableau.

Dans l'exemple de la table Employés, certains employés ont deux contacts dans le tableau de contacts. Nous pouvons les diviser en lignes distinctes.

PostgreSQL fournit la fonction unnest() qui peut être utilisée pour cela.

Par exemple :

SELECT
   name,
   unnest(contact)
FROM
   Employees;

Cela renverra ce qui suit :

Expansion des tableaux

Les salariés Alice John et James Bush ont deux contacts. Nous pouvons diviser en lignes distinctes.

Utiliser pgAdmin

La création PostgreSQL Arrays

Pour accomplir la même chose via pgAdmin, procédez comme suit :

Étape 1) Connectez-vous à votre compte pgAdmin.

Étape 2)

  1. Dans la barre de navigation à gauche, cliquez sur rbases.
  2. Cliquez sur le bouton Démo

La création PostgreSQL Tableaux utilisant pgAdmin

É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.

La création PostgreSQL Tableaux utilisant pgAdmin

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 :

Insertion PostgreSQL Valeurs du tableau

Étape 3)

Pour utiliser des accolades dans la requête

Étape 1) Tapez la requête suivante dans l'éditeur de requête :

INSERT INTO Employees 
VALUES
   (
    2,
      'Kate Joel',
      '{"(408)-783-5731"}'
   ),
   ( 
      3,
      'James Bush',
      '{"(408)-745-8965","(408)-567-78234"}'
   );

Étape 2) Cliquez sur le bouton Exécuter :

Insertion PostgreSQL Valeurs du tableau

Interrogation des données d'un tableau

Étape 1) Pour voir le contenu de la table Employés, tapez la requête suivante dans l'éditeur de requête :

SELECT * FROM Employees;

Étape 2) Cliquez sur le bouton Exécuter :

Interroger les données d'un tableau à l'aide de pgAdmin

Il devrait renvoyer ce qui suit :

Interroger les données d'un tableau à l'aide de pgAdmin

Étape 3) Pour voir les premiers contacts des salariés :

  1. Tapez la requête suivante dans l'éditeur de requête :
    SELECT name, contact[1]
    FROM Employees;
    
  2. Cliquez sur le bouton Exécuter.

Interroger les données d'un tableau à l'aide de pgAdmin

Il devrait renvoyer ce qui suit :

Interroger les données d'un tableau à l'aide de pgAdmin

Étape 4) Pour combiner l'instruction SELECT avec la clause WHERE :

  1. Tapez la commande suivante sur l'éditeur de requête :
    SELECT
       name
    FROM
       Employees
    WHERE
       contact [ 2 ] = '(408)-567-78234';
    
  2. Cliquez sur le bouton Exécuter.

Interroger les données d'un tableau à l'aide de pgAdmin

Il devrait renvoyer ce qui suit :

Interroger les données d'un tableau à l'aide de pgAdmin

Modification PostgreSQL tableau

Étape 1) Pour mettre à jour le deuxième contact de l'utilisateur avec l'identifiant 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.

Modification PostgreSQL Tableau utilisant pgAdmin

Étape 3)

1.Tapez la commande suivante dans l'éditeur de requêtes pour vérifier si la modification a réussi :

SELECT * FROM Employees;

2.Cliquez sur le bouton Exécuter.

Modification PostgreSQL Tableau utilisant pgAdmin

Il devrait renvoyer ce qui suit :

Modification PostgreSQL Tableau utilisant pgAdmin

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.

Recherche dans un PostgreSQL Tableau utilisant pgAdmin

Il devrait renvoyer ce qui suit :

Recherche dans un PostgreSQL Tableau utilisant pgAdmin

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.

Extension de tableaux à l'aide de pgAdmin

Il devrait renvoyer ce qui suit :

Extension de tableaux à l'aide de pgAdmin

Résumé

  • PostgreSQL nous permet de définir une colonne de tableau comme type de tableau.
  • Le tableau doit être d'une valeur valide Type de données tels que les types entiers, caractères ou définis par l'utilisateur.
  • Pour insérer des valeurs dans une colonne d'un tableau, nous utilisons le constructeur ARRAY.
  • S'il y a plusieurs éléments dans la même ligne d'une colonne de tableau, le premier élément est en position 1.
  • Chaque valeur est accessible en passant un indice entre crochets [].
  • Les éléments du tableau peuvent être récupérés à l'aide de l'instruction SELECT.
  • Les valeurs de la colonne du tableau peuvent être placées entre crochets [] ou accolades {}.
  • Nous pouvons rechercher des valeurs de colonnes de tableau à l’aide de la fonction ANY().

Téléchargez la base de données utilisée dans ce tutoriel