Če želite v celoti izdelati ta koncept, v svojem sistemu odprite nameščeno lupino ukazne vrstice PostgreSQL. Navedite ime strežnika, ime baze podatkov, številko vrat, uporabniško ime in geslo za določenega uporabnika, če ne želite začeti delati s privzetimi možnostmi. Če želite delati s privzetimi parametri, pustite vsako možnost prazno in pritisnite Enter vsako možnost. Zdaj je lupina ukazne vrstice pripravljena na delo.
Primer 01: Določite podatke vrste array
Preden preidete na spreminjanje vrednosti matrike v bazi podatkov, je dobro preučiti osnove. Tukaj je način, kako določiti seznam vrst besedila. Ogledate si lahko, da je izhod prikazal seznam vrst besedila s pomočjo stavka SELECT.
>> IZBERI 'Aqsa, Raza, Saeed' :: text [];
Med pisanjem poizvedbe je treba določiti vrsto podatkov. PostgreSQL ne bo prepoznal vrste podatkov, če se zdi, da gre za niz. Lahko pa uporabimo format ARRAY [], da ga določimo kot vrsto niza, kot je prikazano spodaj v poizvedbi. Iz spodaj navedenega izhoda lahko vidite, da so bili podatki pridobljeni kot vrsta matrike z uporabo poizvedbe SELECT.
>> SELECT ARRAY ['Aqsa', 'Raza', 'Saeed'];
Ko z uporabo poizvedbe SELECT izberete iste podatke o matriki med uporabo stavka FROM, to ne deluje tako, kot bi moralo. Poskusite na primer spodnjo poizvedbo klavzule FROM v lupini. Preverili boste, ali je prišlo do napake. To pa zato, ker klavzula SELECT FROM predpostavlja, da so podatki, ki jih pridobiva, verjetno skupina vrstic ali nekatere točke iz tabele.
>> IZBERITE * IZ NIZA ['Aqsa', 'Raza', 'Saeed'];
Primer 02: Pretvori matriko v vrstice
ARRAY [] je funkcija, ki vrne atomsko vrednost. Posledično se prilega samo stavku SELECT in ne klavzuli FROM, saj naši podatki niso bili v obliki 'vrstice'. Zato smo v zgornjem primeru dobili napako. Tukaj je opisano, kako uporabiti funkcijo UNNEST za pretvorbo nizov v vrstice, medtem ko poizvedba ne deluje s klavzulo.
>> IZBERI NENEST (ARRAY ['Aqsa', 'Raza', 'Saeed']);
Primer 03: Pretvori vrstice v matriko
Če želite vrstice znova pretvoriti v matriko, moramo določiti to poizvedbo znotraj poizvedbe, da to storimo. Tu morate uporabiti dve poizvedbi SELECT. Notranja izbirna poizvedba pretvori matriko v vrstice s pomočjo funkcije UNNEST. Medtem ko zunanja poizvedba SELECT vse te vrstice ponovno pretvori v eno matriko, kot je prikazano na spodnji sliki. Pazi; v zunanji poizvedbi SELECT morate uporabiti manjše črkovanje 'array'.
>> matrika SELECT (SELECT UNNEST (ARRAY ['Aqsa', 'Raza', 'Saeed']));
Primer 04: Odstranite dvojnike s pomočjo klavzule DISTINCT
DISTINCT vam lahko pomaga izvleči dvojnike iz katere koli oblike podatkov. Vendar nujno zahteva uporabo vrstic kot podatkov. To pomeni, da ta metoda deluje za cela števila, besedilo, plavajoče in druge vrste podatkov, vendar polja niso dovoljena. Če želite odstraniti dvojnike, morate podatke vrste array najprej pretvoriti v vrstice z uporabo metode UNNEST. Po tem bodo te pretvorjene podatkovne vrstice posredovane v stavek DISTINCT. Ogledate si lahko spodnji izhod, da je bila matrika pretvorjena v vrstice, nato pa so bile z uporabo stavka DISTINCT pridobljene le različne vrednosti iz teh vrstic.
>> IZBERITE RAZLIČITO NENESTO ('Aqsa, Raza, Saeed, Raza, Uzma, Aqsa' :: besedilo []);
Če za izhod potrebujete polje, uporabite funkcijo array () v prvi poizvedbi SELECT in člen DISTINCT v naslednji poizvedbi SELECT. Iz prikazane slike lahko vidite, da je bil izhod prikazan v obliki matrike, ne v vrstici. Medtem ko izhod vsebuje samo različne vrednosti.
>> matrika SELECT (SELECT DISTINCT UNNEST ('Aqsa, Raza, Saeed, Raza, Uzma, Aqsa' :: text []));
Primer 05: Odstranite dvojnike med uporabo stavka ORDER BY
Podvojene vrednosti lahko odstranite tudi iz polja vrste float, kot je prikazano spodaj. Skupaj z ločeno poizvedbo bomo s pomočjo stavka ORDER BY dobili rezultat v vrstnem redu razvrščanja določene vrednosti. Poskusite spodnjo poizvedbo v lupini ukazne vrstice.
>> IZBERITE RAZLIČITO GNESTO ('2,85, 2.73, 2.85, 1.8, 2.73 ':: float []) NAROČI DO 1;Najprej je bila matrika pretvorjena v vrstice s funkcijo UNNEST; nato bodo te vrstice razvrščene po naraščajočem vrstnem redu s pomočjo stavka ORDER BY, kot je prikazano spodaj.
Če želite vrstice znova pretvoriti v matriko, uporabite isto poizvedbo SELECT v lupini, medtem ko jo uporabljate z majhno abecedno funkcijo array (). Na spodnjem izhodu lahko pogledate, da je bila matrika najprej pretvorjena v vrstice, nato pa so bile izbrane samo različne vrednosti. Končno bodo vrstice spet pretvorjene v matriko.
>> matrika SELECT (SELECT DISTINCT UNNEST ('2,85, 2.73, 2.85, 1.8, 2.73 ':: float []));
Zaključek:
Na koncu ste uspešno izvedli vse primere iz tega vodnika. Upamo, da med izvajanjem metode UNNEST (), DISTINCT in array () v primerih ne boste imeli težav.