PostgreSQL Tömb: függvények, típus, példa
Mi a PostgreSQL Sor?
In PostgreSQL, definiálhatunk egy oszlopot érvényes adattípusok tömbjeként. Az adattípus lehet beépített, felhasználó által meghatározott vagy felsorolt típusú. Ezen kívül a tömbök fontos szerepet játszanak PostgreSQL.
Minden megfelelő PostgreSQL Az adattípushoz egy megfelelő tömbtípus tartozik. Például az egész adattípus integer[] tömbtípusú, a karakteres adattípus karakter[] tömbtípusú stb.
létrehozása PostgreSQL tömbök
A következő példában létrehozunk egy Alkalmazottak nevű táblát, amelynek kapcsolattartó oszlopa szövegtömbként van definiálva:
CREATE TABLE Employees ( id int PRIMARY KEY, name VARCHAR (100), contact TEXT [] );
A parancsnak sikeresen le kell futnia.
behelyezése PostgreSQL Tömbértékek
Most engedjük helyezze értékeket a fenti táblázatba:
INSERT INTO Employees VALUES ( 1, 'Alice John', ARRAY [ '(408)-743-9045', '(408)-567-7834' ] );
A beillesztésnek sikeresen le kell futnia.
A harmadik oszlop, azaz a kontakt értékei tömbként kerültek beszúrásra. Ezt az ARRAY konstruktor használatával sikerült elérni.
Ebben a példában szögletes zárójelek közé [] helyeztük őket. Két kapcsolatunk van Alice John alkalmazottal.
Továbbra is használhatunk göndör zárójeleket {}, az alábbiak szerint:
INSERT INTO Employees VALUES ( 2, 'Kate Joel', '{"(408)-783-5731"}' ), ( 3, 'James Bush', '{"(408)-745-8965","(408)-567-78234"}' );
A parancsnak sikeresen le kell futnia.
A fenti utasítások két sort szúrnak be az Alkalmazottak táblába. Kapcsos zárójelek használatakor a tömb szimpla idézőjelek közé ('), míg a szövegtömb elemei kettős idézőjelek közé (“) kerül.
Tömbadatok lekérdezése
Egy tömb elemeinek lekérdezéséhez a SELECT utasítást használjuk.
Az Alkalmazottak táblázat tartalmának megtekintéséhez a következő parancsot futtatjuk:
SELECT * FROM Employees;
Ez a következőket adja vissza:
A tömboszlop elemei, azaz az érintkező kapcsos zárójelek közé {} kerültek.
Maguk a tömbelemek eléréséhez egy alsó indexet adunk a szögletes zárójelek közé []. A tömb első eleme az 1. pozícióban van.
Például meg kell szereznünk az alkalmazottak nevét és csak az első kapcsolatfelvételüket azoknál a munkavállalóknál, akiknek több kapcsolatuk van. Ezt kapcsolattartóként érhetjük el[1].
Lássuk ezt:
SELECT name, contact[1] FROM Employees;
Ez a következőt adja vissza:
A SELECT utasítást a WHERE záradékkal együtt használhatjuk a sorok szűrésére a tömboszlop alapján.
Például, hogy a (408)-567-78234-es alkalmazottat lássuk második kapcsolattartóként, a következő parancsot futtathatjuk:
SELECT name FROM Employees WHERE contact [ 2 ] = '(408)-567-78234';
Ez a következőt adja vissza:
módosítása PostgreSQL Sor
Frissítheti a tömb egészét vagy egyetlen elemét.
Íme az Alkalmazottak táblázat tartalma:
Frissítsük James Bush alkalmazott második telefonszámát, akinek az azonosítója 3:
Futtassa a következő parancsot:
UPDATE Employees SET contact [ 2 ] = '(408)-589-89347' WHERE id = 3;
A parancsnak sikeresen le kell futnia:
Lekérdezzük a táblázatot, hogy ellenőrizzük, hogy a változtatás sikeres volt-e:
A változás sikeres volt.
Keresés a PostgreSQL Sor
Jelenleg az alkalmazottak táblázata a következő:
Tegyük fel, hogy tudnunk kell, hogy kié a kapcsolattartó (408)-783-5731, függetlenül a kapcsolattartó tömbön belüli pozíciótól, használhatjuk az ANY() függvényt az alábbiak szerint:
SELECT name, contact FROM Employees WHERE '(408)-783-5731' = ANY (contact);
Ez a következőt adja vissza:
Bővülő tömbök
Egy tömb értékeit feloszthatjuk sorokra. Ezt a folyamatot tömbbővítésnek nevezik.
Az Alkalmazottak táblázat példájában néhány alkalmazott két kapcsolattartóval rendelkezik a kapcsolattartó tömbben. Ezeket külön sorokra bonthatjuk.
PostgreSQL biztosítja az ehhez használható unnest() függvényt.
Például:
SELECT name, unnest(contact) FROM Employees;
Ez a következőt adja vissza:
Alice John és James Bush alkalmazottainak két kapcsolata van. Külön sorokra oszthatjuk.
pgAdmin használatával
létrehozása PostgreSQL tömbök
Ha ugyanezt a pgAdminon keresztül szeretné elérni, tegye a következőket:
Step 1) Jelentkezzen be pgAdmin fiókjába.
Step 2)
- A bal oldali navigációs sávon kattintson az rbases elemre.
- Kattintson a Demo gombra
Step 3) Írja be a lekérdezést a lekérdezésszerkesztőbe az Alkalmazottak tábla létrehozásához:
CREATE TABLE Employees ( id int PRIMARY KEY, name VARCHAR (100), contact TEXT [] );
Step 4) Kattintson a Végrehajtás gombra.
behelyezése PostgreSQL Tömbértékek
Step 1) Írja be a következő lekérdezést a lekérdezésszerkesztőbe:
INSERT INTO Employees VALUES ( 1, 'Alice John', ARRAY [ '(408)-743-9045', '(408)-567-7834' ] );
Step 2) Kattintson a Végrehajtás gombra:
Step 3)
Göndör kapcsos zárójelek használata a lekérdezésben
Step 1) Írja be a következő lekérdezést a lekérdezésszerkesztőbe:
INSERT INTO Employees VALUES ( 2, 'Kate Joel', '{"(408)-783-5731"}' ), ( 3, 'James Bush', '{"(408)-745-8965","(408)-567-78234"}' );
2. lépés) Kattintson a Végrehajtás gombra:
Tömbadatok lekérdezése
Step 1) Az Alkalmazottak tábla tartalmának megtekintéséhez írja be a következő lekérdezést a lekérdezésszerkesztőbe:
SELECT * FROM Employees;
Step 2) Kattintson a Végrehajtás gombra:
A következőt kell visszaadnia:
Step 3) Az alkalmazottak első elérhetőségeinek megtekintéséhez:
- Írja be a következő lekérdezést a lekérdezésszerkesztőbe:
SELECT name, contact[1] FROM Employees;
- Kattintson a Végrehajtás gombra.
A következőt kell visszaadnia:
Step 4) A SELECT utasítás és a WHERE záradék kombinálása:
- Írja be a következő parancsot a lekérdezésszerkesztőbe:
SELECT name FROM Employees WHERE contact [ 2 ] = '(408)-567-78234';
- Kattintson a Végrehajtás gombra.
A következőt kell visszaadnia:
módosítása PostgreSQL Sor
Step 1) A 3-as azonosítójú felhasználó második kapcsolattartójának frissítéséhez futtassa a következő parancsot:
UPDATE Employees SET contact [ 2 ] = '(408)-589-89347' WHERE id = 3;
Step 2) Kattintson a Végrehajtás gombra.
Step 3)
1. Írja be a következő parancsot a lekérdezésszerkesztőbe, hogy ellenőrizze, hogy a módosítás sikeres volt-e:
SELECT * FROM Employees;
2. Kattintson a Végrehajtás gombra.
A következőt kell visszaadnia:
Keresés a PostgreSQL Sor
Step 1) Írja be a következő lekérdezést a lekérdezésszerkesztőbe:
SELECT name, contact FROM Employees WHERE '(408)-783-5731' = ANY (contact);
Step 2) Kattintson a Végrehajtás gombra.
A következőt kell visszaadnia:
Bővülő tömbök
Step 1) Írja be a következő lekérdezést a lekérdezésszerkesztőbe:
SELECT name, unnest(contact) FROM Employees;
Step 2) Kattintson a Végrehajtás gombra.
A következőt kell visszaadnia:
Összegzésként
- PostgreSQL lehetővé teszi, hogy egy táblázat oszlopát tömbtípusként határozzuk meg.
- A tömbnek érvényesnek kell lennie adattípus például egész szám, karakter vagy felhasználó által megadott típusok.
- Az értékek beszúrásához egy tömboszlopba az ARRAY konstruktort használjuk.
- Ha egy tömboszlop ugyanabban a sorában egynél több elem van, az első elem az 1. pozícióban van.
- Minden érték elérhetõ, ha egy alsó indexet adunk szögletes zárójelben [].
- A tömb elemei a SELECT utasítással kérhetők le.
- A tömboszlop értékei szögletes zárójelek [] vagy kapcsos zárójelek {} közé tehetők.
- A tömb oszlopértékeit az ANY() függvény segítségével kereshetjük.
Töltse le az oktatóanyagban használt adatbázist