Mis on PostgreSQL massiiv?
PostgreSQL-is saame veeru määratleda kehtivate andmetüüpide massiivina. Andmetüüp võib olla sisseehitatud, kasutaja määratletud või loetletud tüüp. Peale selle mängivad massiivid PostgreSQL-is olulist rolli.
Igal vastaval PostgreSQL andmetüübil on asjakohane massiivi tüüp. Näiteks täisarvu andmetüübil on täisarv [] massiivi tüüp, tähemärgi andmetüübil on massiivi tüüp [] jne.
Selles PostgreSQL-i õpetuses saate teada:
- Mis on PostgreSQL massiiv?
- PostgreSQL massiivide loomine
- PostgreSQL massiivi väärtuste sisestamine
- Massiiviandmete päring
- PostgreSQL massiivi muutmine
- PostgreSQL massiivi otsimine
- Massiivide laiendamine
- PgAdmini kasutamine
PostgreSQL massiivide loomine
Järgmises näites loome tabeli nimega Töötajad, kus kontaktiveerg on määratletud tekstimassiivina:
CREATE TABLE Employees (id int PRIMARY KEY,name VARCHAR (100),contact TEXT []);
Käsk peaks edukalt töötama.
PostgreSQL massiivi väärtuste sisestamine
Lisagem nüüd ülaltoodud tabelisse väärtused:
INSERT INTO EmployeesVALUES(1,'Alice John',ARRAY [ '(408)-743-9045','(408)-567-7834' ]);
Sisestamine peaks edukalt toimima.
Kolmanda veeru ehk kontakti väärtused on sisestatud massiivina. See on saavutatud ARRAY konstruktori abil.
Selles näites oleme need pannud nurksulgudesse []. Töötaja Alice Johni jaoks on meil kaks kontakti.
Meil on endiselt võimalik kasutada lokkis klambreid {}, nagu allpool näidatud:
INSERT INTO EmployeesVALUES(2,'Kate Joel','{"(408)-783-5731"}'),(3,'James Bush','{"(408)-745-8965","(408)-567-78234"}');
Käsk peaks käivituma edukalt.
Ülaltoodud avaldused lisavad tabelisse Töötajad kaks rida. Lokkisulgude kasutamisel on massiiv mähitud üksikute jutumärkide (') sisse, tekstimassiivi üksused aga jutumärkidesse (").
Massiiviandmete päring
Massiivi elementide päringuteks kasutame käsku SELECT.
Töötajate tabeli sisu nägemiseks käivitame järgmise käsu:
SELECT * FROM Employees;
See tagastab järgmise:
Massiiviveeru elemendid, see tähendab kontakt, on suletud lokkisulgudesse {}.
Massiivielementide juurde pääsemiseks lisame nurksulgudesse alaindeksi []. Massiivi esimene element asub positsioonil 1.
Näiteks peame saama töötajate nimed ja ainult nende esimese kontakti nende töötajate jaoks, kellel on rohkem kui üks kontakt. Sellele pääseme juurde kui kontakt [1].
Vaatame seda:
SELECT name, contact[1]FROM Employees;
See annab järgmise tulemuse:
Massiivi veeru põhjal ridade filtreerimiseks saame kasutada lauset SELECT koos WHERE-klausliga.
Näiteks töötaja (408) -567-78234 nägemiseks teise kontaktina võime käivitada järgmise käsu:
SELECTnameFROMEmployeesWHEREcontact [ 2 ] = '(408)-567-78234';
See annab järgmise tulemuse:
PostgreSQL massiivi muutmine
Saate värskendada massiivi kõiki või ühte elementi.
Siin on tabeli Töötajad sisu:
Uuendame töötaja James Bushi, kelle ID on 3, teist telefoninumbrit:
Käivitage järgmine käsk:
UPDATE EmployeesSET contact [ 2 ] = '(408)-589-89347'WHEREid = 3;
Käsk peaks käivituma edukalt:
Küsigem tabelis, et kontrollida, kas muudatus õnnestus:
Muudatus oli edukas.
PostgreSQL massiivi otsimine
Praegu on meie töötajate tabel järgmine:
Oletame, et peame teadma, kellele kuulub kontakt (408) -783-5731, olenemata kontaktimassiivi asukohast, saame kasutada funktsiooni ANY (), nagu allpool näidatud:
SELECTname,contactFROMEmployeesWHERE'(408)-783-5731' = ANY (contact);
See annab järgmise tulemuse:
Massiivide laiendamine
Saame massiivi väärtused jagada ridadeks. Seda protsessi nimetatakse massiivi laiendamiseks.
Töötajate tabeli näites on kontaktmassiivis mõned töötajad, kellel on kaks kontakti. Saame need jagada eraldi ridadeks.
PostgreSQL pakub kõige ebameeldivamat funktsiooni (), mida selleks kasutada saab.
Näiteks:
SELECTname,unnest(contact)FROMEmployees;
See annab järgmise tulemuse:
Töötajatel Alice Johnil ja James Bushil on kaks kontakti. Saame jagada eraldi ridadeks.
PgAdmini kasutamine
PostgreSQL massiivide loomine
Sama saavutamiseks pgAdmini kaudu tehke seda:
Samm 1) Logige sisse oma pgAdmini kontole.
2. samm)
- Vasakul navigeerimisribal klõpsake rbases.
- Klõpsake nuppu Demo
3. samm. Tabeli Töötajad loomiseks sisestage päring redaktorisse:
CREATE TABLE Employees (id int PRIMARY KEY,name VARCHAR (100),contact TEXT []);
Samm 4) Klõpsake nuppu Execute.
PostgreSQL massiivi väärtuste sisestamine
Samm 1) Sisestage päringiredaktorisse järgmine päring:
INSERT INTO EmployeesVALUES(1,'Alice John',ARRAY [ '(408)-743-9045','(408)-567-7834' ]);
Samm 2) Klõpsake nuppu Käivita:
3. samm)
Päringus lokkis klambrite kasutamiseks
Samm 1) Sisestage päringiredaktorisse järgmine päring:
INSERT INTO EmployeesVALUES(2,'Kate Joel','{"(408)-783-5731"}'),(3,'James Bush','{"(408)-745-8965","(408)-567-78234"}');
Samm 2) Klõpsake nuppu Käivita:
Massiiviandmete päring
1. samm. Tabeli Töötajate sisu nägemiseks tippige päringiredaktorisse järgmine päring:
SELECT * FROM Employees;
Samm 2) Klõpsake nuppu Käivita:
See peaks tagastama järgmise:
Samm 3) Töötajate esimeste kontaktide nägemiseks toimige järgmiselt.
- Sisestage päringiredaktorisse järgmine päring:
SELECT name, contact[1]FROM Employees;
- Klõpsake nuppu Execute.
See peaks tagastama järgmise:
Samm 4) SELECT-lause kombineerimiseks klausliga WHERE:
- Sisestage päringiredaktorisse järgmine käsk:
SELECTnameFROMEmployeesWHEREcontact [ 2 ] = '(408)-567-78234';
- Klõpsake nuppu Execute.
See peaks tagastama järgmise:
PostgreSQL massiivi muutmine
Samm 1) Kasutaja ID-ga 3 teise kontakti värskendamiseks käivitage järgmine käsk:
UPDATE EmployeesSET contact [ 2 ] = '(408)-589-89347'WHEREid = 3;
Samm 2) Klõpsake nuppu Execute.
3. samm)
1. Sisestage päringiredaktorisse järgmine käsk, et kontrollida, kas muudatus õnnestus:
SELECT * FROM Employees;
2. Klõpsake nuppu Execute.
See peaks tagastama järgmise:
PostgreSQL massiivi otsimine
Samm 1) Sisestage päringiredaktorisse järgmine päring:
SELECTname,contactFROMEmployeesWHERE'(408)-783-5731' = ANY (contact);
Samm 2) Klõpsake nuppu Execute.
See peaks tagastama järgmise:
Massiivide laiendamine
Samm 1) Sisestage päringiredaktorisse järgmine päring:
SELECTname,unnest(contact)FROMEmployees;
Samm 2) Klõpsake nuppu Execute.
See peaks tagastama järgmise:
Kokkuvõte:
- PostgreSQL võimaldab meil määratleda tabeli veeru massiivi tüübina.
- Massiiv peab olema kehtiva andmetüübiga, näiteks täisarv, märk või kasutaja määratud tüübid.
- Väärtuste sisestamiseks massiivi veergu kasutame ARRAY konstruktorit.
- Kui massiiviveeru samas reas on rohkem kui üks element, on esimene element positsioonil 1.
- Igale väärtusele pääseb juurde, sisestades nurksulgudes alaindeksi [].
- Massiivi elemente saab hankida käsu SELECT abil.
- Massiiviveeru väärtused võib lisada nurksulgudesse [] või lokkisulgudesse {}.
- Massiiviveergude väärtusi saame otsida funktsiooni ANY () abil.
Laadige alla selles õpetuses kasutatud andmebaas