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.

létrehozása PostgreSQL tömbök

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.

behelyezése PostgreSQL Tömbértékek

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.

behelyezése PostgreSQL Tömbértékek

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:

Tömbadatok lekérdezése

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:

Tömbadatok lekérdezése

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:

Tömbadatok lekérdezése

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:

módosítása PostgreSQL Sor

Frissítsük James Bush alkalmazott második telefonszámát, akinek az azonosítója 3:

módosítása PostgreSQL Sor

Futtassa a következő parancsot:

UPDATE Employees
SET contact [ 2 ] = '(408)-589-89347'
WHERE
   id = 3;

A parancsnak sikeresen le kell futnia:

módosítása PostgreSQL Sor

Lekérdezzük a táblázatot, hogy ellenőrizzük, hogy a változtatás sikeres volt-e:

módosítása PostgreSQL Sor

A változás sikeres volt.

Keresés a PostgreSQL Sor

Jelenleg az alkalmazottak táblázata a következő:

Keresés a PostgreSQL Sor

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:

Keresés a PostgreSQL Sor

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:

Bővülő tömbök

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)

  1. A bal oldali navigációs sávon kattintson az rbases elemre.
  2. Kattintson a Demo gombra

létrehozása PostgreSQL Tömbök a pgAdmin használatával

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.

létrehozása PostgreSQL Tömbök a pgAdmin használatával

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:

behelyezése PostgreSQL Tömbértékek

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:

behelyezése PostgreSQL Tömbértékek

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:

Tömbadatok lekérdezése a pgAdmin segítségével

A következőt kell visszaadnia:

Tömbadatok lekérdezése a pgAdmin segítségével

Step 3) Az alkalmazottak első elérhetőségeinek megtekintéséhez:

  1. Írja be a következő lekérdezést a lekérdezésszerkesztőbe:
    SELECT name, contact[1]
    FROM Employees;
    
  2. Kattintson a Végrehajtás gombra.

Tömbadatok lekérdezése a pgAdmin segítségével

A következőt kell visszaadnia:

Tömbadatok lekérdezése a pgAdmin segítségével

Step 4) A SELECT utasítás és a WHERE záradék kombinálása:

  1. Írja be a következő parancsot a lekérdezésszerkesztőbe:
    SELECT
       name
    FROM
       Employees
    WHERE
       contact [ 2 ] = '(408)-567-78234';
    
  2. Kattintson a Végrehajtás gombra.

Tömbadatok lekérdezése a pgAdmin segítségével

A következőt kell visszaadnia:

Tömbadatok lekérdezése a pgAdmin segítségével

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.

módosítása PostgreSQL Tömb a pgAdmin használatával

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.

módosítása PostgreSQL Tömb a pgAdmin használatával

A következőt kell visszaadnia:

módosítása PostgreSQL Tömb a pgAdmin használatával

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.

Keresés a PostgreSQL Tömb a pgAdmin használatával

A következőt kell visszaadnia:

Keresés a PostgreSQL Tömb a pgAdmin használatával

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.

Tömbök kibontása a pgAdmin segítségével

A következőt kell visszaadnia:

Tömbök kibontása a pgAdmin segítségével

Ö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