For at uddybe dette koncept fuldt ud skal du åbne den installerede kommandolinjeskal af PostgreSQL i dit system. Angiv servernavnet, databasenavnet, portnummeret, brugernavnet og adgangskoden til den bestemte bruger, hvis du ikke vil begynde at arbejde med standardindstillingerne. Hvis du vil arbejde med standardparametre, skal du lade alle indstillinger være tomme og trykke på Enter hver indstilling. Nu er din kommandolinjeskal klar til at arbejde på.
Eksempel 01: Definer Array Type Data
Det er en god ide at studere det grundlæggende, inden du går videre til at ændre matrixværdier i databasen. Her er måden at specificere en teksttypeliste på. Du kan se, at output har vist teksttypelisten ved hjælp af SELECT-klausulen.
>> VÆLG 'Aqsa, Raza, Saeed' :: tekst [];
Datatypen skal defineres, mens du skriver en forespørgsel. PostgreSQL genkender ikke typen af data, hvis det ser ud til at være en streng. Alternativt kan vi bruge ARRAY [] -formatet til at angive det som strengtype, som vist vedhæftet nedenfor i forespørgslen. Fra nedenstående output kan du se, at dataene er hentet som arraytype ved hjælp af SELECT-forespørgslen.
>> VÆLG ARRAY ['Aqsa', 'Raza', 'Saeed'];
Når du vælger de samme matrixdata med SELECT-forespørgslen, mens du bruger FROM-klausulen, fungerer det ikke som det skal. Prøv for eksempel nedenstående forespørgsel om FROM-klausul i skallen. Du vil kontrollere, at der kommer en fejl. Dette skyldes, at SELECT FROM-klausulen antager, at de data, den henter, sandsynligvis er en gruppe af rækker eller nogle punkter fra en tabel.
>> VÆLG * FRA ARRAY ['Aqsa', 'Raza', 'Saeed'];
Eksempel 02: Konverter Array til rækker
ARRAY [] er en funktion, der returnerer en atomværdi. Som et resultat passer det kun med SELECT og ikke med FROM-klausulen, da vores data ikke var i form af 'række'. Derfor fik vi en fejl i ovenstående eksempel. Sådan bruges UNNEST-funktionen til at konvertere arrays til rækker, mens din forespørgsel ikke fungerer med klausulen.
>> VÆLG UNNEST (ARRAY ['Aqsa', 'Raza', 'Saeed']);
Eksempel 03: Konverter rækker til matrix
For at konvertere rækkerne til en matrix igen skal vi definere den pågældende forespørgsel inden for en forespørgsel for at gøre det. Du skal bruge de to SELECT-forespørgsler her. En intern valgforespørgsel konverterer en matrix til rækker ved hjælp af funktionen UNNEST. Mens den eksterne SELECT-forespørgsel igen konverterer alle disse rækker til et enkelt array, som vist på billedet citeret nedenfor. Pas på; du skal bruge mindre stavemåder af 'array' i den eksterne SELECT-forespørgsel.
>> VÆLG matrix (VÆLG UNNEST (ARRAY ['Aqsa', 'Raza', 'Saeed']));
Eksempel 04: Fjern duplikater ved hjælp af DISTINCT-klausul
DISTINCT kan hjælpe dig med at udtrække duplikater fra enhver form for data. Det kræver dog nødvendigvis brugen af rækker som data. Dette betyder, at denne metode fungerer for heltal, tekst, floats og andre datatyper, men arrays er ikke tilladt. For at fjerne dubletter skal du først konvertere dine arraytypedata til rækker ved hjælp af UNNEST-metoden. Derefter sendes disse konverterede datarækker til DISTINCT-klausulen. Du kan få et glimt af output nedenfor, at arrayet er blevet konverteret til rækker, så er kun de forskellige værdier fra disse rækker hentet ved hjælp af DISTINCT-klausulen.
>> VÆLG DISTINCT UNNEST ('Aqsa, Raza, Saeed, Raza, Uzma, Aqsa' :: tekst []);
Hvis du har brug for en matrix som output, skal du bruge array () -funktionen i den første SELECT-forespørgsel og bruge DISTINCT-klausulen i den næste SELECT-forespørgsel. Du kan se fra det viste billede, at output er vist i arrayformen, ikke i rækken. Mens output kun indeholder forskellige værdier.
>> VÆLG array (SELECT DISTINCT UNNEST ('Aqsa, Raza, Saeed, Raza, Uzma, Aqsa' :: tekst []));
Eksempel 05: Fjern duplikater, mens du bruger ORDER BY-klausul
Du kan også fjerne de duplikerede værdier fra float-typen array, som vist nedenfor. Sammen med den forskellige forespørgsel bruger vi ORDER BY-klausulen til at få resultatet i sorteringsrækkefølgen af en bestemt værdi. Prøv nedenstående forespørgsel i kommandolinjeskallen for at gøre det.
>> VÆLG DISTINCT UNNEST ('2,85, 2.73, 2.85, 1.8, 2.73 ':: float []) ORDER BY 1;For det første er arrayet konverteret til rækker ved hjælp af UNNEST-funktionen; derefter vil disse rækker blive sorteret i stigende rækkefølge ved hjælp af ORDER BY-klausulen som vist nedenfor.
For at konvertere rækkerne igen til en matrix skal du bruge den samme SELECT-forespørgsel i skallen, mens du bruger den med et lille alfabetisk array () -funktion. Du kan se på output nedenfor, at arrayet først er konverteret til rækker, så kun de forskellige værdier er valgt. Endelig konverteres rækker til en matrix igen.
>> VÆLG array (VÆLG DISTINCT UNNEST ('2,85, 2.73, 2.85, 1.8, 2.73 ':: flyde []));
Konklusion:
Endelig har du med succes implementeret hvert eksempel fra denne vejledning. Vi håber, at du ikke har noget problem, mens du udfører metoden UNNEST (), DISTINCT og array () i eksemplerne.