MulaiMulai sekarang secara gratis

Memilih data dari Tabel dengan SQLAlchemy

Kerja bagus sejauh ini! Sekarang saatnya Anda membangun pernyataan select pertama menggunakan SQLAlchemy. SQLAlchemy menyediakan cara berinteraksi dengan database yang "Pythonic". Saat Anda menggunakan SQL mentah pada latihan sebelumnya, Anda mengkueri database secara langsung. Saat menggunakan SQLAlchemy, Anda akan menggunakan objek Table, dan SQLAlchemy akan menangani penerjemahan kueri Anda menjadi pernyataan SQL yang sesuai. Dengan demikian, alih-alih harus menangani perbedaan dialek SQL tradisional tertentu seperti MySQL atau PostgreSQL, Anda dapat memanfaatkan kerangka kerja Pythonic dari SQLAlchemy untuk menyederhanakan alur kerja dan mengkueri data Anda secara lebih efisien. Karena alasan ini, mempelajarinya tetap bermanfaat bahkan jika Anda sudah akrab dengan SQL tradisional.

Dalam latihan ini, Anda akan kembali membangun pernyataan untuk mengkueri semua rekaman dari tabel census. Namun kali ini, Anda akan menggunakan fungsi select() dari modul sqlalchemy. Fungsi ini memerlukan daftar tabel atau kolom sebagai satu-satunya argumen wajib: misalnya, select([my_table]).

Anda juga akan mengambil hanya beberapa rekaman dari ResultProxy dengan menggunakan .fetchmany() dengan argumen size yang menentukan jumlah rekaman yang diambil.

Table dan MetaData telah diimpor. Metadata tersedia sebagai metadata dan koneksi ke database sebagai connection.

Latihan ini adalah bagian dari kursus

Pengantar Basis Data di Python

Lihat Kursus

Petunjuk latihan

  • Impor select dari modul sqlalchemy.
  • Refleksikan tabel census. Kode ini sudah dituliskan untuk Anda.
  • Buat kueri menggunakan fungsi select() untuk mengambil semua rekaman dalam tabel census. Caranya, berikan daftar ke select() yang berisi satu elemen: census.
  • Cetak stmt untuk melihat kueri SQL yang sebenarnya dibuat. Kode ini telah dituliskan untuk Anda.
  • Ambil 10 rekaman dari tabel census dan simpan dalam results. Untuk melakukannya:
    • Gunakan metode .execute() pada connection dengan stmt sebagai argumen untuk memperoleh ResultProxy.
    • Gunakan .fetchmany() dengan argumen size yang sesuai pada connection.execute(stmt) untuk memperoleh ResultSet.

Latihan interaktif praktis

Cobalah latihan ini dengan menyelesaikan kode contoh berikut.

# Import select
from ____ import ____

# Reflect census table via engine: census
census = Table('census', metadata, autoload=True, autoload_with=engine)

# Build select statement for census table: stmt
stmt = ____

# Print the emitted statement to see the SQL string
print(stmt)

# Execute the statement on connection and fetch 10 records: result
results = ____.____(____).____(size=___)

# Execute the statement and print the results
print(results)
Edit dan Jalankan Kode