Pole PostgreSQL: Funkce, typ, příklad

Obsah:

Anonim

Co je PostgreSQL Array?

V PostgreSQL můžeme definovat sloupec jako pole platných datových typů. Datový typ může být vestavěný, uživatelem definovaný nebo výčtový typ. Kromě toho hrají pole v PostgreSQL důležitou roli.

Každý odpovídající datový typ PostgreSQL je dodáván s příslušným typem pole. Například celočíselný datový typ má celočíselný [] typ pole, znakový datový typ má znak [] typ pole atd.

V tomto tutoriálu PostgreSQL se naučíte:

  • Co je PostgreSQL Array?
  • Vytváření polí PostgreSQL
  • Vkládání hodnot pole PostgreSQL
  • Dotaz na data pole
  • Úprava pole PostgreSQL
  • Hledání v poli PostgreSQL
  • Rozšiřující se pole
  • Pomocí pgAdmin

Vytváření polí PostgreSQL

V následujícím příkladu vytvoříme tabulku s názvem Zaměstnanci se sloupcem kontaktu definovaným jako textové pole:

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

Příkaz by měl úspěšně fungovat.

Vkládání hodnot pole PostgreSQL

Vložme nyní hodnoty do výše uvedené tabulky:

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

Vložení by mělo proběhnout úspěšně.

Hodnoty třetího sloupce, tj. Kontaktu, byly vloženy jako pole. Toho bylo dosaženo použitím konstruktoru ARRAY.

V tomto příkladu jsme je uzavřeli do hranatých závorek []. Máme dva kontakty na zaměstnankyni Alice John.

Stále můžeme používat složené závorky {}, jak je znázorněno níže:

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

Příkaz by měl běžet úspěšně.

Výše uvedené příkazy vloží do tabulky Zaměstnanci dva řádky. Při použití složených závorek je pole zabaleno do jednoduchých uvozovek ('), zatímco položky textového pole jsou zabaleny do uvozovek (").

Dotaz na data pole

K dotazování na prvky pole používáme příkaz SELECT.

Chcete-li zobrazit obsah naší tabulky Zaměstnanci, spustíme následující příkaz:

SELECT * FROM Employees;

Tím se vrátí následující:

Prvky sloupce pole, tj. Kontakt, byly uzavřeny do složených závorek {}.

Pro přístup k samotným prvkům pole přidáme dolní index v hranatých závorkách []. První prvek v poli je na pozici 1.

Například potřebujeme získat jména zaměstnanců a pouze jejich první kontakt pro zaměstnance s více než jedním kontaktem. K tomu můžeme přistupovat jako kontakt [1].

Uvidíme toto:

SELECT name, contact[1]FROM Employees;

Tím se vrátí následující:

Můžeme použít příkaz SELECT společně s klauzulí WHERE k filtrování řádků na základě sloupce pole.

Například pro zobrazení zaměstnance s (408) -567-78234 jako druhým kontaktem můžeme spustit následující příkaz:

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

Tím se vrátí následující:

Úprava pole PostgreSQL

Můžete aktualizovat všechny nebo jeden prvek pole.

Tady je obsah tabulky Zaměstnanci:

Aktualizujme druhé telefonní číslo zaměstnance Jamese Bushe, jehož id je 3:

Spusťte následující příkaz:

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

Příkaz by měl běžet úspěšně:

Dotazem na tabulku ověříme, zda byla změna úspěšná:

Změna byla úspěšná.

Hledání v poli PostgreSQL

V současné době je naše tabulka Zaměstnanci následující:

Předpokládejme, že potřebujeme vědět, komu patří kontakt (408) -783-5731 bez ohledu na pozici v poli kontaktů, můžeme použít funkci ANY (), jak je znázorněno níže:

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

Tím se vrátí následující:

Rozšiřující se pole

Hodnoty pole můžeme rozdělit do řádků. Tento proces se nazývá expanze pole.

V příkladu tabulky Zaměstnanci jsou někteří zaměstnanci se dvěma kontakty v poli kontaktů. Můžeme je rozdělit do samostatných řádků.

PostgreSQL poskytuje funkci unnest (), kterou lze k tomu použít.

Například:

SELECTname,unnest(contact)FROMEmployees;

Tím se vrátí následující:

Zaměstnanci Alice John a James Bush mají dva kontakty. Můžeme se rozdělit do samostatných řádků.

Pomocí pgAdmin

Vytváření polí PostgreSQL

Chcete-li toho dosáhnout prostřednictvím pgAdmin, postupujte takto:

Krok 1) Přihlaste se ke svému účtu pgAdmin.

