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.
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 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.
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 :
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 :
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 :
Modification PostgreSQL tableau
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 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 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 :
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 :
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)
- Dans la barre de navigation ร 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 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
ร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 :
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 :
Il devrait renvoyer ce qui suit :
รtape 3) Pour voir les premiers contacts des salariรฉ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 devrait renvoyer ce qui suit :
รtape 4) Pour combiner l'instruction SELECT avec la clause WHERE :
- Tapez la commande suivante sur l'รฉditeur de requรชte :
SELECT name FROM Employees WHERE contact [ 2 ] = '(408)-567-78234';
- Cliquez sur le bouton Exรฉcuter.
Il devrait renvoyer ce qui suit :
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.
ร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.
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 :
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






























