Matrika PostgreSQL: funkcije, vrsta, primer

Kazalo:

Anonim

Kaj je matrika PostgreSQL?

V PostgreSQL lahko stolpec definiramo kot niz veljavnih podatkovnih vrst. Podatkovni tip je lahko vgrajen, uporabniško določen ali oštevilčen. Poleg tega imajo polja v PostgreSQL pomembno vlogo.

Vsak ustrezen podatkovni tip PostgreSQL ima ustrezen tip matrike. Na primer, celoštevilski podatkovni tip ima vrsto matrike celo število [], podatkovni tip znakov ima vrsto matrike [] itd.

V tej vadnici PostgreSQL boste izvedeli:

  • Kaj je matrika PostgreSQL?
  • Ustvarjanje nizov PostgreSQL
  • Vstavljanje vrednosti polja PostgreSQL
  • Poizvedovanje po podatkih matrike
  • Spreminjanje polja PostgreSQL
  • Iskanje v matriki PostgreSQL
  • Razširitev nizov
  • Uporaba pgAdmin

Ustvarjanje nizov PostgreSQL

V naslednjem primeru bomo ustvarili tabelo z imenom Zaposleni s kontaktnim stolpcem, definiranim kot besedilno polje:

CREATE TABLE Employees (id int PRIMARY KEY,name VARCHAR (100),contact TEXT []);

Ukaz bi se moral uspešno zagnati.

Vstavljanje vrednosti polja PostgreSQL

Zdaj vstavimo vrednosti v zgornjo tabelo:

INSERT INTO EmployeesVALUES(1,'Alice John',ARRAY [ '(408)-743-9045','(408)-567-7834' ]);

Vstavljanje bi se moralo uspešno izvesti.

Vrednosti tretjega stolpca, to je kontakt, so bile vstavljene kot matrika. To je bilo doseženo z uporabo konstruktorja ARRAY.

V tem primeru smo jih zaprli v oglate oklepaje []. Za uslužbenko Alice John imamo dva stika.

Še vedno lahko uporabljamo zavite oklepaje {}, kot je prikazano spodaj:

INSERT INTO EmployeesVALUES(2,'Kate Joel','{"(408)-783-5731"}'),(3,'James Bush','{"(408)-745-8965","(408)-567-78234"}');

Ukaz bi se moral uspešno zagnati.

Zgornji stavki bodo v tabelo Zaposleni vstavili dve vrstici. Pri uporabi zavitih oklepajev je polje ovito znotraj enojnih narekovajev ('), medtem ko so elementi besedilnega polja zaviti v dvojne narekovaje (").

Poizvedovanje po podatkih matrike

Za poizvedbo elementov polja uporabimo stavek SELECT.

Če si želimo ogledati vsebino tabele Zaposleni, zaženemo naslednji ukaz:

SELECT * FROM Employees;

To vrne naslednje:

Elementi stolpca matrike, to je kontakt, so bili zaprti v zavite oklepaje {}.

Za dostop do elementov matrike dodamo indeks v oglatih oklepajih []. Prvi element v matriki je na položaju 1.

Na primer, pridobiti moramo imena zaposlenih in samo njihov prvi stik za tiste zaposlene z več kot enim stikom. Do tega lahko dostopamo kot stik [1].

Poglejmo to:

SELECT name, contact[1]FROM Employees;

To bo vrnilo naslednje:

Stavek SELECT lahko skupaj s stavkom WHERE uporabimo za filtriranje vrstic na podlagi stolpca matrike.

Če želimo na primer videti zaposlenega z (408) -567-78234 kot drugim stikom, lahko zaženemo naslednji ukaz:

SELECTnameFROMEmployeesWHEREcontact [ 2 ] = '(408)-567-78234';

To bo vrnilo naslednje:

Spreminjanje polja PostgreSQL

Lahko posodobite celoten ali en element matrike.

Tu je vsebina tabele Zaposleni:

Posodobimo drugo telefonsko številko zaposlenega Jamesa Busha, čigar id je 3:

Zaženite naslednji ukaz:

UPDATE EmployeesSET contact [ 2 ] = '(408)-589-89347'WHEREid = 3;

Ukaz bi se moral uspešno zagnati:

Poizvedimo tabelo, da preverimo, ali je bila sprememba uspešna:

Sprememba je bila uspešna.

Iskanje v matriki PostgreSQL

Trenutno je tabela zaposlenih:

Recimo, da moramo vedeti, kdo je lastnik kontakta (408) -783-5731, ne glede na položaj znotraj polja stikov, lahko uporabimo funkcijo ANY (), kot je prikazano spodaj:

SELECTname,contactFROMEmployeesWHERE'(408)-783-5731' = ANY (contact);

To bo vrnilo naslednje:

Razširitev nizov

Vrednosti polja lahko razdelimo na vrstice. Ta postopek je znan kot razširitev polja.

V primeru tabele Zaposleni je v matriki stikov nekaj zaposlenih z dvema stikoma. Te lahko razdelimo v ločene vrstice.

PostgreSQL ponuja funkcijo unnest (), ki jo lahko uporabimo za to.

Na primer:

SELECTname,unnest(contact)FROMEmployees;

To bo vrnilo naslednje:

Zaposleni Alice John in James Bush imata dva stika. Lahko se razdelimo v ločene vrstice.

Uporaba pgAdmin

Ustvarjanje nizov PostgreSQL

Če želite to storiti s pomočjo pgAdmin, naredite to:

Korak 1) Prijavite se v svoj račun pgAdmin.

