PostgreSQL Taulukko: Funktiot, Tyyppi, Esimerkki
Mikรค on PostgreSQL Array?
In PostgreSQL, voimme mรครคrittรครค sarakkeen kelvollisten tietotyyppien joukoksi. Tietotyyppi voi olla sisรครคnrakennettu, kรคyttรคjรคn mรครคrittelemรค tai lueteltu tyyppi. Tรคmรคn lisรคksi taulukoilla on tรคrkeรค rooli PostgreSQL.
Jokainen vastaava PostgreSQL tietotyypin mukana tulee asiaankuuluva taulukkotyyppi. Esimerkiksi kokonaislukutietotyypillรค on integer[]-taulukko, merkkitietotyypillรค on merkki[]-taulukko jne.
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 eli kontaktin arvot on lisรคtty taulukkona. Tรคmรค on saavutettu kรคyttรคmรคllรค ARRAY-konstruktoria.
Tรคssรค esimerkissรค olemme kirjoittaneet ne hakasulkeisiin []. Meillรค on kaksi tyรถntekijรครค Alice Johnia varten.
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
Kรคytรคmme SELECT-kรคskyรค taulukon elementtien kyselyyn.
Nรคhdรคksemme Tyรถntekijรคt-taulukon sisรคllรถn suoritamme seuraavan komennon:
SELECT * FROM Employees;
Tรคmรค palauttaa seuraavan:
Taulukossarakkeen elementit, eli kontakti, on suljettu aaltosulkeisiin {}.
Voit kรคyttรครค itse taulukon elementtejรค lisรครคmรคllรค alaindeksin hakasulkeisiin []. Matriisin ensimmรคinen elementti on paikassa 1.
Meidรคn on esimerkiksi saatava tyรถntekijรถiden nimet ja vain heidรคn ensimmรคinen yhteystietonsa niille tyรถntekijรถille, joilla on useampi kuin yksi yhteystieto. Voimme kรคyttรครค tรคtรค yhteyshenkilรถnรค[1].
Katsotaanpa tรคmรค:
SELECT name, contact[1] FROM Employees;
Tรคmรค palauttaa seuraavat tiedot:
Voimme kรคyttรครค SELECT-kรคskyรค yhdessรค WHERE-lauseen kanssa rivien suodattamiseen taulukkosarakkeen perusteella.
Jos esimerkiksi haluat nรคhdรค tyรถntekijรคn, jolla 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รครค taulukon kaikki tai yksittรคisen elementin.
Tรคssรค on Tyรถntekijรคt-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 yhteyshenkilรถn (408)-783-5731 riippumatta sijainnista yhteystietotaulukossa, voimme kรคyttรครค ANY()-funktiota alla esitetyllรค tavalla:
SELECT name, contact FROM Employees WHERE '(408)-783-5731' = ANY (contact);
Tรคmรค palauttaa seuraavat tiedot:
Laajentuvat taulukot
Voimme jakaa taulukon arvot riveihin. Tรคmรค prosessi tunnetaan taulukon laajentamisena.
Tyรถntekijรคt-taulukon esimerkissรค yhteystietotaulukossa on tyรถntekijรถitรค, joilla on kaksi yhteyshenkilรถรค. Voimme jakaa nรคmรค erillisiin riveihin.
PostgreSQL tarjoaa unnest()-funktion, jota voidaan kรคyttรครค tรคhรคn.
Esimerkiksi:
SELECT name, unnest(contact) FROM Employees;
Tรคmรค palauttaa seuraavat tiedot:
Tyรถntekijรถillรค Alice Johnilla ja James Bushilla on kaksi kontaktia. Voimme jakaa erillisiin riveihin.
pgAdminin avulla
Luominen PostgreSQL taulukot
Suorita sama pgAdminin kautta seuraavasti:
Vaihe 1) Kirjaudu sisรครคn pgAdmin-tilillesi.
Vaihe 2)
- Vasemmalla olevasta navigointipalkista - Napsauta rbases.
- 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)
Kiharan aaltosulkeiden kรคyttรคminen kyselyssรค
Vaihe 1) Kirjoita seuraava kysely kyselyeditoriin:
INSERT INTO Employees
VALUES
(
2,
'Kate Joel',
'{"(408)-783-5731"}'
),
(
3,
'James Bush',
'{"(408)-745-8965","(408)-567-78234"}'
);
Vaihe 2) Napsauta Suorita-painiketta:
Kyselyt taulukon tiedoista
Vaihe 1) Nรคet Tyรถntekijรคt-taulukon sisรคllรถn kirjoittamalla seuraavan kyselyn 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:
SELECT name, contact[1] FROM Employees;
- Napsauta Suorita-painiketta.
Sen pitรคisi palauttaa seuraavat tiedot:
Vaihe 4) Voit yhdistรครค SELECT-lauseen WHERE-lauseeseen seuraavasti:
- Kirjoita seuraava komento kyselyeditoriin:
SELECT name FROM Employees WHERE contact [ 2 ] = '(408)-567-78234';
- Napsauta Suorita-painiketta.
Sen pitรคisi palauttaa seuraavat tiedot:
Muokkaaminen PostgreSQL Ryhmรค
Vaihe 1) Pรคivitรค kรคyttรคjรคn toinen yhteystieto, jonka tunnus on 3, suorittamalla seuraava komento:
UPDATE Employees SET contact [ 2 ] = '(408)-589-89347' WHERE id = 3;
Vaihe 2) Napsauta Suorita-painiketta.
Vaihe 3)
1. Kirjoita seuraava komento kyselyeditoriin tarkistaaksesi, onnistuiko muutos:
SELECT * FROM Employees;
2. Napsauta Suorita-painiketta.
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:
Yhteenveto
- PostgreSQL antaa meille mahdollisuuden mรครคrittรครค taulukon sarakkeen taulukkotyypiksi.
- Taulukon on oltava kelvollinen tietotyyppi kuten kokonaisluku-, merkki- tai kรคyttรคjรคn mรครคrittรคmรคt tyypit.
- Arvojen lisรครคmiseksi taulukkosarakkeeseen kรคytรคmme ARRAY-konstruktoria.
- Jos taulukkosarakkeen samalla rivillรค on useampi kuin yksi elementti, ensimmรคinen elementti on paikassa 1.
- Jokaiseen arvoon pรครคsee kรคsiksi syรถttรคmรคllรค alaindeksi hakasulkeisiin [].
- Taulukon elementit voidaan hakea SELECT-kรคskyllรค.
- Taulukossarakkeen arvot voidaan sulkea hakasulkeisiin [] tai aaltosulkeisiin {}.
- Voimme etsiรค taulukon sarakearvoja kรคyttรคmรคllรค ANY()-funktiota.






























