PostgreSQL tömb: Funkciók, típus, példa

Tartalomjegyzék:

Anonim

Mi a PostgreSQL tömb?

A PostgreSQL-ben oszlopot definiálhatunk érvényes adattípusok tömbjeként. Az adattípus lehet beépített, felhasználó által definiált vagy felsorolt ​​típus. Ezen kívül a tömbök fontos szerepet játszanak a PostgreSQL-ben.

Minden megfelelő PostgreSQL adattípushoz tartozik egy megfelelő tömbtípus. Például az egész szám adattípusnak van egész szám [] tömbtípus, a karakter adattípusnak karakter [] tömb típus stb.

Ebben a PostgreSQL oktatóanyagban megtudhatja:

  • Mi a PostgreSQL tömb?
  • PostgreSQL tömbök létrehozása
  • PostgreSQL tömbértékek beszúrása
  • Tömbadatok lekérdezése
  • A PostgreSQL tömb módosítása
  • Keresés egy PostgreSQL tömbben
  • Tömbök bővítése
  • A pgAdmin használatával

PostgreSQL tömbök létrehozása

A következő példában létrehozunk egy alkalmazottak nevű táblázatot, amelynek kapcsolattartó oszlopa szövegtömbként definiálva van:

CREATE TABLE Employees (id int PRIMARY KEY,name VARCHAR (100),contact TEXT []);

A Parancsnak sikeresen kell futnia.

PostgreSQL tömbértékek beszúrása

Helyezzen be most értékeket a fenti táblázatba:

INSERT INTO EmployeesVALUES(1,'Alice John',ARRAY [ '(408)-743-9045','(408)-567-7834' ]);

A beillesztésnek sikeresen kell futnia.

A harmadik oszlop, vagyis a contact értékeit tömbként illesztettük be. Ezt az ARRAY konstruktor használatával érték el.

Ebben a példában szögletes zárójelbe tettük őket []. Két kapcsolatunk van Alice John alkalmazottjával.

Még mindig lehetséges, hogy göndör zárójeleket {} használjunk az alábbiak szerint:

INSERT INTO EmployeesVALUES(2,'Kate Joel','{"(408)-783-5731"}'),(3,'James Bush','{"(408)-745-8965","(408)-567-78234"}');

A parancsnak sikeresen futnia kell.

A fenti állítások két sort illesztenek be az Alkalmazottak táblába. Göndör zárójelek használata esetén a tömböt egyetlen idézőjelbe ('), míg a szövegtömb elemeket kettős idézőjelekbe (") csomagolják.

Tömbadatok lekérdezése

Egy tömb elemeinek lekérdezéséhez a SELECT utasítást használjuk.

Az Alkalmazottak táblázatunk tartalmának megtekintéséhez futtassuk a következő parancsot:

SELECT * FROM Employees;

Ez a következőket adja vissza:

A tömboszlop elemeit, vagyis a kontaktust göndör zárójelek közé zárják {}.

Maguk a tömbelemek eléréséhez szögletes zárójelbe teszünk egy indexet []. A tömb első eleme az 1. pozícióban van.

Például meg kell szereznünk az alkalmazottak nevét és csak azoknak az alkalmazottaknak az első kapcsolatát, akik egynél több kapcsolattal rendelkeznek. Ezt elérhetjük kapcsolattartóként [1].

Lássuk ezt:

SELECT name, contact[1]FROM Employees;

Ez a következőket adja vissza:

Használhatjuk a SELECT utasítást a WHERE záradékkal együtt a sorok szűrésére a tömb oszlop alapján.

Például, ha a (408) -567-78234 jelű alkalmazottat látjuk második kapcsolattartóként, futtathatjuk a következő parancsot:

SELECTnameFROMEmployeesWHEREcontact [ 2 ] = '(408)-567-78234';

Ez a következőket adja vissza:

A PostgreSQL tömb módosítása

Frissítheti a tömb összes elemét vagy egyetlen elemét.

Itt található az Alkalmazottak táblázat tartalma:

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

Futtassa a következő parancsot:

UPDATE EmployeesSET contact [ 2 ] = '(408)-589-89347'WHEREid = 3;

A parancsnak sikeresen kell futnia:

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

A változás sikeres volt.

Keresés egy PostgreSQL tömbben

Jelenleg az Alkalmazottak táblázatunk a következő:

Tegyük fel, hogy tudnunk kell, hogy kié a kontakt (408) -783-5731, függetlenül a kontakt tömbön belüli pozíciótól, használhatjuk az ANY () függvényt az alábbiak szerint:

SELECTname,contactFROMEmployeesWHERE'(408)-783-5731' = ANY (contact);

Ez a következőket adja vissza:

Tömbök bővítése

Egy tömb értékeit sorokra oszthatjuk fel. Ez a folyamat tömbbővítés néven ismert.

Az Alkalmazottak táblázat példáján vannak olyan alkalmazottak, akiknek két kapcsolata van a kontakt tömbben. Ezeket külön sorokra oszthatjuk fel.

A PostgreSQL biztosítja a leghátrányosabb () függvényt, amely erre használható.

Például:

SELECTname,unnest(contact)FROMEmployees;

Ez a következőket adja vissza:

Alice John és James Bush alkalmazottainak két kapcsolata van. Külön sorokra oszthatjuk fel.

A pgAdmin használatával

PostgreSQL tömbök létrehozása

Ha ugyanezt szeretné elérni a pgAdmin segítségével, tegye ezt:

1. lépés: Jelentkezzen be pgAdmin-fiókjába.

2. lépés)

  1. A bal oldali navigációs sávból - Kattintson az rbases elemre.
  2. Kattintson a Demo gombra

