Lai pilnībā izstrādātu šo koncepciju, atveriet sistēmā instalēto PostgreSQL komandrindas apvalku. Norādiet servera nosaukumu, datu bāzes nosaukumu, porta numuru, lietotājvārdu un paroli konkrētam lietotājam, ja nevēlaties sākt strādāt ar noklusējuma opcijām. Ja vēlaties strādāt ar noklusējuma parametriem, atstājiet katru opciju tukšu un nospiediet Enter all option. Tagad jūsu komandrindas apvalks ir gatavs strādāt.
01. piemērs: definējiet masīva tipa datus
Pirms pāriet uz masīva vērtību pārveidošanu datu bāzē, ieteicams izpētīt pamatus. Šeit ir veids, kā norādīt teksta veidu sarakstu. Varat redzēt, ka izvade ir parādījusi teksta veidu sarakstu, izmantojot klauzulu SELECT.
>> ATLASĪT 'Aqsa, Raza, Saeed' :: teksts [];
Datu tips ir jādefinē, rakstot vaicājumu. PostgreSQL neatpazīs datu veidu, ja šķiet, ka tā ir virkne. Varat arī izmantot formātu ARRAY [], lai to norādītu kā virknes tipu, kā parādīts vaicājuma pielikumā. No zemāk minētās izejas jūs varat redzēt, ka dati ir iegūti kā masīva tips, izmantojot vaicājumu SELECT.
>> SELECT ARRAY ['Aqsa', 'Raza', 'Saeed'];
Atlasot tos pašus masīva datus ar vaicājumu SELECT, izmantojot klauzulu FROM, tas nedarbojas tā, kā vajadzētu. Piemēram, izmēģiniet zemāk esošo vaicājumu FROM klauzulā. Jūs pārbaudīsit, vai tajā parādīsies kļūda. Tas ir tāpēc, ka klauzula SELECT FROM pieņem, ka dati, kurus tā iegūst, iespējams, ir rindu grupa vai daži tabulas punkti.
>> SELECT * FROM ARRAY ['Aqsa', 'Raza', 'Saeed'];
02. piemērs: Konvertēt masīvu rindās
ARRAY [] ir funkcija, kas atgriež atomu vērtību. Rezultātā tas der tikai klauzulai SELECT, nevis klauzulai FROM, jo mūsu dati nebija formā “rinda”. Tāpēc mēs saņēmām kļūdu iepriekš minētajā piemērā. Lūk, kā izmantot funkciju UNNEST, lai pārveidotu masīvus rindās, kamēr vaicājums nedarbojas ar klauzulu.
>> SELECT UNNEST (ARRAY ['Aqsa', 'Raza', 'Saeed']);
03. piemērs: Konvertēt rindas masīvā
Lai atkal pārveidotu rindas masīvā, mums tas jādefinē konkrētais vaicājums vaicājumā. Šeit jums jāizmanto divi SELECT vaicājumi. Iekšējais atlases vaicājums pārveido masīvu rindās, izmantojot funkciju UNNEST. Kamēr ārējais SELECT vaicājums atkal pārveido visas šīs rindas vienā masīvā, kā parādīts zemāk citētajā attēlā. Uzmanies; ārējā SELECT vaicājumā jāizmanto mazākas “masīva” rakstības.
>> SELECT masīvs (SELECT UNNEST (ARRAY ['Aqsa', 'Raza', 'Saeed']));
04. Piemērs: Dublikātu noņemšana, izmantojot DISTINCT klauzulu
DISTINCT var palīdzēt jums iegūt dublikātus no jebkura veida datiem. Tomēr tas obligāti prasa rindu izmantošanu kā datus. Tas nozīmē, ka šī metode darbojas veseliem skaitļiem, tekstam, pludiņiem un citiem datu tipiem, taču masīvi nav atļauti. Lai noņemtu dublikātus, vispirms jāpārvērš masīva tipa dati rindās, izmantojot metodi UNNEST. Pēc tam šīs konvertētās datu rindas tiks nodotas klauzulai DISTINCT. Jūs varat ieskatīties zemāk redzamajā izvadē, ka masīvs ir pārveidots par rindām, pēc tam, izmantojot klauzulu DISTINCT, ir iegūtas tikai atšķirīgās vērtības no šīm rindām.
>> SELECT DISTINCT UNNEST ('Aqsa, Raza, Saeed, Raza, Uzma, Aqsa' :: teksts []);
Ja jums ir nepieciešams masīvs kā izvads, izmantojiet masīva () funkciju pirmajā SELECT vaicājumā un izmantojiet klauzulu DISTINCT nākamajā SELECT vaicājumā. No parādītā attēla var redzēt, ka izvade ir parādīta masīva formā, nevis rindā. Lai gan izvade satur tikai atšķirīgas vērtības.
>> SELECT masīvs (SELECT DISTINCT UNNEST ('Aqsa, Raza, Saeed, Raza, Uzma, Aqsa' :: teksts []));
05. piemērs: noņemot dublikātus, izmantojot klauzulu ORDER BY
Varat arī noņemt dublētās vērtības no pludiņa tipa masīva, kā parādīts zemāk. Kopā ar atšķirīgo vaicājumu mēs izmantosim klauzulu ORDER BY, lai rezultātu iegūtu noteiktas vērtības šķirošanas secībā. Lai to izdarītu, izmēģiniet zemāk norādīto vaicājumu komandrindas čaulā.
>> SELECT DISTINCT UNNEST ('2,85, 2.73., 2. lpp.85, 1.8, 2.73 ':: pludiņš []) PASŪTĪT AR 1;Pirmkārt, masīvs ir pārveidots rindās, izmantojot funkciju UNNEST; tad šīs rindas tiks sakārtotas augošā secībā, izmantojot klauzulu ORDER BY, kā parādīts zemāk.
Lai atkal pārveidotu rindas masīvā, izmantojiet to pašu SELECT vaicājumu čaulā, vienlaikus izmantojot to ar nelielu alfabētiskā masīva () funkciju. Zemāk esošajā izvadā varat skatīties, ka masīvs vispirms ir pārveidots par rindām, pēc tam ir izvēlētas tikai atšķirīgās vērtības. Beidzot rindas atkal tiks pārveidotas par masīvu.
>> SELECT masīvs (SELECT DISTINCT UNNEST ('2,85, 2.73., 2. lpp.85, 1.8, 2.73 ':: pludiņš []));
Secinājums:
Visbeidzot, jūs esat veiksmīgi ieviesis visus šīs rokasgrāmatas piemērus. Mēs ceram, ka jums nav radušās problēmas, veicot UNNEST (), DISTINCT un array () metodi piemēros.