A koncepció teljes kidolgozásához nyissa meg a rendszerben a PostgreSQL telepített parancssori héját. Adja meg a kiszolgáló nevét, az adatbázis nevét, a portszámot, a felhasználónevet és a jelszót az adott felhasználó számára, ha nem akarja elkezdeni az alapértelmezett beállításokat. Ha alapértelmezett paraméterekkel szeretne dolgozni, hagyjon minden opciót üresen, és nyomja meg az Enter gombot. Most a parancssori shell felkészült a munkára.
01. példa: Adja meg a tömbtípus adatait
Célszerű tanulmányozni az alapokat, mielőtt továbblépnénk az adatbázis tömbértékeinek módosítására. Így adhat meg egy szövegtípus-listát. Láthatja, hogy a kimenet a SELECT záradék segítségével megmutatta a szövegtípusokat.
>> SELECT 'Aqsa, Raza, Saeed' :: szöveg [];
A lekérdezés írásakor meg kell határozni az adatok típusát. A PostgreSQL nem ismeri fel az adatok típusát, ha úgy tűnik, hogy karakterláncról van szó. Alternatív megoldásként használhatjuk az ARRAY [] formátumot a karakterlánc típusának megadásához, amint azt a lekérdezés alább mellékeltük. Az alábbiakban említett kimenetből láthatja, hogy az adatokat tömbtípusként lehívta a SELECT lekérdezés segítségével.
>> SELECT ARRAY ['Aqsa', 'Raza', 'Saeed'];
Ha a FROM záradék használata közben ugyanazt a tömbadatot választja a SELECT lekérdezéssel, akkor az nem úgy működik, ahogy kellene. Próbálkozzon például a FROM záradék alábbi lekérdezésével a shellben. Ellenőrizni fogja, hogy hibával áll-e elő. Ez azért van, mert a SELECT FROM záradék feltételezi, hogy az általa beolvasott adatok valószínűleg sorok vagy táblák egyes pontjai.
>> SELECT * FROM ARRAY ['Aqsa', 'Raza', 'Saeed'];
02. példa: Tömb konvertálása sorokká
Az ARRAY [] egy függvény, amely atomértéket ad vissza. Ennek eredményeként csak a SELECT-hez illeszkedik, a FROM záradékhoz nem, mivel adataink nem voltak a „sor” formában. Ezért kaptunk hibát a fenti példában. Az UNNEST függvény segítségével a tömböket sorokká alakíthatja, miközben a lekérdezés nem működik a záradékkal.
>> SELECT UNNEST (ARRAY ['Aqsa', 'Raza', 'Saeed']);
03. példa: Sorok konvertálása tömbbe
A sorok tömbgé történő átalakításához meg kell határoznunk az adott lekérdezést egy lekérdezésen belül. Itt kell használnia a két SELECT lekérdezést. Egy belső választási lekérdezés egy tömböt sorokká konvertál az UNNEST függvény segítségével. Míg a külső SELECT lekérdezés ismét átalakítja az összes sort egyetlen tömbbe, amint az az alábbiakban bemutatott képen látható. Vigyázz; a „SELECT” lekérdezésben kisebb „tömb” betűket kell használnia.
>> SELECT tömb (SELECT UNNEST (ARRAY ['Aqsa', 'Raza', 'Saeed']));
04. példa: Távolítsa el a duplikátumokat a DISTINCT záradék használatával
A DISTINCT segíthet a másolatok kinyerésében bármilyen formájú adatból. Ehhez azonban szükségszerűen sorok használatára van szükség adatokként. Ez azt jelenti, hogy ez a módszer egész számokra, szövegre, lebegőkre és más adattípusokra érvényes, de a tömbök nem engedélyezettek. A másolatok eltávolításához először a tömbtípus adatait kell sorokká konvertálni az UNNEST módszerrel. Ezt követően ezek az átalakított adatsorok átkerülnek a DISTINCT záradékba. Az alábbiakban bepillanthat a kimenetbe, hogy a tömböt sorokká alakították át, majd a DISTINCT záradékkal csak az ezekből a sorokból származó külön értékeket kapta le.
>> SELECT DISTINCT UNNEST ('Aqsa, Raza, Saeed, Raza, Uzma, Aqsa' :: szöveg []);
Ha tömbre van szüksége kimenetként, használja az array () függvényt az elsõ SELECT lekérdezésben, és használja a DISTINCT záradékot a következõ SELECT lekérdezésben. A megjelenített képből látható, hogy a kimenetet tömb formában jelenítette meg, nem pedig a sorban. Míg a kimenet csak különálló értékeket tartalmaz.
>> SELECT tömb (SELECT DISTINCT UNNEST ('Aqsa, Raza, Saeed, Raza, Uzma, Aqsa' :: szöveg []));
05. példa: Távolítsa el a duplikátumokat az ORDER BY záradék használata közben
Eltávolíthatja az ismétlődő értékeket az úszó típusú tömbből is, az alábbiak szerint. A különálló lekérdezéssel együtt az ORDER BY záradékot fogjuk használni, hogy az eredményt egy adott érték rendezési sorrendjében kapjuk meg. Ehhez próbálja ki az alább megadott lekérdezést a parancssori héjban.
>> SELECT DISTINCT UNNEST ('2,85, 2.73., 2.85, 1.8, 2.73 ':: float []) RENDELÉS: 1;Először a tömböt sorokká alakították az UNNEST függvény segítségével; akkor ezeket a sorokat növekvő sorrendbe rendezi az alább látható ORDER BY záradék használatával.
A sorok tömbgé történő átalakításához használja ugyanazt a SELECT lekérdezést a shellben, miközben azt egy kis ábécésorrendű tömb () függvénnyel használja. Az alábbi kimenetre pillanthat, hogy a tömböt először sorokká alakították át, majd csak a különálló értékeket választották. Végül a sorok újra tömbökké alakulnak.
>> SELECT tömb (SELECT DISTINCT UNNEST ('2,85, 2.73., 2.85, 1.8, 2.73 ':: úszó []));
Következtetés:
Végül sikeresen megvalósította az útmutató összes példáját. Reméljük, hogy a példákban az UNNEST (), DISTINCT és array () metódus végrehajtása során nem merült fel problémája.