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)
- V navigacijski vrstici na levi strani kliknite rbases.
- 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:
- V urejevalnik poizvedb vnesite naslednjo poizvedbo:
SELECT name, contact[1]FROM Employees;
- Kliknite gumb Izvedi.
Vrniti mora naslednje:
4. korak) Če želite združiti stavek SELECT in stavek WHERE:
- V urejevalnik poizvedb vnesite naslednji ukaz:
SELECTnameFROMEmployeesWHEREcontact [ 2 ] = '(408)-567-78234';
- 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