Krok 2)

  1. Na navigačním panelu vlevo klikněte na základny.
  2. Klikněte na tlačítko Demo

Krok 3) Zadejte dotaz do editoru dotazů a vytvořte tabulku Zaměstnanci:

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

Krok 4) Klikněte na tlačítko Provést.

Vkládání hodnot pole PostgreSQL

Krok 1) Zadejte následující dotaz do editoru dotazů:

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

Krok 2) Klikněte na tlačítko Provést:

Krok 3)

Chcete-li v dotazu použít složené závorky

Krok 1) Zadejte následující dotaz do editoru dotazů:

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

Krok 2) Klikněte na tlačítko Provést:

Dotaz na data pole

Krok 1) Chcete-li zobrazit obsah tabulky Zaměstnanci, zadejte do editoru dotazů následující dotaz:

SELECT * FROM Employees;

Krok 2) Klikněte na tlačítko Provést:

Mělo by vrátit následující:

Krok 3) Chcete-li zobrazit první kontakty zaměstnanců:

  1. Zadejte následující dotaz v editoru dotazů:
    SELECT name, contact[1]FROM Employees;
  2. Klikněte na tlačítko Provést.

Mělo by vrátit následující:

Krok 4) Chcete-li kombinovat příkaz SELECT s klauzulí WHERE:

  1. Do editoru dotazů zadejte následující příkaz:
    SELECTnameFROMEmployeesWHEREcontact [ 2 ] = '(408)-567-78234';
  2. Klikněte na tlačítko Provést.

Mělo by vrátit následující:

Úprava pole PostgreSQL

Krok 1) Chcete-li aktualizovat druhý kontakt uživatele s ID 3, spusťte následující příkaz:

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

Krok 2) Klikněte na tlačítko Provést.

Krok 3)

1. Zadejte následující příkaz do editoru dotazů a zkontrolujte, zda byla změna úspěšná:

SELECT * FROM Employees;

2. Klikněte na tlačítko Provést.

Mělo by vrátit následující:

Hledání v poli PostgreSQL

Krok 1) Zadejte následující dotaz do editoru dotazů:

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

Krok 2) Klikněte na tlačítko Provést.

Mělo by vrátit následující:

Rozšiřující se pole

Krok 1) Zadejte následující dotaz do editoru dotazů:

SELECTname,unnest(contact)FROMEmployees;

Krok 2) Klikněte na tlačítko Provést.

Mělo by vrátit následující:

Souhrn:

  • PostgreSQL nám umožňuje definovat sloupec tabulky jako typ pole.
  • Pole musí být platného datového typu, jako je celé číslo, znak nebo uživatelem definované typy.
  • K vložení hodnot do sloupce pole použijeme konstruktor ARRAY.
  • Pokud je ve stejném řádku sloupce pole více než jeden prvek, je první prvek na pozici 1.
  • Ke každé hodnotě lze přistupovat předáním dolního indexu v hranatých závorkách [].
  • Prvky pole lze načíst pomocí příkazu SELECT.
  • Hodnoty sloupce pole mohou být uzavřeny v hranatých závorkách [] nebo složených závorkách {}.
  • Hodnoty sloupců pole můžeme vyhledat pomocí funkce ANY ().

Stáhněte si databázi použitou v tomto výukovém programu