Using Conjunctions
Menggunakan Konjungsi¶
Konjungsi adalah fungsi dalam modul SQLAlchemy yang mengimplementasikan operator relasional yang digunakan dalam klausa WHERE ekspresi SQL. Operator AND, OR, NOT, dll., digunakan untuk membentuk ekspresi majemuk yang menggabungkan dua ekspresi logis individual. Contoh sederhana penggunaan AND dalam pernyataan SELECT adalah sebagai berikut
Fungsi SQLAlchemy and_(), or_() dan not_() masing-masing mengimplementasikan operator AND, OR dan NOT.
and_() function¶
Ini menghasilkan konjungsi ekspresi yang digabungkan oleh AND. Contoh diberikan di bawah ini untuk pemahaman yang lebih baik
Ini diterjemahkan menjadi
Untuk menggunakan and_() dalam konstruksi select() pada tabel siswa, gunakan baris kode berikut
Pernyataan SELECT dari sifat berikut akan dibangun
SELECT students.id,
students.name,
students.lastname
FROM students
WHERE students.name = :name_1 AND students.id < :id_1
Kode lengkap yang menampilkan keluaran dari kueri SELECT di atas adalah sebagai berikut
from sqlalchemy import create_engine, MetaData, Table, Column, Integer, String, ForeignKey, select
engine = create_engine('sqlite:///college.db', echo = True)
meta = MetaData()
conn = engine.connect()
students = Table(
'students', meta,
Column('id', Integer, primary_key = True),
Column('name', String),
Column('lastname', String),
)
from sqlalchemy import and_, or_
stmt = select([students]).where(and_(students.c.name == 'Ariandini', students.c.id <3))
result = conn.execute(stmt)
print (result.fetchall())
output
or_() function¶
Ini menghasilkan konjungsi ekspresi yang digabungkan dengan ATAU. Kami akan mengganti objek stmt dalam contoh di atas dengan yang berikut menggunakan or_()
Yang akan secara efektif setara dengan mengikuti kueri SELECT
SELECT students.id,
students.name,
students.lastname
FROM students
WHERE students.name = :name_1
OR students.id < :id_1
Setelah Anda membuat substitusi dan menjalankan kode di atas, hasilnya adalah dua baris yang berada dalam kondisi OR
asc() function¶
Ini menghasilkan klausa ORDER BY naik. Fungsi mengambil kolom untuk menerapkan fungsi sebagai parameter.
Pernyataan tersebut mengimplementasikan ekspresi SQL berikut
Kode berikut mencantumkan semua catatan dalam tabel siswa dalam urutan menaik kolom nama
from sqlalchemy import asc
stmt = select([students]).order_by(asc(students.c.name))
result = conn.execute(stmt)
for row in result:
print (row)
Kode di atas menghasilkan keluaran berikut
desc() function
Demikian pula fungsi desc() menghasilkan klausa ORDER BY menurun sebagai berikut
Ekspresi SQL yang setara adalah
Dan output untuk baris kode di atas adalah
between() function¶
Ini menghasilkan klausa predikat BETWEEN. Ini umumnya digunakan untuk memvalidasi jika nilai kolom tertentu berada di antara rentang. Misalnya, kode berikut memilih baris dengan kolom id antara 2 dan 4
from sqlalchemy import between
stmt = select([students]).where(between(students.c.id,2,3))
print (stmt)
Ekspresi SQL adalah
SELECT students.id,
students.name,
students.lastname
FROM students
WHERE students.id
BETWEEN :id_1 AND :id_3
dan hasilnya adalah sebagai berikut
Dibuat: November 21, 2022