2. korak)

  1. V navigacijski vrstici na levi strani kliknite rbases.
  2. Kliknite Demonstracijski gumb

Korak 3) Vnesite poizvedbo v urejevalnik poizvedb, da ustvarite tabelo Zaposleni:

CREATE TABLE Employees (id int PRIMARY KEY,name VARCHAR (100),contact TEXT []);

Korak 4) Kliknite gumb Izvedi.

Vstavljanje vrednosti polja PostgreSQL

Korak 1) V urejevalnik poizvedb vnesite naslednjo poizvedbo:

INSERT INTO EmployeesVALUES(1,'Alice John',ARRAY [ '(408)-743-9045','(408)-567-7834' ]);

2. korak) Kliknite gumb Izvedi:

3. korak)

Če želite pri poizvedbi uporabiti zavite oklepaje

Korak 1) V urejevalnik poizvedb vnesite naslednjo poizvedbo:

INSERT INTO EmployeesVALUES(2,'Kate Joel','{"(408)-783-5731"}'),(3,'James Bush','{"(408)-745-8965","(408)-567-78234"}');

2. korak) Kliknite gumb Izvedi:

Poizvedovanje po podatkih matrike

1. korak) Če si želite ogledati vsebino tabele Zaposleni, v urejevalnik poizvedb vnesite naslednjo poizvedbo:

SELECT * FROM Employees;

2. korak) Kliknite gumb Izvedi:

Vrniti mora naslednje:

3. korak) Če si želite ogledati prve stike zaposlenih:

  1. V urejevalnik poizvedb vnesite naslednjo poizvedbo:
    SELECT name, contact[1]FROM Employees;
  2. Kliknite gumb Izvedi.

Vrniti mora naslednje:

4. korak) Če želite združiti stavek SELECT in stavek WHERE:

  1. V urejevalnik poizvedb vnesite naslednji ukaz:
    SELECTnameFROMEmployeesWHEREcontact [ 2 ] = '(408)-567-78234';
  2. Kliknite gumb Izvedi.

Vrniti mora naslednje:

Spreminjanje polja PostgreSQL

Korak 1) Če želite posodobiti drugi stik uporabnika z id 3, zaženite naslednji ukaz:

UPDATE EmployeesSET contact [ 2 ] = '(408)-589-89347'WHEREid = 3;

Korak 2) Kliknite gumb Izvedi.

3. korak)

1. V urejevalnik poizvedb vnesite naslednji ukaz, da preverite, ali je bila sprememba uspešna:

SELECT * FROM Employees;

2. Kliknite gumb Izvedi.

Vrniti mora naslednje:

Iskanje v matriki PostgreSQL

Korak 1) V urejevalnik poizvedb vnesite naslednjo poizvedbo:

SELECTname,contactFROMEmployeesWHERE'(408)-783-5731' = ANY (contact);

Korak 2) Kliknite gumb Izvedi.

Vrniti mora naslednje:

Razširitev nizov

Korak 1) V urejevalnik poizvedb vnesite naslednjo poizvedbo:

SELECTname,unnest(contact)FROMEmployees;

Korak 2) Kliknite gumb Izvedi.

Vrniti mora naslednje:

Povzetek:

  • PostgreSQL nam omogoča, da stolpec tabele definiramo kot vrsto matrike.
  • Polje mora biti veljavnega podatkovnega tipa, kot so celo število, znak ali uporabniško določeni tipi.
  • Za vstavljanje vrednosti v stolpec matrike uporabimo konstruktor ARRAY.
  • Če je v isti vrstici stolpca matrike več elementov, je prvi element na položaju 1.
  • Do vsake vrednosti je mogoče dostopati tako, da se v okrogle oklepaje [] preda indeks.
  • Elemente matrike je mogoče dobiti z uporabo stavka SELECT.
  • Vrednosti stolpca matrike so lahko zaprte v oglate oklepaje [] ali zavite oklepaje {}.
  • Vrednosti stolpcev matrike lahko iščemo s funkcijo ANY ().

Prenesite zbirko podatkov, uporabljeno v tej vadnici