Voit kehittää tämän konseptin kokonaan avaamalla järjestelmässäsi asennetun PostgreSQL: n komentorivikuoren. Anna palvelimen nimi, tietokannan nimi, portin numero, käyttäjänimi ja salasana tietylle käyttäjälle, jos et halua aloittaa työskentelyä oletusasetusten kanssa. Jos haluat käyttää oletusparametreja, jätä kaikki vaihtoehdot tyhjiksi ja paina Enter every option. Nyt komentorivisi kuori on valmis työskentelemään.
Esimerkki 01: Määritä taulukon tyypin tiedot
On hyvä tutkia perusteet, ennen kuin siirryt matriisiarvojen muokkaamiseen tietokannassa. Tässä on tapa määrittää tekstityyppiluettelo. Näet, että tulosteen tekstityyppiluettelo on käytetty käyttämällä SELECT-lauseketta.
>> VALITSE 'Aqsa, Raza, Saeed' :: teksti [];
Tietotyyppi on määriteltävä kyselyä kirjoitettaessa. PostgreSQL ei tunnista tietotyyppiä, jos se näyttää olevan merkkijono. Vaihtoehtoisesti voimme käyttää ARRAY [] -muotoa sen määrittämiseksi merkkijonotyypiksi, kuten kyselyn alla on esitetty. Alla mainitusta lähdöstä näet, että tiedot on haettu taulukotyyppinä käyttämällä SELECT-kyselyä.
>> VALITSE ARRAY ['Aqsa', 'Raza', 'Saeed'];
Kun valitset saman taulukotiedot SELECT-kyselyn kanssa käytettäessä FROM-lauseketta, se ei toimi niin kuin sen pitäisi. Kokeile esimerkiksi seuraavaa FROM-lausekkeen kyselyä kuoressa. Tarkista, että siinä on virhe. Tämä johtuu siitä, että SELECT FROM -lauseke olettaa, että sen hakemat tiedot ovat todennäköisesti rivejä tai joitain pisteitä taulukosta.
>> SELECT * FROM ARRAY ['Aqsa', 'Raza', 'Saeed'];
Esimerkki 02: Muunna taulukko riveiksi
ARRAY [] on funktio, joka palauttaa atomiarvon. Seurauksena on, että se sopii vain SELECT-valikkoon eikä FROM-lauseeseen, koska tietomme eivät olleet 'rivi' -muodossa. Siksi saimme virheen yllä olevassa esimerkissä. Tällöin UNNEST-funktiolla voit muuntaa taulukot riveiksi, kun kysely ei toimi lausekkeen kanssa.
>> SELECT UNNEST (ARRAY ['Aqsa', 'Raza', 'Saeed']);
Esimerkki 03: Muunna rivit taulukkoon
Jos haluat muuntaa rivit uudelleen matriisiksi, meidän on määritettävä kyseinen kysely kyselyssä niin. Sinun on käytettävä kahta SELECT-kyselyä täällä. Sisäinen valintakysely muuntaa taulukon riveiksi UNNEST-funktiolla. Kun ulkoinen SELECT-kysely muuntaa jälleen kaikki nämä rivit yhdeksi taulukoksi, kuten alla mainitussa kuvassa näkyy. Varo; ulkoisessa SELECT-kyselyssä on käytettävä matriisin pienempiä kirjoitusasuja.
>> SELECT-taulukko (SELECT UNNEST (ARRAY ['Aqsa', 'Raza', 'Saeed']));
Esimerkki 04: Poista kaksoiskappaleet DISTINCT-lausekkeen avulla
DISTINCT voi auttaa sinua poimimaan kaksoiskappaleet kaikenlaisista tiedoista. Se edellyttää kuitenkin välttämättä rivien käyttöä datana. Tämä tarkoittaa, että tämä menetelmä toimii kokonaislukujen, tekstin, kelluvien ja muiden tietotyyppien kohdalla, mutta taulukoita ei sallita. Jos haluat poistaa kaksoiskappaleet, sinun on ensin muunnettava taulukotyyppiset tiedot riveiksi UNNEST-menetelmällä. Sen jälkeen nämä muunnetut tietorivit siirretään DISTINCT-lausekkeeseen. Voit vilkaista alla olevaa lähtöä, että taulukko on muunnettu riveiksi, sitten vain näiden rivien erilliset arvot on haettu DISTINCT-lausekkeen avulla.
>> SELECT DISTINCT UNNEST ('Aqsa, Raza, Saeed, Raza, Uzma, Aqsa' :: teksti []);
Jos tarvitset matriisia lähtöön, käytä array () -funktiota ensimmäisessä SELECT-kyselyssä ja käytä DISTINCT-lausetta seuraavassa SELECT-kyselyssä. Näytetystä kuvasta näet, että tulos on esitetty taulukon muodossa, ei rivillä. Vaikka tulos sisältää vain erilliset arvot.
>> SELECT-taulukko (SELECT DISTINCT UNNEST ('Aqsa, Raza, Saeed, Raza, Uzma, Aqsa' :: teksti []));
Esimerkki 05: Poista kaksoiskappaleet ORDER BY -lauseketta käytettäessä
Voit myös poistaa päällekkäiset arvot float-tyyppisestä taulukosta alla olevan kuvan mukaisesti. Erillisen kyselyn lisäksi käytämme ORDER BY -lauseketta saadaksesi tuloksen tietyn arvon lajittelujärjestyksessä. Kokeile alla olevaa komentorivikuoren kyselyä.
>> SELECT DISTINCT UNNEST ('2,85, 2.73, 2.85, 1.8, 2.73 ':: kelluva []) TILAA 1;Ensinnäkin taulukko on muunnettu riveiksi UNNEST-toiminnolla; sitten nämä rivit lajitellaan nousevaan järjestykseen käyttämällä ORDER BY -lauseketta alla esitetyllä tavalla.
Jos haluat muuntaa rivit uudelleen matriisiksi, käytä samaa SELECT-kyselyä kuoressa, kun käytät sitä pienen aakkosjärjestyksen () kanssa. Voit vilkaista alla olevaa lähtöä, että taulukko on ensin muunnettu riveiksi, sitten on valittu vain erilliset arvot. Viimeinkin rivit muunnetaan uudelleen taulukoksi.
>> SELECT-taulukko (SELECT DISTINCT UNNEST ('2,85, 2.73, 2.85, 1.8, 2.73 ':: kelluva []));
Päätelmä:
Lopuksi olet toteuttanut kaikki tämän oppaan esimerkit onnistuneesti. Toivomme, että sinulla ei ole mitään ongelmia suoritettaessa UNNEST (), DISTINCT ja array () -menetelmää esimerkeissä.