Python PostgreSQL-注文者
通常、テーブルからデータを取得しようとすると、挿入した順序と同じ順序でレコードが取得されます。
構文
以下は、PostgreSQLのORDER BY句の構文です。
例
次のクエリを使用して、名前CRICKETERSのテーブルを作成したとします-
そして、INSERTステートメントを使用して5つのレコードを挿入した場合-
次のSELECTステートメントは、年齢の昇順でCRICKETERSテーブルの行を取得します-
複数の列を使用して、テーブルのレコードをソートできます。 次のSELECTステートメントは、列ageおよびFIRST_NAMEに基づいてCRICKETERSテーブルのレコードをソートします。
デフォルトでは、 ORDER BY 句はテーブルのレコードを昇順でソートします。 次のようにDESCを使用して、結果を降順に並べることができます-
Pythonを使用したORDER BY句
テーブルの内容を特定の順序で取得するには、カーソルオブジェクトでexecute()メソッドを呼び出し、パラメータとしてORDER BY句とともにSELECTステートメントを渡します。
例
次の例では、ORDER BY句を使用して、名前とEmployeeを使用してテーブルを作成し、それを設定し、そのレコードを年齢の(昇順)順序で取得します。
import psycopg2
#establishing the connection
conn = psycopg2.connect(
database="mydb", user='postgres', password='password', host='127.0.0.1', port= '5432'
)
#Setting auto commit false
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()
出力