مرتب سازی و order در پایگاه داده PostgreSQL

  • مدرس:
  • تاریخ انتشار: 1402/05/05
  • تعداد بازدید: 71

مرتب سازی با order by

معمولاً اگر بخواهید داده ها را از یک جدول بازیابی کنید ، سوابق را به همان ترتیب که در آن قرار داده اید دریافت می کنید.

با استفاده از بند ORDER BY ، هنگام بازیابی سوابق جدول می توانید رکوردهای حاصل را به ترتیب صعودی یا نزولی بر اساس ستون مورد نظر مرتب کنید.

در زیر نحو استفاده از  ORDER BY در PostgreSQL آورده شده است.

SELECT column-list
	FROM table_name
	[WHERE condition]
	[ORDER BY column1, column2, .. columnN] [ASC | DESC];	

استفاده از order by در کد پایتون

برای بازیابی محتویات یک جدول به ترتیب خاص ، روش () execute را بر روی شی c مکان نما فراخوانی کرده و دستور SELECT را به همراه بند ORDER BY به عنوان یک پارامتر به آن منتقل کنید.

مثال

در مثال زیر ،نمونه استفاده از دستور order by برای مرتب سازی بر اساس age را به شما نمایش می دهیم.


import psycopg2

# establishing the connection
conn = psycopg2.connect(
database="mydb", user='postgres', password='password', host='127.0.0.1', port='5432'
)

# Setting auto commit True
conn.autocommit = True

# Creating a cursor object using the cursor() method
cursor = conn.cursor()

# Doping EMPLOYEE table if already exists.
cursor.execute("DROP TABLE IF EXISTS EMPLOYEE")

# Creating a table
sql = '''CREATE TABLE EMPLOYEE(
    FIRST_NAME CHAR(20) NOT NULL,
    LAST_NAME CHAR(20),
    AGE INT, SEX CHAR(1),
    INCOME INT,
    CONTACT INT
)'''
cursor.execute(sql)

# Populating the table
insert_stmt = "INSERT INTO EMPLOYEE(
    FIRST_NAME, LAST_NAME, AGE, SEX, INCOME, CONTACT) VALUES
    ( % s, % s, % s, % s, % s, % s)"
data = [('Krishna', 'Sharma', 26, 'M', 2000, 101),
        ('Raj', 'Kandukuri', 20, 'M', 7000, 102),
        ('Ramya', 'Ramapriya', 29, 'F', 5000, 103),
        ('Mac', 'Mohan', 26, 'M', 2000, 104)]
cursor.executemany(insert_stmt, data)
conn.commit()

# Retrieving specific records using the ORDER BY clause
cursor.execute("SELECT * from EMPLOYEE ORDER BY AGE")
print(cursor.fetchall())

# Commit your changes in the database
conn.commit()

# Closing the connection
conn.close()

خروجی:

[('Sharukh', 'Sheik', 25, 'M', 8300.0), ('Sarmista', 'Sharma', 26, 'F', 10000.0)]