PostgreSQL Array: Functies, Type, Voorbeeld
โก Slimme samenvatting
PostgreSQL Met Array kunt u een tabelkolom definiรซren als een array van elk geldig gegevenstype. Het behandelt het maken van arraykolommen, het invoegen van waarden met de ARRAY-constructor of accolades, het opvragen en wijzigen van elementen en het zoeken met ANY().

Wat is PostgreSQL Array?
In PostgreSQLWe kunnen een kolom definiรซren als een array van geldige gegevenstypen. Het gegevenstype kan ingebouwd, door de gebruiker gedefinieerd of een opgesomd type zijn. Daarnaast spelen arrays een belangrijke rol in... PostgreSQL.
Elke corresponderende PostgreSQL Een gegevenstype heeft een bijbehorend arraytype. Zo heeft het gegevenstype integer het arraytype integer[], het gegevenstype character het arraytype character[], enzovoort.
Wij creรซren PostgreSQL arrays
In het volgende voorbeeld maken we een tabel met de naam Medewerkers, waarbij de kolom Contactpersonen is gedefinieerd als een tekstarray:
CREATE TABLE Employees ( id int PRIMARY KEY, name VARCHAR (100), contact TEXT [] );
De opdracht zou met succes moeten worden uitgevoerd.
invoegen PostgreSQL Arraywaarden
Laat het ons weten invoegen waarden in de bovenstaande tabel:
INSERT INTO Employees VALUES ( 1, 'Alice John', ARRAY [ '(408)-743-9045', '(408)-567-7834' ] );
Het invoegen zou succesvol moeten verlopen.
De waarden van de derde kolom, oftewel contact, zijn als een array ingevoerd. Dit is gedaan met behulp van de ARRAY-constructor. In dit voorbeeld hebben we ze tussen vierkante haken [] geplaatst. We hebben twee contactpersonen voor de medewerker Alice John.
Het is nog steeds mogelijk dat we accolades {} gebruiken, zoals hieronder weergegeven:
INSERT INTO Employees VALUES ( 2, 'Kate Joel', '{"(408)-783-5731"}' ), ( 3, 'James Bush', '{"(408)-745-8965","(408)-567-78234"}' );
De opdracht zou met succes moeten worden uitgevoerd.
De bovenstaande statements voegen twee rijen toe aan de Employees-tabel. Wanneer u accolades gebruikt, wordt de array omsloten door enkele aanhalingstekens ('), terwijl de tekst-array-items omsloten worden door dubbele aanhalingstekens (โ).
Arraygegevens opvragen
Om de elementen van een array op te vragen, gebruiken we de SELECT-instructie. Om de inhoud van onze tabel 'Employees' te bekijken, voeren we de volgende opdracht uit:
SELECT * FROM Employees;
Dit geeft het volgende terug:
De elementen van de arraykolom, oftewel 'contact', zijn tussen accolades {} geplaatst. Om de array-elementen zelf te benaderen, voegen we een index toe tussen vierkante haken []. Het eerste element in een array bevindt zich op positie 1.
We moeten bijvoorbeeld de namen van de medewerkers ophalen, en alleen hun eerste contactpersoon voor medewerkers met meer dan รฉรฉn contactpersoon. We kunnen dit benaderen als contact[1]. Laten we dit eens bekijken:
SELECT name, contact[1] FROM Employees;
Dit retourneert het volgende:
We kunnen de SELECT-instructie samen met de WHERE-clausule gebruiken om rijen te filteren op basis van de kolom in de array. Om bijvoorbeeld de medewerker met (408)-567-78234 als tweede contactpersoon te zien, kunnen we de volgende opdracht uitvoeren:
SELECT name FROM Employees WHERE contact [ 2 ] = '(408)-567-78234';
Dit retourneert het volgende:
Het wijzigen PostgreSQL reeks
Je kunt alle elementen van een array of een enkel element ervan bijwerken. Hieronder zie je de inhoud van de tabel 'Employees':
Laten we het tweede telefoonnummer van de werknemer James Bush, wiens id 3 is, bijwerken:
Voer het volgende commando uit:
UPDATE Employees SET contact [ 2 ] = '(408)-589-89347' WHERE id = 3;
De opdracht zou met succes moeten worden uitgevoerd:
Laten we de tabel doorzoeken om te controleren of de wijziging succesvol was:
De verandering was succesvol.
Zoeken in een PostgreSQL reeks
Momenteel ziet onze tabel Medewerkers er als volgt uit:
Stel dat we willen weten wie de eigenaar is van het contact (408)-783-5731, ongeacht de positie binnen de contactenlijst. We kunnen hiervoor de ANY()-functie gebruiken, zoals hieronder weergegeven:
SELECT name, contact FROM Employees WHERE '(408)-783-5731' = ANY (contact);
Dit retourneert het volgende:
Arrays uitbreiden
We kunnen de waarden van een array opsplitsen in rijen. Dit proces staat bekend als array-expansie. In het voorbeeld van de tabel 'Medewerkers' zijn er medewerkers met twee contactpersonen in de contact-array. We kunnen deze opsplitsen in afzonderlijke rijen. PostgreSQL biedt de functie unnest() die hiervoor gebruikt kan worden. Bijvoorbeeld:
SELECT name, unnest(contact) FROM Employees;
Dit retourneert het volgende:
De medewerkers Alice John en James Bush hebben twee contactpersonen. We kunnen deze in aparte rijen onderbrengen.
Gebruik pgAdmin
Wij creรซren PostgreSQL arrays
Om hetzelfde te bereiken via pgAdmin, doet u het volgende:
Stap 1) Log in op uw pgAdmin-account.
Stap 2)
- Klik in de navigatiebalk aan de linkerkant op Databases.
- Klik op de knop 'Demo'.
Stap 3) Typ de query in de query-editor om de tabel Werknemers te maken:
CREATE TABLE Employees ( id int PRIMARY KEY, name VARCHAR (100), contact TEXT [] );
Stap 4) Klik op de knop Uitvoeren.
invoegen PostgreSQL Arraywaarden
Stap 1) Typ de volgende query in de query-editor:
INSERT INTO Employees VALUES ( 1, 'Alice John', ARRAY [ '(408)-743-9045', '(408)-567-7834' ] );
Stap 2) Klik op de knop Uitvoeren:
Stap 3) Om accolades in de query te gebruiken, typt u de volgende query in de query-editor:
INSERT INTO Employees VALUES ( 2, 'Kate Joel', '{"(408)-783-5731"}' ), ( 3, 'James Bush', '{"(408)-745-8965","(408)-567-78234"}' );
Klik vervolgens op de knop Uitvoeren:
Arraygegevens opvragen
Stap 1) Om de inhoud van de tabel 'Employees' te bekijken, typt u de volgende query in de query-editor:
SELECT * FROM Employees;
Stap 2) Klik op de knop Uitvoeren:
Het volgende zou moeten worden geretourneerd:
Stap 3) Om de eerste contactpersonen van medewerkers te bekijken, typt u de volgende zoekopdracht in de zoekopdrachteditor en klikt u op de knop Uitvoeren:
SELECT name, contact[1] FROM Employees;
Het volgende zou moeten worden geretourneerd:
Stap 4) Om de SELECT-instructie te combineren met de WHERE-clausule, typt u de volgende opdracht in de query-editor en klikt u op de knop Uitvoeren:
SELECT name FROM Employees WHERE contact [ 2 ] = '(408)-567-78234';
Het volgende zou moeten worden geretourneerd:
Het wijzigen PostgreSQL reeks
Stap 1) Om het tweede contact van de gebruiker met ID 3 bij te werken, voert u de volgende opdracht uit:
UPDATE Employees SET contact [ 2 ] = '(408)-589-89347' WHERE id = 3;
Stap 2) Klik op de knop Uitvoeren.
Stap 3) Typ de volgende opdracht in de query-editor om te controleren of de wijziging is gelukt en klik vervolgens op de knop Uitvoeren:
SELECT * FROM Employees;
Het volgende zou moeten worden geretourneerd:
Zoeken in een PostgreSQL reeks
Stap 1) Typ de volgende query in de query-editor:
SELECT name, contact FROM Employees WHERE '(408)-783-5731' = ANY (contact);
Stap 2) Klik op de knop Uitvoeren.
Het volgende zou moeten worden geretourneerd:
Arrays uitbreiden
Stap 1) Typ de volgende query in de query-editor:
SELECT name, unnest(contact) FROM Employees;
Stap 2) Klik op de knop Uitvoeren.
Het volgende zou moeten worden geretourneerd:
Download de database die in deze zelfstudie wordt gebruikt






























