PostgreSQL Tableau : fonctions, type, exemple

Qu'est-ce que le 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.

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.

Nos Boissons 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

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)

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

Nos Boissons 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.

Nos Boissons 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

Rรฉsumez cet article avec :