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.

Luominen PostgreSQL taulukot

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.

asettaminen PostgreSQL Array-arvot

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.

asettaminen PostgreSQL Array-arvot

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:

Kyselyt taulukon tiedoista

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:

Kyselyt taulukon tiedoista

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:

Kyselyt taulukon tiedoista

Muokkaaminen PostgreSQL Ryhmä

Voit päivittää taulukon kaikki tai yksittäisen elementin.

Tässä on Työntekijät-taulukon sisältö:

Muokkaaminen PostgreSQL Ryhmä

Päivitetäänpä työntekijän James Bushin, jonka tunnus on 3, toinen puhelinnumero:

Muokkaaminen PostgreSQL Ryhmä

Suorita seuraava komento:

UPDATE Employees
SET contact [ 2 ] = '(408)-589-89347'
WHERE
   id = 3;

Komennon pitäisi toimia onnistuneesti:

Muokkaaminen PostgreSQL Ryhmä

Kysytään taulukosta, onko muutos onnistunut:

Muokkaaminen PostgreSQL Ryhmä

Muutos onnistui.

Haku a PostgreSQL Ryhmä

Tällä hetkellä työntekijätaulukkomme on seuraava:

Haku a PostgreSQL Ryhmä

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:

Haku a PostgreSQL Ryhmä

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:

Laajentuvat taulukot

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)

  1. Vasemmalla olevasta navigointipalkista - Napsauta rbases.
  2. Napsauta Demo-painiketta

Luominen PostgreSQL Taulukot pgAdminilla

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.

Luominen PostgreSQL Taulukot pgAdminilla

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:

asettaminen PostgreSQL Array-arvot

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:

asettaminen PostgreSQL Array-arvot

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:

Array-tietojen kysely pgAdminilla

Sen pitäisi palauttaa seuraavat tiedot:

Array-tietojen kysely pgAdminilla

Vaihe 3) Nähdäksesi työntekijöiden ensimmäiset yhteystiedot:

  1. Kirjoita seuraava kysely kyselyeditoriin:
    SELECT name, contact[1]
    FROM Employees;
    
  2. Napsauta Suorita-painiketta.

Array-tietojen kysely pgAdminilla

Sen pitäisi palauttaa seuraavat tiedot:

Array-tietojen kysely pgAdminilla

Vaihe 4) Voit yhdistää SELECT-lauseen WHERE-lauseeseen seuraavasti:

  1. Kirjoita seuraava komento kyselyeditoriin:
    SELECT
       name
    FROM
       Employees
    WHERE
       contact [ 2 ] = '(408)-567-78234';
    
  2. Napsauta Suorita-painiketta.

Array-tietojen kysely pgAdminilla

Sen pitäisi palauttaa seuraavat tiedot:

Array-tietojen kysely pgAdminilla

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.

Muokkaaminen PostgreSQL Taulukko pgAdminilla

Vaihe 3)

1. Kirjoita seuraava komento kyselyeditoriin tarkistaaksesi, onnistuiko muutos:

SELECT * FROM Employees;

2. Napsauta Suorita-painiketta.

Muokkaaminen PostgreSQL Taulukko pgAdminilla

Sen pitäisi palauttaa seuraavat tiedot:

Muokkaaminen PostgreSQL Taulukko pgAdminilla

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.

Haku a PostgreSQL Taulukko pgAdminilla

Sen pitäisi palauttaa seuraavat tiedot:

Haku a PostgreSQL Taulukko pgAdminilla

Laajentuvat taulukot

Vaihe 1) Kirjoita seuraava kysely kyselyeditoriin:

SELECT
   name,
   unnest(contact)
FROM
   Employees;

Vaihe 2) Napsauta Suorita-painiketta.

Taulukon laajentaminen pgAdminilla

Sen pitäisi palauttaa seuraavat tiedot:

Taulukon laajentaminen pgAdminilla

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.

Lataa tässä opetusohjelmassa käytetty tietokanta

Päivittäinen Guru99-uutiskirje

Aloita päiväsi uusimmilla ja tärkeimmillä tekoälyuutisilla, jotka toimitetaan juuri nyt.