Kas yra „PostgreSQL“ masyvas?
„PostgreSQL“ stulpelį galime apibrėžti kaip galiojančių duomenų tipų masyvą. Duomenų tipas gali būti įmontuotas, vartotojo apibrėžtas arba išvardytas. Be to, masyvai vaidina svarbų vaidmenį „PostgreSQL“.
Kiekvienas atitinkamas „PostgreSQL“ duomenų tipas pateikiamas su atitinkamu masyvo tipu. Pvz., Sveikojo skaičiaus duomenų tipas turi sveiko skaičiaus [] masyvo tipą, simbolio duomenų tipas turi simbolio [] masyvo tipą ir kt.
Šioje „PostgreSQL“ pamokoje sužinosite:
- Kas yra „PostgreSQL“ masyvas?
- „PostgreSQL“ masyvų kūrimas
- Įterpiamos „PostgreSQL“ masyvo vertės
- Užklausa dėl masyvo duomenų
- „PostgreSQL“ masyvo modifikavimas
- Paieška „PostgreSQL“ masyve
- Masyvų plėtimas
- Naudojant pgAdmin
„PostgreSQL“ masyvų kūrimas
Šiame pavyzdyje sukursime lentelę pavadinimu „Darbuotojai“ su kontaktiniu stulpeliu, apibrėžtu kaip teksto masyvas:
CREATE TABLE Employees (id int PRIMARY KEY,name VARCHAR (100),contact TEXT []);
Komanda turėtų veikti sėkmingai.
Įterpiamos „PostgreSQL“ masyvo vertės
Dabar įterpkime vertes į aukščiau pateiktą lentelę:
INSERT INTO EmployeesVALUES(1,'Alice John',ARRAY [ '(408)-743-9045','(408)-567-7834' ]);
Įterpimas turėtų vykti sėkmingai.
Trečiojo stulpelio, ty kontakto, vertės buvo įterptos kaip masyvas. Tai pasiekta naudojant ARRAY konstruktorių.
Šiame pavyzdyje mes juos įtraukėme laužtiniuose skliaustuose []. Mes turime du kontaktus su darbuotoja Alice John.
Vis dar galime naudoti garbanotas petnešas {}, kaip parodyta žemiau:
INSERT INTO EmployeesVALUES(2,'Kate Joel','{"(408)-783-5731"}'),(3,'James Bush','{"(408)-745-8965","(408)-567-78234"}');
Komanda turėtų būti sėkmingai vykdoma.
Pirmiau pateikti teiginiai į lentelę „Darbuotojai“ įterps dvi eilutes. Naudojant garbanotas petnešas, masyvas įvyniojamas į kabutes ('), o teksto masyvo elementai - į dvigubas kabutes (").
Užklausa dėl masyvo duomenų
Norėdami pateikti užklausą masyvo elementams, naudojame SELECT sakinį.
Norėdami pamatyti lentelės „Darbuotojai“ turinį, vykdome šią komandą:
SELECT * FROM Employees;
Tai grąžina:
Masyvo stulpelio elementai, tai yra kontaktas, buvo uždengti garbanotaisiais petnešomis {}.
Norėdami pasiekti pačius masyvo elementus, kvadratiniuose skliaustuose pridedame indeksą []. Pirmasis masyvo elementas yra 1 pozicijoje.
Pavyzdžiui, turime gauti darbuotojų vardus ir tik pirmąjį kontaktą tiems darbuotojams, kurie turi daugiau nei vieną kontaktą. Tai galime pasiekti kaip kontaktą [1].
Pažiūrėkime tai:
SELECT name, contact[1]FROM Employees;
Tai grąžins:
Mes galime naudoti sakinį SELECT kartu su WHERE sąlyga, kad filtruotume eilutes pagal masyvo stulpelį.
Pavyzdžiui, norėdami pamatyti darbuotoją su (408) -567-78234 kaip antrą kontaktą, galime paleisti šią komandą:
SELECTnameFROMEmployeesWHEREcontact [ 2 ] = '(408)-567-78234';
Tai grąžins:
„PostgreSQL“ masyvo modifikavimas
Galite atnaujinti visą ar vieną masyvo elementą.
Čia yra lentelės „Darbuotojai“ turinys:
Atnaujinkime antrąjį darbuotojo Jameso Busho, kurio ID yra 3, telefono numerį:
Paleiskite šią komandą:
UPDATE EmployeesSET contact [ 2 ] = '(408)-589-89347'WHEREid = 3;
Komanda turėtų būti sėkmingai paleista:
Pateikime užklausą lentelėje, kad patikrintume, ar pakeitimas buvo sėkmingas:
Keitimas buvo sėkmingas.
Paieška „PostgreSQL“ masyve
Šiuo metu mūsų lentelė „Darbuotojai“ yra tokia:
Tarkime, kad turime žinoti, kam priklauso kontaktas (408) -783-5731, neatsižvelgiant į padėtį kontaktų masyve, galime naudoti funkciją BETKURI (), kaip parodyta žemiau:
SELECTname,contactFROMEmployeesWHERE'(408)-783-5731' = ANY (contact);
Tai grąžins:
Masyvų plėtimas
Masyvo vertes galime suskirstyti į eilutes. Šis procesas yra žinomas kaip masyvo išplėtimas.
Lentelės „Darbuotojai“ pavyzdyje kontaktų masyve yra keli darbuotojai, turintys du kontaktus. Tai galime suskirstyti į atskiras eilutes.
„PostgreSQL“ suteikia bjauriausią () funkciją, kurią tam galima naudoti.
Pavyzdžiui:
SELECTname,unnest(contact)FROMEmployees;
Tai grąžins:
Darbuotojai Alice John ir James Bush turi du kontaktus. Mes galime suskirstyti į atskiras eilutes.
Naudojant pgAdmin
„PostgreSQL“ masyvų kūrimas
Norėdami tai padaryti per „pgAdmin“, atlikite tai:
1 veiksmas) Prisijunkite prie „pgAdmin“ paskyros.
2 žingsnis)
- Iš kairės naršymo juostos spustelėkite rbases.
- Spustelėkite Demo mygtuką
3 žingsnis. Įveskite užklausą užklausos redagavimo priemonėje, kad sukurtumėte lentelę „Darbuotojai“:
CREATE TABLE Employees (id int PRIMARY KEY,name VARCHAR (100),contact TEXT []);
4 žingsnis) Spustelėkite mygtuką Vykdyti.
Įterpiamos „PostgreSQL“ masyvo vertės
1 žingsnis. Įveskite šią užklausą į užklausų rengyklę:
INSERT INTO EmployeesVALUES(1,'Alice John',ARRAY [ '(408)-743-9045','(408)-567-7834' ]);
2 žingsnis) Spustelėkite mygtuką Vykdyti:
3 žingsnis)
Norėdami naudoti užklausoje garbanotus petnešus
1 žingsnis. Įveskite šią užklausą į užklausų rengyklę:
INSERT INTO EmployeesVALUES(2,'Kate Joel','{"(408)-783-5731"}'),(3,'James Bush','{"(408)-745-8965","(408)-567-78234"}');
2 žingsnis) Spustelėkite mygtuką Vykdyti:
Užklausa dėl masyvo duomenų
1 žingsnis. Norėdami pamatyti lentelės „Darbuotojai“ turinį, užklausų redagavimo priemonėje įveskite šią užklausą:
SELECT * FROM Employees;
2 žingsnis) Spustelėkite mygtuką Vykdyti:
Tai turėtų grąžinti:
3 žingsnis. Norėdami pamatyti pirmuosius darbuotojų kontaktus:
- Įveskite šią užklausą į užklausų rengyklę:
SELECT name, contact[1]FROM Employees;
- Spustelėkite mygtuką Vykdyti.
Tai turėtų grąžinti:
4 žingsnis) Norėdami sujungti SELECT sakinį su WHERE sąlyga:
- Užklausų rengyklėje įveskite šią komandą:
SELECTnameFROMEmployeesWHEREcontact [ 2 ] = '(408)-567-78234';
- Spustelėkite mygtuką Vykdyti.
Tai turėtų grąžinti:
„PostgreSQL“ masyvo modifikavimas
1 žingsnis. Norėdami atnaujinti antrąjį vartotojo kontaktą, kurio ID yra 3, vykdykite šią komandą:
UPDATE EmployeesSET contact [ 2 ] = '(408)-589-89347'WHEREid = 3;
2 žingsnis) Spustelėkite mygtuką Vykdyti.
3 žingsnis)
1. Norėdami patikrinti, ar pakeitimas buvo sėkmingas, užklausų rengyklėje įveskite šią komandą:
SELECT * FROM Employees;
2. Spustelėkite mygtuką Vykdyti.
Tai turėtų grąžinti:
Paieška „PostgreSQL“ masyve
1 žingsnis. Įveskite šią užklausą į užklausų rengyklę:
SELECTname,contactFROMEmployeesWHERE'(408)-783-5731' = ANY (contact);
2 žingsnis) Spustelėkite mygtuką Vykdyti.
Tai turėtų grąžinti:
Masyvų plėtimas
1 žingsnis. Įveskite šią užklausą į užklausų rengyklę:
SELECTname,unnest(contact)FROMEmployees;
2 žingsnis) Spustelėkite mygtuką Vykdyti.
Tai turėtų grąžinti:
Santrauka:
- „PostgreSQL“ leidžia lentelės stulpelį apibrėžti kaip masyvo tipą.
- Masyvas turi būti galiojančio duomenų tipo, pvz., Sveikasis skaičius, simboliai arba vartotojo apibrėžti tipai.
- Norėdami įterpti reikšmes į masyvo stulpelį, mes naudojame ARRAY konstruktorių.
- Jei toje pačioje masyvo stulpelio eilutėje yra daugiau nei vienas elementas, pirmasis elementas yra 1 pozicijoje.
- Kiekvieną vertę galima pasiekti perduodant indeksą laužtiniuose skliaustuose [].
- Masyvo elementus galima gauti naudojant SELECT sakinį.
- Masyvo stulpelio reikšmės gali būti uždėtos laužtiniuose skliaustuose [] arba garbanotose petnešose {}.
- Masyvo stulpelių reikšmių galime ieškoti naudodami funkciją ANY ().
Atsisiųskite šioje pamokoje naudojamą duomenų bazę