Bevezetés
amikor adatokat tölt le a PostgreSQL-ben, valószínűleg azt szeretné, hogy az eredmények bizonyos módon rendeződjenek. A PostgreSQL-ben megadhatja az eredmények rendezési sorrendjét a ORDER BY
záradékkal. Ez a záradék lehetővé teszi, hogy megadja azt az oszlopot, amely szerint rendezni szeretné az eredményeket, és lehetővé teszi a növekvő és a csökkenő sorrend közötti választást is. Ebben a cikkben közelebbről megvizsgáljuk a PostgreSQL növekvő és csökkenő sorrendű opcióit.
előfeltételek
annak érdekében, hogy kövessük a példákat, amelyeket ebben az oktatóanyagban megvizsgálunk, meg kell győződnie arról, hogy a PostgreSQL szerver megfelelően van telepítve és konfigurálva. A szolgáltatásnak a háttérben kell futnia.
Ha Linux vagy Windows környezetben dolgozik, itt letöltheti a PostgreSQL-t.
mi az a PostgreSQL ORDER BY záradék?
amikor adatokat akarunk lekérni egy PostgreSQL táblából, létrehozunk egy SELECT
utasítást. Alapértelmezés szerint a PostgreSQL a sorokat ugyanabban a sorrendben adja vissza, mint amelyeket beillesztettek. Az eredményeket azonban módosíthatjuk, hogy válogatással olvashatóbbá tegyük őket. Az eredmények kétféleképpen rendezhetők: növekvő és csökkenő sorrendben. A PostgreSQL ORDER BY
záradékot használjuk a SELECT
utasításunkban a rendezési beállítások megadásához.
az alábbiakban látható a PostgreSQL szintaxisa ORDER BY
záradék:
1
2 3 4 5 6 |
SELECT
name_of_the_column from target_table rendelés name_of_the_column asc |
beszéljük meg ezt a szintaxist egy kicsit részletesebben:
- először megadjuk az oszlop nevét, amelyet a rendezéshez használunk a
ORDER BY
záradékban. Ha több oszlop szerint szeretnénk rendezni, vesszővel elválasztjuk őket. - miután megadtuk az oszlop nevét, a
ASC
segítségével adjuk meg a növekvő sorrendet vagy aDESC
a csökkenő sorrendet. AORDER BY
záradék alapértelmezett értékeASC
vagy növekvő sorrend, ha nincs megadva érték.
Mintaadatkészlet létrehozása
létre kell hoznunk egy mintaadatkészletet, amelyet a példáinkban használhatunk. Kezdjük egy client_info
nevű táblázat létrehozásával:
1
2 3 4 5 6 7 |
CREATE TABLE client_info(
client_id INT PRIMARY KEY NOT NULL, client_firstname TEXT NOT NULL, client_lastname TEXT NOT NULL, client_age INT NOT NULL, client_email TEXT NOT NULL ); |
Now, let’s put some records in the table:
1
2 3 4 5 6 7 |
INSERT INTO client_info(client_id,client_firstname, client_lastname, client_age, client_email)
VALUES (1,’John’,’Turf’,17,’[email protected]’), (2,’Raizel’,’Mendez’,16,’[email protected]’), (3,’Gwyneth’,’Damon’,16,’[email protected]om’), (4,’Yeshua’,’Galisanao’,8,’[email protected]’), (5,’Dereck’,’Scott’,10,’[email protected]’); |
We can verify that our INSERT
was successful with a SELECT
query statement:
1
2 3 4 5 6 7 8 9 |
testdatabase=# SELECT * FROM client_info;
client_id | client_firstname | client_lastname | client_age | client_email ———–+——————+—————–+————+———————— 1 | John | Turf | 17 | [email protected] 2 | Raizel | Mendez | 16 | [email protected] 3 | Gwyneth | Damon | 16 | [email protected] 4 | Yeshua | Galisanao | 8 | [email protected] 5 | Dereck | Scott | 10 | [email protected] (5 sor) |
egy példa segítségével PostgreSQL érdekében ASC
most, hogy megtudtuk, hogy a PostgreSQL ORDER BY
utasítás működik, megpróbáljuk az előző szakaszban létrehozott rekordok rendezésére használni.
használjuk a következő utasítást:
1
|
SELECT * FROM client_info megrendelés client_firstname asc szerint;
|
Ez az utasítás utasítja a PostgreSQL-t, hogy válassza ki a táblázat összes sorát client_info
és rendezze őket a client_firstname
oszlop növekvő sorrendben.
a lekérdezés eredményei a következőképpen fognak kinézni:
1
2 3 4 5 6 7 8 |
client_id | client_firstname | client_lastname | client_age | client_email
———–+——————+—————–+————+———————— 5 | Dereck | Scott | 10 | [email protected] 3 | Gwyneth | Damon | 16 | [email protected] 1 | John | Turf | 17 | [email protected] 2 | Raizel | Mendez | 16 | [email protected] 4 | Yeshua | Galisanao | 8 | [email protected] (5 sor) |
láthatjuk, hogy a client_firstname
mező értékei növekvő ábécé sorrendben vannak rendezve– lekérdezésünk sikeres volt.
példa a PostgreSQL ORDER by DESC használatával
az előző példában a ORDER BY
záradékot használtuk a ASC
opcióval növekvő sorrendben. Most az ellenkezőjét fogjuk tenni, és aORDER BY
DESC
segítségével rendezzük csökkenő sorrendben.
ehhez a következő utasítást fogjuk használni:
1
|
SELECT * FROM client_info rendelés Client_age desc szerint;
|
a fenti kód a client_age
alapján csökkenő sorrendben rendezi a beolvasott sorokat.
Az eredmények így fognak kinézni:
1
2 3 4 5 6 7 8 |
client_id | client_firstname | client_lastname | client_age | client_email
———–+——————+—————–+————+———————— 1 | John | Turf | 17 | [email protected] 2 | Raizel | Mendez | 16 | [email protected] 3 | Gwyneth | Damon | 16 | [email protected] 5 | Dereck | Scott | 10 | [email protected] 4 | Yeshua | Galisanao | 8 | [email protected] (5 sor) |
ahogy vártuk, a client_age
oszlopban szereplő értékek rendeződnek és csökkenő sorrendben kerülnek visszaadásra.
következtetés
Az eredmények rendezése rendet és olvashatóságot hozhat a rendezetlen adatokhoz, ezért fontos tudni, hogyan adhatja meg rendezési beállításait az adatbázis-lekérdezésekben. Ebben az oktatóanyagban a PostgreSQL ORDER BY
záradékról beszéltünk, amely lehetővé teszi a növekvő és a csökkenő sorrend közötti választást rendezési lehetőségként. A korábban útmutatóként tárgyalt példákkal megadhatja a rendezési sorrendet a saját adatbázis-lekérdezéseiben.
csak a kód
alább látható az összes kódrészletet néztük végig a bemutató. Nyugodtan másolja és módosítsa őket, hogy illeszkedjen a saját felhasználási eseteihez.
1
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
SELECT * FROM client_info megrendelés client_age DESC szerint;
Táblázat létrehozása client_info ( client_id Int elsődleges kulcs nem NULL, client_firstname szöveg nem NULL, client_lastname szöveg nem NULL, client_age INT nem NULL, client_email szöveg nem NULL ); beszúrása client_info(client_id, client_firstname, client_lastname, client_age, client_email) VALUES (1,’John’,’Turf’,17,’[email protected]’), (2,’Raizel’,’Mendez’,16,’[email protected]’), (3,’Gwyneth’,’Damon’,16,’[email protected]’), (4,’Yeshua’,’Galisanao’,8,’[email protected]’), (5,’Dereck’,’Scott’,10,’[email protected]’); SELECT * FROM client_info rendelés client_firstname ASC; SELECT * FROM client_info rendelés client_age DESC; |