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().

  • 📦 Définition: Toutes PostgreSQL Le type de données possède un type de tableau correspondant, tel que integer[].
  • 🧱 Créer et insérer : Utilisez des colonnes TEXT[] et le constructeur ARRAY ou des accolades.
  • ???? requête: Accédez aux éléments à l'aide d'indices ; le premier élément se trouve à la position 1.
  • Modifier et rechercher : Mettez à jour des éléments individuels et recherchez des valeurs avec ANY().
  • (I.e. Développer: La fonction unnest() divise les valeurs du tableau en lignes distinctes.

PostgreSQL tableau

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.

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

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 afficher le contenu de notre table Employees, 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 « 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 :

Interrogation des données d'un tableau

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 :

Interrogation des données d'un tableau

Modification PostgreSQL tableau

Vous pouvez mettre à jour tous les éléments d'un tableau ou un seul. Voici le contenu du tableau Employees :

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 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 :

Recherche dans un PostgreSQL tableau

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 :

Expansion des tableaux

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)

  1. Dans la barre de navigation de gauche, cliquez sur Bases de données.
  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, 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 :

Insertion PostgreSQL Valeurs du tableau

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 :

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 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;

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, 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';

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

Modification PostgreSQL Tableau utilisant pgAdmin

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

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

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

FAQ

Oui. Les assistants IA peuvent écrire des instructions CREATE TABLE avec des colonnes de type tableau, des commandes INSERT utilisant ARRAY ou des accolades, et des fonctions comme unnest() ou ANY(). Testez le code SQL généré sur votre schéma avant de l'exécuter.

Oui. Les outils d'IA peuvent vous indiquer si une colonne de type tableau ou une table enfant normalisée convient le mieux à vos données. Les tableaux sont adaptés aux petites listes fixes, tandis que les tables séparées conviennent aux relations volumineuses ou fréquemment interrogées. Validez ce choix avec vos requêtes.

Utilisez la fonction array_length(array, dimension). Par exemple, array_length(contact, 1) renvoie le nombre d'éléments dans la première dimension du tableau contact.

Oui. Utilisez la fonction array_append(array, value) ou l'opérateur de concaténation ||. Par exemple, UPDATE Employees SET contact = array_append(contact, '(408)-000-0000') ajoute un nouvel élément.

Résumez cet article avec :