PostgreSQL Massiiv: funktsioonid, tüüp, näide
⚡ Nutikas kokkuvõte
PostgreSQL Massiiv võimaldab teil defineerida tabeli veeru mis tahes kehtiva andmetüübiga massiivina. See hõlmab massiivi veergude loomist, väärtuste sisestamist ARRAY konstruktori või looksulgudega, elementide päringute tegemist ja muutmist ning otsimist ANY() abil.
Mis on PostgreSQL Array?
In PostgreSQL, saame veeru defineerida kehtivate andmetüüpide massiivina. Andmetüüp võib olla sisseehitatud, kasutaja määratletud või loetletud tüüp. Lisaks sellele mängivad massiivid olulist rolli PostgreSQL.
Iga vastav PostgreSQL Andmetüübiga kaasneb vastav massiivitüüp. Näiteks täisarvu andmetüübi massiivitüüp on integer[], märgi andmetüübi massiivitüüp on character[] jne.
loomine PostgreSQL Massiraadid
Järgmises näites loome tabeli nimega Töötajad, mille kontakti veerg on määratletud tekstimassiivina:
CREATE TABLE Employees ( id int PRIMARY KEY, name VARCHAR (100), contact TEXT [] );
Käsk peaks edukalt töötama.
Sisestamine PostgreSQL Massiivi väärtused
Lase nüüd sisestada väärtused ülaltoodud tabelisse:
INSERT INTO Employees VALUES ( 1, 'Alice John', ARRAY [ '(408)-743-9045', '(408)-567-7834' ] );
Sisestamine peaks edukalt käima.
Kolmanda veeru ehk kontakti väärtused on lisatud massiivina. See on saavutatud ARRAY konstruktori abil. Selles näites oleme need pannud nurksulgudesse []. Meil on töötaja Alice Johni jaoks kaks kontakti.
Meil on endiselt võimalik kasutada lokkis trakse {}, nagu allpool näidatud:
INSERT INTO Employees VALUES ( 2, 'Kate Joel', '{"(408)-783-5731"}' ), ( 3, 'James Bush', '{"(408)-745-8965","(408)-567-78234"}' );
Käsk peaks edukalt töötama.
Ülaltoodud avaldused lisavad tabelisse Töötajad kaks rida. Kui kasutate lokkis sulgusid, mähitakse massiiv jutumärkidesse ('), tekstimassiivi elemendid aga topeltjutumärkidesse (").
Massiiviandmete päring
Massiivi elementide päringuks kasutame SELECT-lauset. Töötajate tabeli sisu nägemiseks käivitame järgmise käsu:
SELECT * FROM Employees;
See tagastab järgmise:
Massiivi veeru elemendid, st kontakt, on paigutatud looksulgudesse {}. Massiivi elementide endi juurde pääsemiseks lisame nurksulgudesse alaindeksi []. Massiivi esimene element asub positsioonil 1.
Näiteks peame hankima töötajate nimed ja ainult nende esimese kontakti nende töötajate puhul, kellel on rohkem kui üks kontakt. Me saame sellele ligi kontaktina[1]. Vaatame seda:
SELECT name, contact[1] FROM Employees;
See tagastab järgmise:
Massiivi veeru põhjal ridade filtreerimiseks saame kasutada SELECT-lauset koos WHERE-klausliga. Näiteks selleks, et näha töötajat, kelle kood on (408)-567-78234, teise kontaktina, saame käivitada järgmise käsu:
SELECT name FROM Employees WHERE contact [ 2 ] = '(408)-567-78234';
See tagastab järgmise:
Muutmine PostgreSQL Array
Saate uuendada kogu massiivi elementi või ainult ühte elementi. Siin on töötajate tabeli sisu:
Uuendame töötaja James Bushi teist telefoninumbrit, kelle id on 3:
Käivitage järgmine käsk:
UPDATE Employees SET contact [ 2 ] = '(408)-589-89347' WHERE id = 3;
Käsk peaks edukalt töötama:
Tehkem tabelist päring, et kontrollida, kas muudatus õnnestus:
Muutus õnnestus.
Otsimine a PostgreSQL Array
Praegu on meie töötajate tabel järgmine:
Oletame, et meil on vaja teada, kellele kuulub kontakt (408)-783-5731, olenemata selle positsioonist kontaktide massiivis. Saame kasutada funktsiooni ANY(), nagu allpool näidatud:
SELECT name, contact FROM Employees WHERE '(408)-783-5731' = ANY (contact);
See tagastab järgmise:
Laienevad massiivid
Massiivi väärtused saame jagada ridadeks. Seda protsessi nimetatakse massiivi laiendamiseks. Töötajate tabeli näites on kontaktide massiivis mõned töötajad, kellel on kaks kontakti. Saame need jagada eraldi ridadeks. PostgreSQL pakub selleks kasutatavat funktsiooni unnest(). Näiteks:
SELECT name, unnest(contact) FROM Employees;
See tagastab järgmise:
Töötajatel Alice Johnil ja James Bushil on kaks kontakti. Saame need jagada eraldi ridadesse.
pgAdmini kasutamine
loomine PostgreSQL Massiraadid
Sama tegemiseks pgAdmini kaudu tehke järgmist:
Step 1) Logige sisse oma pgAdmini kontole.
Step 2)
- Klõpsake vasakpoolsel navigeerimisribal valikul Andmebaasid.
- Klõpsake nupul Demo.
Step 3) Tabeli Töötajad loomiseks tippige päringuredaktorisse päring:
CREATE TABLE Employees ( id int PRIMARY KEY, name VARCHAR (100), contact TEXT [] );
Step 4) Klõpsake nuppu Käivita.
Sisestamine PostgreSQL Massiivi väärtused
Step 1) Tippige päringuredaktorisse järgmine päring:
INSERT INTO Employees VALUES ( 1, 'Alice John', ARRAY [ '(408)-743-9045', '(408)-567-7834' ] );
Step 2) Klõpsake nuppu Käivita:
Step 3) Looksulgude kasutamiseks päringus tippige päringuredaktorisse järgmine päring:
INSERT INTO Employees VALUES ( 2, 'Kate Joel', '{"(408)-783-5731"}' ), ( 3, 'James Bush', '{"(408)-745-8965","(408)-567-78234"}' );
Seejärel klõpsake nuppu Käivita:
Massiiviandmete päring
Step 1) Töötajate tabeli sisu kuvamiseks tippige päringuredaktorisse järgmine päring:
SELECT * FROM Employees;
Step 2) Klõpsake nuppu Käivita:
See peaks tagastama järgmise:
Step 3) Töötajate esimeste kontaktide nägemiseks tippige päringuredaktorisse järgmine päring ja klõpsake nuppu Käivita:
SELECT name, contact[1] FROM Employees;
See peaks tagastama järgmise:
Step 4) SELECT-lause ja WHERE-klausli kombineerimiseks tippige päringuredaktorisse järgmine käsk ja klõpsake nuppu Käivita:
SELECT name FROM Employees WHERE contact [ 2 ] = '(408)-567-78234';
See peaks tagastama järgmise:
Muutmine PostgreSQL Array
Step 1) Kasutaja teise kontakti värskendamiseks ID-ga 3 käivitage järgmine käsk:
UPDATE Employees SET contact [ 2 ] = '(408)-589-89347' WHERE id = 3;
Step 2) Klõpsake nuppu Käivita.
Step 3) Tippige päringuredaktorisse järgmine käsk, et kontrollida, kas muudatus õnnestus, ja seejärel klõpsake nuppu Käivita:
SELECT * FROM Employees;
See peaks tagastama järgmise:
Otsimine a PostgreSQL Array
Step 1) Tippige päringuredaktorisse järgmine päring:
SELECT name, contact FROM Employees WHERE '(408)-783-5731' = ANY (contact);
Step 2) Klõpsake nuppu Käivita.
See peaks tagastama järgmise:
Laienevad massiivid
Step 1) Tippige päringuredaktorisse järgmine päring:
SELECT name, unnest(contact) FROM Employees;
Step 2) Klõpsake nuppu Käivita.
See peaks tagastama järgmise:
Laadige alla selles õpetuses kasutatud andmebaas































