Qu'est-ce que PostgreSQL Array?
Dans PostgreSQL, nous pouvons définir une colonne comme un tableau de types de données valides. Le type de données peut être de 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 type de données PostgreSQL correspondant 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.
Dans ce didacticiel PostgreSQL, vous apprendrez:
- Qu'est-ce que PostgreSQL Array?
- Création de tableaux PostgreSQL
- Insertion de valeurs de tableau PostgreSQL
- Interroger les données de la baie
- Modification du tableau PostgreSQL
- Recherche dans un tableau PostgreSQL
- Expansion des tableaux
- Utilisation de pgAdmin
Création de tableaux PostgreSQL
Dans l'exemple suivant, nous allons créer une table nommée Employés avec la colonne de contact définie comme un tableau de texte:
CREATE TABLE Employees (id int PRIMARY KEY,name VARCHAR (100),contact TEXT []);
La commande doit s'exécuter avec succès.
Insertion de valeurs de tableau PostgreSQL
Insérons maintenant des valeurs dans le tableau ci-dessus:
INSERT INTO EmployeesVALUES(1,'Alice John',ARRAY [ '(408)-743-9045','(408)-567-7834' ]);
L'insertion doit s'exécuter avec succès.
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é en utilisant le 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 EmployeesVALUES(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èrent deux lignes dans la table Employés. Lors de l'utilisation d'accolades, le tableau est entouré de guillemets simples (') tandis que les éléments du tableau de texte sont placés entre guillemets doubles (").
Interroger les données de la baie
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 ce qui suit:
Les éléments de la colonne du tableau, c'est-à-dire 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 à la 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:
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:
SELECTnameFROMEmployeesWHEREcontact [ 2 ] = '(408)-567-78234';
Cela renverra ce qui suit:
Modification du tableau PostgreSQL
Vous pouvez mettre à jour tout ou un seul élément d'un tableau.
Voici le contenu de la table Employés:
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 EmployeesSET contact [ 2 ] = '(408)-589-89347'WHEREid = 3;
La commande devrait s'exécuter avec succès:
Interrogons la table pour vérifier si la modification a réussi:
Le changement a réussi.
Recherche dans un tableau PostgreSQL
Actuellement, notre tableau Employés est le suivant:
Supposons que nous ayons besoin de savoir à qui appartient le contact (408) -783-5731 quelle que soit la position dans le tableau de contacts, nous pouvons utiliser la fonction ANY () comme indiqué ci-dessous:
SELECTname,contactFROMEmployeesWHERE'(408)-783-5731' = ANY (contact);
Cela renverra ce qui suit:
Expansion des tableaux
Nous pouvons diviser les valeurs d'un tableau en lignes. Ce processus est appelé extension de matrice.
Dans l'exemple de la table Employés, il y a des employés avec deux contacts dans le tableau de contacts. Nous pouvons les diviser en lignes séparées.
PostgreSQL fournit la fonction unnest () qui peut être utilisée pour cela.
Par exemple:
SELECTname,unnest(contact)FROMEmployees;
Cela renverra ce qui suit:
Les employés Alice John et James Bush, ont deux contacts. Nous pouvons nous diviser en lignes séparées.
Utilisation de pgAdmin
Création de tableaux PostgreSQL
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 sur la gauche, cliquez sur rbases.
- 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 de valeurs de tableau PostgreSQL
Étape 1) Tapez la requête suivante dans l'éditeur de requête:
INSERT INTO EmployeesVALUES(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
Étape 1) Tapez la requête suivante dans l'éditeur de requête:
INSERT INTO EmployeesVALUES(2,'Kate Joel','{"(408)-783-5731"}'),(3,'James Bush','{"(408)-745-8965","(408)-567-78234"}');
Étape 2) Cliquez sur le bouton Exécuter:
Interroger les données de la baie
Étape 1) Pour afficher le contenu de la table Employés, tapez la requête suivante dans l'éditeur de requêtes:
SELECT * FROM Employees;
Étape 2) Cliquez sur le bouton Exécuter:
Il doit renvoyer ce qui suit:
Étape 3) Pour voir les premiers contacts des employés:
- Tapez la requête suivante dans l'éditeur de requête:
SELECT name, contact[1]FROM Employees;
- Cliquez sur le bouton Exécuter.
Il doit renvoyer ce qui suit:
Étape 4) Pour combiner l'instruction SELECT avec la clause WHERE:
- Tapez la commande suivante dans l'éditeur de requête:
SELECTnameFROMEmployeesWHEREcontact [ 2 ] = '(408)-567-78234';
- Cliquez sur le bouton Exécuter.
Il doit renvoyer ce qui suit:
Modification du tableau PostgreSQL
Étape 1) Pour mettre à jour le deuxième contact de l'utilisateur avec l'ID de 3, exécutez la commande suivante:
UPDATE EmployeesSET contact [ 2 ] = '(408)-589-89347'WHEREid = 3;
Étape 2) Cliquez sur le bouton Exécuter.
Étape 3)
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.
Il doit renvoyer ce qui suit:
Recherche dans un tableau PostgreSQL
Étape 1) Tapez la requête suivante dans l'éditeur de requête:
SELECTname,contactFROMEmployeesWHERE'(408)-783-5731' = ANY (contact);
Étape 2) Cliquez sur le bouton Exécuter.
Il doit renvoyer ce qui suit:
Expansion des tableaux
Étape 1) Tapez la requête suivante dans l'éditeur de requête:
SELECTname,unnest(contact)FROMEmployees;
Étape 2) Cliquez sur le bouton Exécuter.
Il doit renvoyer ce qui suit:
Résumé:
- PostgreSQL nous permet de définir une colonne de table comme type de tableau.
- Le tableau doit être d'un type de données valide tel que des entiers, des caractères ou des types définis par l'utilisateur.
- Pour insérer des valeurs dans une colonne de tableau, nous utilisons le constructeur ARRAY.
- S'il y a plus d'un élément dans la même ligne d'une colonne de tableau, le premier élément est à la 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 colonne de tableau en utilisant la fonction ANY ().
Téléchargez la base de données utilisée dans ce didacticiel