3. lépés: Írja be a lekérdezést a lekérdező szerkesztőbe az Alkalmazottak tábla létrehozásához:

CREATE TABLE Employees (id int PRIMARY KEY,name VARCHAR (100),contact TEXT []);

4. lépés) Kattintson az Execute gombra.

PostgreSQL tömbértékek beszúrása

1. lépés: Írja be a következő lekérdezést a lekérdező szerkesztőbe:

INSERT INTO EmployeesVALUES(1,'Alice John',ARRAY [ '(408)-743-9045','(408)-567-7834' ]);

2. lépés) Kattintson az Execute gombra:

3. lépés)

Göndör zárójelek használata a lekérdezésben

1. lépés: Írja be a következő lekérdezést a lekérdező szerkesztőbe:

INSERT INTO EmployeesVALUES(2,'Kate Joel','{"(408)-783-5731"}'),(3,'James Bush','{"(408)-745-8965","(408)-567-78234"}');

2. lépés) Kattintson az Execute gombra:

Tömbadatok lekérdezése

1. lépés : Az Alkalmazottak tábla tartalmának megtekintéséhez írja be a következő lekérdezést a lekérdező szerkesztőbe:

SELECT * FROM Employees;

2. lépés) Kattintson az Execute gombra:

Ennek vissza kell adnia a következőket:

3. lépés : Az alkalmazottak első kapcsolatainak megtekintése:

  1. Írja be a következő lekérdezést a lekérdező szerkesztőbe:
    SELECT name, contact[1]FROM Employees;
  2. Kattintson az Execute gombra.

Ennek vissza kell adnia a következőket:

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

  1. Írja be a következő parancsot a lekérdező szerkesztőbe:
    SELECTnameFROMEmployeesWHEREcontact [ 2 ] = '(408)-567-78234';
  2. Kattintson az Execute gombra.

Ennek vissza kell adnia a következőket:

A PostgreSQL tömb módosítása

1. lépés: A felhasználó azonosítójának 3 azonosítóval történő frissítéséhez futtassa a következő parancsot:

UPDATE EmployeesSET contact [ 2 ] = '(408)-589-89347'WHEREid = 3;

2. lépés) Kattintson az Execute gombra.

3. lépés)

1. Írja be a következő parancsot a lekérdező szerkesztőbe, hogy ellenőrizze, hogy a változás sikeres-e:

SELECT * FROM Employees;

2. Kattintson az Execute gombra.

Ennek vissza kell adnia a következőket:

Keresés egy PostgreSQL tömbben

1. lépés: Írja be a következő lekérdezést a lekérdező szerkesztőbe:

SELECTname,contactFROMEmployeesWHERE'(408)-783-5731' = ANY (contact);

2. lépés) Kattintson az Execute gombra.

Ennek vissza kell adnia a következőket:

Tömbök bővítése

1. lépés: Írja be a következő lekérdezést a lekérdező szerkesztőbe:

SELECTname,unnest(contact)FROMEmployees;

2. lépés) Kattintson az Execute gombra.

Ennek vissza kell adnia a következőket:

Összegzés:

  • A PostgreSQL lehetővé teszi számunkra, hogy egy tábla oszlopot tömbtípusként definiáljunk.
  • A tömbnek érvényes adattípusnak kell lennie, például egész számnak, karakternek vagy felhasználó által definiált típusnak.
  • Az értékek tömb oszlopba történő beszúrásához az ARRAY konstruktort használjuk.
  • Ha egy tömboszlop ugyanazon sorában egynél több elem van, akkor az első elem az 1. pozícióban van.
  • Minden érték elérhetõ, ha egy szekciót szögletes zárójelbe teszünk [].
  • A tömb elemeit a SELECT utasítással lehet lekérni.
  • A tömboszlop értékei szögletes zárójelbe [] vagy göndör zárójelbe {} foglalhatók.
  • Kereshetünk tömb oszlopértékeket az ANY () függvény segítségével.

Töltse le az oktatóanyagban használt adatbázist