PostgreSQL Taulukko: Funktiot, Tyyppi, Esimerkki
โก รlykรคs yhteenveto
PostgreSQL Array-funktiolla voit mรครคrittรครค taulukon sarakkeen minkรค tahansa kelvollisen tietotyypin taulukkona. Se kattaa taulukkosarakkeiden luomisen, arvojen lisรครคmisen ARRAY-konstruktorilla tai aaltosulkeilla, elementtien kyselyn ja muokkaamisen sekรค haun ANY()-funktiolla.

Mikรค on PostgreSQL Array?
In PostgreSQL, voimme mรครคritellรค sarakkeen kelvollisten tietotyyppien taulukkona. Tietotyyppi voi olla sisรครคnrakennettu, kรคyttรคjรคn mรครคrittรคmรค tai luetteloitu tyyppi. Tรคmรคn lisรคksi taulukoilla on tรคrkeรค rooli PostgreSQL.
Jokainen vastaava PostgreSQL Tietotyypille on liitetty asiaankuuluva taulukkotyyppi. Esimerkiksi kokonaislukutietotyypillรค on integer[]-taulukkotyyppi, merkkitietotyypillรค on character[]-taulukkotyyppi ja niin edelleen.
Luominen PostgreSQL taulukot
Seuraavassa esimerkissรค luomme taulukon nimeltรค Tyรถntekijรคt, jonka yhteystietosarake on mรครคritelty tekstitaulukoksi:
CREATE TABLE Employees ( id int PRIMARY KEY, name VARCHAR (100), contact TEXT [] );
Komennon pitรคisi toimia onnistuneesti.
asettaminen PostgreSQL Array-arvot
Anna meidรคn nyt lisรคtรค arvot yllรค olevaan taulukkoon:
INSERT INTO Employees VALUES ( 1, 'Alice John', ARRAY [ '(408)-743-9045', '(408)-567-7834' ] );
Lisรคyksen pitรคisi toimia onnistuneesti.
Kolmannen sarakkeen arvot eli yhteystiedot on lisรคtty taulukkona. Tรคmรค on tehty ARRAY-konstruktorin avulla. Tรคssรค esimerkissรค ne on suljettu hakasulkeisiin []. Tyรถntekijรคllรค Alice Johnilla on kaksi yhteystietoa.
Voimme edelleen kรคyttรครค kiharoita {} alla olevan kuvan mukaisesti:
INSERT INTO Employees VALUES ( 2, 'Kate Joel', '{"(408)-783-5731"}' ), ( 3, 'James Bush', '{"(408)-745-8965","(408)-567-78234"}' );
Komennon pitรคisi toimia onnistuneesti.
Yllรค olevat lauseet lisรครคvรคt kaksi riviรค Tyรถntekijรคt-taulukkoon. Kรคytettรคessรค aaltosulkuja, taulukko rivitetรครคn lainausmerkkien (') sisรครคn, kun taas tekstitaulukon kohteet rivitetรครคn lainausmerkkien (โ) sisรครคn.
Kyselyt taulukon tiedoista
Taulukon elementtien kyselyyn kรคytรคmme SELECT-lauseketta. Tyรถntekijรคt-taulukon sisรคllรถn nรคkemiseksi suoritamme seuraavan komennon:
SELECT * FROM Employees;
Tรคmรค palauttaa seuraavan:
Taulukon sarakkeen elementit, eli yhteystieto, on suljettu aaltosulkeisiin {}. Pรครคstรคksemme kรคsiksi itse taulukon elementteihin, lisรครคmme alaindeksin hakasulkeisiin []. Taulukon ensimmรคinen elementti on kohdassa 1.
Esimerkiksi meidรคn on saatava tyรถntekijรถiden nimet ja vain heidรคn ensimmรคinen yhteystietonsa niiltรค tyรถntekijรถiltรค, โโjoilla on useampi kuin yksi yhteystieto. Voimme kรคyttรครค tรคtรค muodossa contact[1]. Katsotaanpa tรคtรค:
SELECT name, contact[1] FROM Employees;
Tรคmรค palauttaa seuraavat tiedot:
Voimme kรคyttรครค SELECT-lausetta yhdessรค WHERE-lauseen kanssa suodattamaan rivejรค taulukon sarakkeen perusteella. Jos esimerkiksi haluat nรคhdรค tyรถntekijรคn, jonka numero on (408)-567-78234, toisena yhteyshenkilรถnรค, voimme suorittaa seuraavan komennon:
SELECT name FROM Employees WHERE contact [ 2 ] = '(408)-567-78234';
Tรคmรค palauttaa seuraavat tiedot:
Muokkaaminen PostgreSQL Ryhmรค
Voit pรคivittรครค kaikki taulukon elementit tai vain yhden niistรค. Tรคssรค on Employees-taulukon sisรคltรถ:
Pรคivitetรครคnpรค tyรถntekijรคn James Bushin, jonka tunnus on 3, toinen puhelinnumero:
Suorita seuraava komento:
UPDATE Employees SET contact [ 2 ] = '(408)-589-89347' WHERE id = 3;
Komennon pitรคisi toimia onnistuneesti:
Kysytรครคn taulukosta, onko muutos onnistunut:
Muutos onnistui.
Haku a PostgreSQL Ryhmรค
Tรคllรค hetkellรค tyรถntekijรคtaulukkomme on seuraava:
Oletetaan, ettรค meidรคn on tiedettรคvรค, kuka omistaa yhteystiedon (408)-783-5731 riippumatta sen sijainnista yhteystietotaulukossa. Voimme kรคyttรครค ANY()-funktiota alla olevan mukaisesti:
SELECT name, contact FROM Employees WHERE '(408)-783-5731' = ANY (contact);
Tรคmรค palauttaa seuraavat tiedot:
Laajentuvat taulukot
Voimme jakaa taulukon arvot riveihin. Tรคtรค prosessia kutsutaan taulukon laajennukseksi. Tyรถntekijรคt-taulukon esimerkissรค yhteystietotaulukossa on tyรถntekijรถitรค, joilla on kaksi yhteystietoa. Voimme jakaa nรคmรค erillisille riveille. PostgreSQL tarjoaa tรคhรคn kรคytettรคvรคn unnest()-funktion. Esimerkiksi:
SELECT name, unnest(contact) FROM Employees;
Tรคmรค palauttaa seuraavat tiedot:
Tyรถntekijรถillรค Alice Johnilla ja James Bushilla on kaksi yhteystietoa. Voimme jakaa nรคmรค erillisille riveille.
pgAdminin avulla
Luominen PostgreSQL taulukot
Suorita sama pgAdminin kautta seuraavasti:
Vaihe 1) Kirjaudu sisรครคn pgAdmin-tilillesi.
Vaihe 2)
- Napsauta vasemmalla olevasta navigointipalkista Tietokannat.
- Napsauta Demo-painiketta.
Vaihe 3) Kirjoita kysely kyselyeditoriin luodaksesi Tyรถntekijรคt-taulukon:
CREATE TABLE Employees ( id int PRIMARY KEY, name VARCHAR (100), contact TEXT [] );
Vaihe 4) Napsauta Suorita-painiketta.
asettaminen PostgreSQL Array-arvot
Vaihe 1) Kirjoita seuraava kysely kyselyeditoriin:
INSERT INTO Employees VALUES ( 1, 'Alice John', ARRAY [ '(408)-743-9045', '(408)-567-7834' ] );
Vaihe 2) Napsauta Suorita-painiketta:
Vaihe 3) Jos haluat kรคyttรครค aaltosulkeita kyselyssรค, kirjoita seuraava kysely kyselyeditoriin:
INSERT INTO Employees VALUES ( 2, 'Kate Joel', '{"(408)-783-5731"}' ), ( 3, 'James Bush', '{"(408)-745-8965","(408)-567-78234"}' );
Napsauta sitten Suorita-painiketta:
Kyselyt taulukon tiedoista
Vaihe 1) Jos haluat nรคhdรค Tyรถntekijรคt-taulukon sisรคllรถn, kirjoita seuraava kysely kyselyeditoriin:
SELECT * FROM Employees;
Vaihe 2) Napsauta Suorita-painiketta:
Sen pitรคisi palauttaa seuraavat tiedot:
Vaihe 3) Nรคhdรคksesi tyรถntekijรถiden ensimmรคiset yhteystiedot, kirjoita seuraava kysely kyselyeditoriin ja napsauta Suorita-painiketta:
SELECT name, contact[1] FROM Employees;
Sen pitรคisi palauttaa seuraavat tiedot:
Vaihe 4) Yhdistรครคksesi SELECT-lausekkeen WHERE-lausekkeen kanssa, kirjoita seuraava komento kyselyeditoriin ja napsauta Suorita-painiketta:
SELECT name FROM Employees WHERE contact [ 2 ] = '(408)-567-78234';
Sen pitรคisi palauttaa seuraavat tiedot:
Muokkaaminen PostgreSQL Ryhmรค
Vaihe 1) Pรคivittรครคksesi kรคyttรคjรคn, jonka id on 3, toisen yhteystiedon, suorita seuraava komento:
UPDATE Employees SET contact [ 2 ] = '(408)-589-89347' WHERE id = 3;
Vaihe 2) Napsauta Suorita-painiketta.
Vaihe 3) Kirjoita seuraava komento kyselyeditoriin tarkistaaksesi, onnistuiko muutos, ja napsauta sitten Suorita-painiketta:
SELECT * FROM Employees;
Sen pitรคisi palauttaa seuraavat tiedot:
Haku a PostgreSQL Ryhmรค
Vaihe 1) Kirjoita seuraava kysely kyselyeditoriin:
SELECT name, contact FROM Employees WHERE '(408)-783-5731' = ANY (contact);
Vaihe 2) Napsauta Suorita-painiketta.
Sen pitรคisi palauttaa seuraavat tiedot:
Laajentuvat taulukot
Vaihe 1) Kirjoita seuraava kysely kyselyeditoriin:
SELECT name, unnest(contact) FROM Employees;
Vaihe 2) Napsauta Suorita-painiketta.
Sen pitรคisi palauttaa seuraavat tiedot:
Lataa tรคssรค opetusohjelmassa kรคytetty tietokanta






























