PostgreSQL niz: funkcije, vrsta, primjer

Sadržaj:

Anonim

Što je PostgreSQL niz?

U PostgreSQL-u možemo definirati stupac kao niz valjanih vrsta podataka. Tip podataka može biti ugrađen, korisnički definiran ili nabrojan. Osim ovoga, nizovi igraju važnu ulogu u PostgreSQL-u.

Svaki odgovarajući tip podataka PostgreSQL dolazi s odgovarajućim tipom polja. Na primjer, vrsta podataka s cijelim brojem ima tip polja tipa integer [], tip podataka s znakovima ima tip polja s nizom [] itd.

U ovom vodiču za PostgreSQL naučit ćete:

  • Što je PostgreSQL niz?
  • Stvaranje PostgreSQL nizova
  • Umetanje vrijednosti polja PostgreSQL
  • Upit za podatke niza
  • Modificiranje PostgreSQL niza
  • Traženje u PostgreSQL nizu
  • Proširivanje nizova
  • Korištenje pgAdmin

Stvaranje PostgreSQL nizova

U sljedećem primjeru stvorit ćemo tablicu nazvanu Zaposlenici sa stupcem kontakata definiranim kao tekstualni niz:

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

Naredba bi se trebala uspješno pokrenuti.

Umetanje vrijednosti polja PostgreSQL

Umetnimo sada vrijednosti u gornju tablicu:

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

Umetanje bi trebalo uspješno izvesti.

Vrijednosti trećeg stupca, odnosno kontakta, umetnute su kao niz. To je postignuto korištenjem konstruktora ARRAY.

U ovom smo ih primjeru zatvorili u uglate zagrade []. Imamo dva kontakta za zaposlenicu Alice John.

Još uvijek je moguće koristiti kovrčave zagrade {} kao što je prikazano dolje:

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

Naredba bi se trebala uspješno pokrenuti.

Gornje izjave umetnut će dva reda u tablicu Zaposlenici. Kada se koriste kovrčave zagrade, niz je umotan u pojedinačne navodnike ('), dok su stavke tekstnog niza u dvostruke navodnike (").

Upit za podatke niza

Za upit elemenata niza koristimo naredbu SELECT.

Da bismo vidjeli sadržaj naše tablice Zaposlenici, izvodimo sljedeću naredbu:

SELECT * FROM Employees;

Ovo vraća sljedeće:

Elementi stupca niza, odnosno kontakt, zatvoreni su u vitičaste zagrade {}.

Da bismo pristupili samim elementima niza, dodajemo indeks unutar uglatih zagrada []. Prvi element u nizu nalazi se na položaju 1.

Na primjer, trebamo dobiti imena zaposlenika i samo njihov prvi kontakt za one zaposlenike s više od jednog kontakta. Ovome možemo pristupiti kao kontakt [1].

Da vidimo ovo:

SELECT name, contact[1]FROM Employees;

Ovo će vratiti sljedeće:

Izraz SELECT možemo koristiti zajedno s klauzulom WHERE za filtriranje redaka na temelju stupca niza.

Na primjer, da bismo vidjeli zaposlenika s (408) -567-78234 kao drugim kontaktom, možemo pokrenuti sljedeću naredbu:

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

Ovo će vratiti sljedeće:

Modificiranje PostgreSQL niza

Možete ažurirati sve ili jedan element niza.

Sadržaj tablice Zaposlenici:

Ažurirajmo drugi telefonski broj zaposlenika Jamesa Busha čiji je id 3:

Pokrenite sljedeću naredbu:

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

Naredba bi se trebala uspješno pokrenuti:

Upitajmo tablicu da provjerimo je li promjena bila uspješna:

Promjena je bila uspješna.

Traženje u PostgreSQL nizu

Trenutno je tablica naših zaposlenika sljedeća:

Pretpostavimo da moramo znati tko je vlasnik kontakta (408) -783-5731 bez obzira na položaj unutar polja kontakata, možemo koristiti funkciju ANY () kako je prikazano u nastavku:

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

Ovo će vratiti sljedeće:

Proširivanje nizova

Vrijednosti niza možemo podijeliti u retke. Taj je postupak poznat kao proširivanje niza.

U primjeru tablice Zaposlenici postoje neki zaposlenici s dva kontakta u nizu kontakata. Možemo ih podijeliti u zasebne redove.

PostgreSQL nudi funkciju unnest () koja se za to može koristiti.

Na primjer:

SELECTname,unnest(contact)FROMEmployees;

Ovo će vratiti sljedeće:

Djelatnici Alice John i James Bush imaju dva kontakta. Možemo se podijeliti u zasebne redove.

Korištenje pgAdmin

Stvaranje PostgreSQL nizova

Da biste to postigli putem pgAdmina, učinite ovo:

Korak 1) Prijavite se na svoj pgAdmin račun.

