Š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)
- Na navigacijskoj traci slijeva- kliknite rbases.
- 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:
- Upišite sljedeći upit u uređivač upita:
SELECT name, contact[1]FROM Employees;
- Kliknite gumb Izvrši.
Trebao bi vratiti sljedeće:
Korak 4) Za kombiniranje naredbe SELECT s klauzulom WHERE:
- Upišite sljedeću naredbu u uređivač upita:
SELECTnameFROMEmployeesWHEREcontact [ 2 ] = '(408)-567-78234';
- 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