Pole PostgreSQL: Funkcie, typ, príklad

Obsah:

Anonim

Čo je PostgreSQL Array?

V PostgreSQL môžeme definovať stĺpec ako pole platných dátových typov. Dátový typ môže byť vstavaný, používateľom definovaný alebo vymenovaný. Okrem toho majú polia v PostgreSQL dôležitú úlohu.

Každý zodpovedajúci dátový typ PostgreSQL je dodávaný s relevantným typom poľa. Napríklad celočíselný údajový typ má celé pole [] typ poľa, znakový údajový typ má znak [] typ poľa atď.

V tomto výučbe PostgreSQL sa dozviete:

  • Čo je PostgreSQL Array?
  • Vytváranie postgreSQL polí
  • Vkladanie hodnôt poľa PostgreSQL
  • Dotaz na údaje poľa
  • Úprava poľa PostgreSQL
  • Vyhľadávanie v PostgreSQL poli
  • Rozširujúce sa polia
  • Pomocou pgAdmin

Vytváranie postgreSQL polí

V nasledujúcom príklade vytvoríme tabuľku s názvom Zamestnanci so stĺpcom kontaktu definovaným ako textové pole:

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

Príkaz by sa mal úspešne spustiť.

Vkladanie hodnôt poľa PostgreSQL

Teraz vložíme hodnoty do tabuľky vyššie:

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

Vloženie by malo úspešne prebehnúť.

Hodnoty tretieho stĺpca, teda kontakt, boli vložené ako pole. Toto sa dosiahlo použitím konštruktora ARRAY.

V tomto príklade sme ich uzavreli do hranatých zátvoriek []. Máme dva kontakty na zamestnankyňu Alice John.

Stále je možné, aby sme používali zložené zátvorky {}, ako je uvedené nižšie:

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

Príkaz by sa mal úspešne spustiť.

Vyššie uvedené príkazy vložia dva riadky do tabuľky Zamestnanci. Pri použití zložených zátvoriek je pole zalomené do jednoduchých úvodzoviek ('), zatiaľ čo položky textového poľa do dvojitých úvodzoviek (").

Dotaz na údaje poľa

Na dotazovanie prvkov poľa používame príkaz SELECT.

Ak chcete zobraziť obsah našej tabuľky Zamestnanci, spustíme nasledujúci príkaz:

SELECT * FROM Employees;

Takto sa vráti toto:

Prvky stĺpca poľa, to znamená kontakt, boli uzavreté v zložených zátvorkách {}.

Pre prístup k samotným prvkom poľa pridáme dolný index v hranatých zátvorkách []. Prvý prvok v poli je na pozícii 1.

Napríklad potrebujeme získať mená zamestnancov a iba ich prvý kontakt pre tých zamestnancov, ktorí majú viac ako jeden kontakt. K tomuto môžeme získať prístup ako kontakt [1].

Uvidíme toto:

SELECT name, contact[1]FROM Employees;

Takto sa vráti toto:

Na filtrovanie riadkov na základe stĺpca poľa môžeme použiť príkaz SELECT spolu s klauzulou WHERE.

Napríklad, aby sme videli zamestnanca s (408) -567-78234 ako druhým kontaktom, môžeme spustiť nasledujúci príkaz:

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

Takto sa vráti toto:

Úprava poľa PostgreSQL

Môžete aktualizovať všetky alebo jeden prvok poľa.

Tu je obsah tabuľky Zamestnanci:

Aktualizujme druhé telefónne číslo zamestnanca Jamesa Busha, ktorého id je 3:

Spustite nasledujúci príkaz:

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

Príkaz by sa mal úspešne spustiť:

Dotazom na tabuľku skontrolujeme, či bola zmena úspešná:

Zmena bola úspešná.

Vyhľadávanie v PostgreSQL poli

V súčasnosti je naša tabuľka Zamestnanci nasledovná:

Predpokladajme, že potrebujeme vedieť, komu patrí kontakt (408) -783-5731 bez ohľadu na pozíciu v poli kontaktov, môžeme použiť funkciu ANY (), ako je uvedené nižšie:

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

Takto sa vráti toto:

Rozširujúce sa polia

Hodnoty poľa môžeme rozdeliť do riadkov. Tento proces sa nazýva rozšírenie poľa.

V príklade tabuľky Zamestnanci sú niektorí zamestnanci s dvoma kontaktmi v poli kontaktov. Tieto môžeme rozdeliť do samostatných riadkov.

PostgreSQL poskytuje funkciu unnest (), ktorú je možné na tento účel použiť.

Napríklad:

SELECTname,unnest(contact)FROMEmployees;

Takto sa vráti toto:

Zamestnanci Alice John a James Bush majú dva kontakty. Môžeme rozdeliť do samostatných riadkov.

Pomocou pgAdmin

Vytváranie postgreSQL polí

To isté dosiahnete prostredníctvom pgAdmin:

Krok 1) Prihláste sa do svojho účtu pgAdmin.