Korak 2)

  1. Na navigacijskoj traci slijeva- kliknite rbases.
  2. Kliknite demo gumb

Korak 3) Upišite upit u uređivač upita da biste stvorili tablicu Zaposlenici:

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

Korak 4) Kliknite gumb Izvrši.

Umetanje vrijednosti polja PostgreSQL

Korak 1) Upišite sljedeći upit u uređivač upita:

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

Korak 2) Kliknite gumb Izvrši:

Korak 3)

Za upotrebu kovrčavih zagrada u upitu

Korak 1) Upišite sljedeći upit u uređivač upita:

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

Korak 2) Kliknite gumb Izvrši:

Upit za podatke niza

Korak 1) Da biste vidjeli sadržaj tablice Employees, upišite sljedeći upit u uređivač upita:

SELECT * FROM Employees;

Korak 2) Kliknite gumb Izvrši:

Trebao bi vratiti sljedeće:

Korak 3) Da biste vidjeli prve kontakte zaposlenika:

  1. Upišite sljedeći upit u uređivač upita:
    SELECT name, contact[1]FROM Employees;
  2. Kliknite gumb Izvrši.

Trebao bi vratiti sljedeće:

Korak 4) Za kombiniranje naredbe SELECT s klauzulom WHERE:

  1. Upišite sljedeću naredbu u uređivač upita:
    SELECTnameFROMEmployeesWHEREcontact [ 2 ] = '(408)-567-78234';
  2. Kliknite gumb Izvrši.

Trebao bi vratiti sljedeće:

Modificiranje PostgreSQL niza

Korak 1) Da biste ažurirali drugi kontakt korisnika s id-om 3, pokrenite sljedeću naredbu:

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

Korak 2) Kliknite gumb Izvrši.

Korak 3)

1. Utipkajte sljedeću naredbu u uređivač upita da biste provjerili je li promjena bila uspješna:

SELECT * FROM Employees;

2. Pritisnite gumb Izvrši.

Trebao bi vratiti sljedeće:

Traženje u PostgreSQL nizu

Korak 1) Upišite sljedeći upit u uređivač upita:

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

Korak 2) Kliknite gumb Izvrši.

Trebao bi vratiti sljedeće:

Proširivanje nizova

Korak 1) Upišite sljedeći upit u uređivač upita:

SELECTname,unnest(contact)FROMEmployees;

Korak 2) Kliknite gumb Izvrši.

Trebao bi vratiti sljedeće:

Sažetak:

  • PostgreSQL omogućuje nam definiranje stupca tablice kao tipa polja.
  • Niz mora biti valjanog tipa podataka, poput cijelog broja, znaka ili korisnički definiranog tipa.
  • Za umetanje vrijednosti u stupac niza koristimo konstruktor ARRAY.
  • Ako se u istom retku stupca niza nalazi više elemenata, prvi je element na položaju 1.
  • Svakoj se vrijednosti može pristupiti dodavanjem indeksa u uglate zagrade [].
  • Elementi niza mogu se dohvatiti pomoću naredbe SELECT.
  • Vrijednosti stupca polja mogu se zatvoriti u uglate zagrade [] ili kovrčave zagrade {}.
  • Vrijednosti stupaca polja možemo pretraživati ​​pomoću funkcije ANY ().

Preuzmite bazu podataka korištenu u ovom vodiču