Python SQLite - Pesan Berdasarkan
Saat mengambil data menggunakan kueri SELECT, Anda akan mendapatkan record dalam urutan yang sama dengan yang Anda masukkan.
Anda dapat mengurutkan hasil dalam urutan yang diinginkan (naik atau turun) menggunakan Order Byayat. Secara default, klausa ini mengurutkan hasil dalam urutan menaik, jika Anda perlu mengaturnya dalam urutan menurun Anda perlu menggunakan "DESC" secara eksplisit.
Sintaksis
Berikut ini adalah sintaks klausa ORDER BY di SQLite.
SELECT column-list
FROM table_name
[WHERE condition]
[ORDER BY column1, column2, .. columnN] [ASC | DESC];
Contoh
Asumsikan kita telah membuat tabel dengan nama CRICKETERS menggunakan query berikut -
sqlite> CREATE TABLE CRICKETERS (
First_Name VARCHAR(255),
Last_Name VARCHAR(255),
Age int,
Place_Of_Birth VARCHAR(255),
Country VARCHAR(255)
);
sqlite>
Dan jika kita telah memasukkan 5 record ke dalamnya menggunakan pernyataan INSERT sebagai -
sqlite> insert into CRICKETERS values('Shikhar', 'Dhawan', 33, 'Delhi', 'India');
sqlite> insert into CRICKETERS values('Jonathan', 'Trott', 38, 'CapeTown', 'SouthAfrica');
sqlite> insert into CRICKETERS values('Kumara', 'Sangakkara', 41, 'Matale', 'Srilanka');
sqlite> insert into CRICKETERS values('Virat', 'Kohli', 30, 'Delhi', 'India');
sqlite> insert into CRICKETERS values('Rohit', 'Sharma', 32, 'Nagpur', 'India');
sqlite>
Mengikuti pernyataan SELECT mengambil baris tabel CRICKETERS dalam urutan menaik dari usianya -
sqlite> SELECT * FROM CRICKETERS ORDER BY AGE;
First_Name Last_Name Age Place_Of_B Country
---------- ---------- ---- ---------- -----------
Virat Kohli 30 Delhi India
Rohit Sharma 32 Nagpur India
Shikhar Dhawan 33 Delhi India
Jonathan Trott 38 CapeTown SouthAfrica
Kumara Sangakkara 41 Matale Srilanka
sqlite>
Anda bisa menggunakan lebih dari satu kolom untuk mengurutkan rekaman tabel. Pernyataan SELECT berikut akan mengurutkan record tabel CRICKETERS berdasarkan kolom AGE dan FIRST_NAME .
sqlite> SELECT * FROM CRICKETERS ORDER BY AGE, FIRST_NAME;
First_Name Last_Name Age Place_Of_B Country
---------- ---------- ---- ---------- -------------
Virat Kohli 30 Delhi India
Rohit Sharma 32 Nagpur India
Shikhar Dhawan 33 Delhi India
Jonathan Trott 38 CapeTown SouthAfrica
Kumara Sangakkara 41 Matale Srilanka
sqlite>
Secara default, file ORDER BY klausa mengurutkan rekaman tabel dalam urutan menaik Anda dapat mengatur hasil dalam urutan menurun menggunakan DESC sebagai -
sqlite> SELECT * FROM CRICKETERS ORDER BY AGE DESC;
First_Name Last_Name Age Place_Of_B Country
---------- ---------- ---- ---------- -------------
Kumara Sangakkara 41 Matale Srilanka
Jonathan Trott 38 CapeTown SouthAfrica
Shikhar Dhawan 33 Delhi India
Rohit Sharma 32 Nagpur India
Virat Kohli 30 Delhi India
sqlite>
ORDER BY Clause Menggunakan Python
Untuk mengambil konten tabel dalam urutan tertentu, panggil metode execute () pada objek kursor dan, teruskan pernyataan SELECT bersama dengan klausa ORDER BY, sebagai parameter untuknya.
Contoh
Dalam contoh berikut, kami membuat tabel dengan nama dan Karyawan, mengisinya, dan mengambil kembali rekamannya dalam urutan (menaik) sesuai usianya, menggunakan klausa ORDER BY.
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
#Populating the table
cursor.execute(
'''INSERT INTO EMPLOYEE(FIRST_NAME, LAST_NAME, AGE, SEX, INCOME)
VALUES ('Ramya', 'Rama priya', 27, 'F', 9000),
('Vinay', 'Battacharya', 20, 'M', 6000),
('Sharukh', 'Sheik', 25, 'M', 8300),
('Sarmista', 'Sharma', 26, 'F', 10000),
('Tripthi', 'Mishra', 24, 'F', 6000)''')
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()
Keluaran
[
('Vinay', 'Battacharya', 20, 'M', 6000, None),
('Tripthi', 'Mishra', 24, 'F', 6000, None),
('Sharukh', 'Sheik', 25, 'M', 8300, None),
('Sarmista', 'Sharma', 26, 'F', 10000, None),
('Ramya', 'Rama priya', 27, 'F', 9000, None)
]