Krok 2)

  1. Na navigačnej lište vľavo kliknite na rbase.
  2. Kliknite na tlačidlo Demo

Krok 3) Zadajte dotaz do editora dotazov a vytvorte tabuľku Zamestnanci:

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

Krok 4) Kliknite na tlačidlo Vykonať.

Vkladanie hodnôt poľa PostgreSQL

Krok 1) Do editora dotazov zadajte nasledujúci dotaz:

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

Krok 2) Kliknite na tlačidlo Vykonať:

Krok 3)

Ak chcete v dotaze použiť zložené zátvorky

Krok 1) Do editora dotazov zadajte nasledujúci dotaz:

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

Krok 2) Kliknite na tlačidlo Vykonať:

Dotaz na údaje poľa

Krok 1) Ak chcete zobraziť obsah tabuľky Zamestnanci, zadajte do editora dotazov nasledujúci dotaz:

SELECT * FROM Employees;

Krok 2) Kliknite na tlačidlo Vykonať:

Mal by vrátiť nasledujúce:

Krok 3) Zobrazenie prvých kontaktov zamestnancov:

  1. Do editora dotazov zadajte nasledujúci dotaz:
    SELECT name, contact[1]FROM Employees;
  2. Kliknite na tlačidlo Vykonať.

Mal by vrátiť nasledujúce:

Krok 4) Ak chcete skombinovať príkaz SELECT s klauzulou WHERE:

  1. Do editora dotazov zadajte nasledujúci príkaz:
    SELECTnameFROMEmployeesWHEREcontact [ 2 ] = '(408)-567-78234';
  2. Kliknite na tlačidlo Vykonať.

Mal by vrátiť nasledujúce:

Úprava poľa PostgreSQL

Krok 1) Ak chcete aktualizovať druhý kontakt používateľa s id 3, spustite nasledujúci príkaz:

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

Krok 2) Kliknite na tlačidlo Vykonať.

Krok 3)

1. Zadajte nasledujúci príkaz do editora dotazov a skontrolujte, či bola zmena úspešná:

SELECT * FROM Employees;

2. Kliknite na tlačidlo Vykonať.

Mal by vrátiť nasledujúce:

Vyhľadávanie v PostgreSQL poli

Krok 1) Do editora dotazov zadajte nasledujúci dotaz:

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

Krok 2) Kliknite na tlačidlo Vykonať.

Mal by vrátiť nasledujúce:

Rozširujúce sa polia

Krok 1) Do editora dotazov zadajte nasledujúci dotaz:

SELECTname,unnest(contact)FROMEmployees;

Krok 2) Kliknite na tlačidlo Vykonať.

Mal by vrátiť nasledujúce:

Zhrnutie:

  • PostgreSQL nám umožňuje definovať stĺpec tabuľky ako typ poľa.
  • Pole musí byť platného dátového typu, ako sú celé číslo, znaky alebo typy definované používateľom.
  • Na vloženie hodnôt do stĺpca poľa použijeme konštruktor ARRAY.
  • Ak je v tom istom riadku stĺpca poľa viac ako jeden prvok, je prvý prvok na pozícii 1.
  • Ku každej hodnote je možné získať prístup k dolnému indexu v hranatých zátvorkách [].
  • Prvky poľa je možné získať pomocou príkazu SELECT.
  • Hodnoty stĺpca poľa môžu byť uzavreté v hranatých zátvorkách [] alebo zložených zátvorkách {}.
  • Hodnoty stĺpcov poľa môžeme vyhľadať pomocou funkcie ANY ().

Stiahnite si databázu použitú v tomto výučbe