MulaiMulai sekarang secara gratis

Menghapus rekaman tertentu

Dengan menggunakan klausa where(), Anda dapat menargetkan pernyataan delete untuk hanya menghapus rekaman tertentu. Misalnya, Jason menghapus semua baris dari tabel employees yang memiliki id 3 dengan pernyataan delete berikut:

delete(employees).where(employees.columns.id == 3) 

Di sini Anda akan menghapus SEMUA baris yang memiliki 'M' pada kolom sex dan 36 pada kolom age. Kami telah menyertakan kode di awal yang menghitung total jumlah baris tersebut. Penting untuk memastikan bahwa inilah jumlah baris yang benar-benar Anda hapus.

Latihan ini adalah bagian dari kursus

Pengantar Basis Data di Python

Lihat Kursus

Petunjuk latihan

  • Bangun pernyataan delete untuk menghapus data dari tabel census. Simpan sebagai delete_stmt.
  • Tambahkan klausa where ke delete_stmt yang berisi and_ untuk memfilter baris yang memiliki 'M' pada kolom sex DAN 36 pada kolom age.
  • Jalankan pernyataan delete.
  • Kirim jawaban untuk mencetak rowcount dari results, serta to_delete, yang mengembalikan jumlah baris yang seharusnya dihapus. Keduanya harus cocok dan ini merupakan pemeriksaan kewarasan yang penting!

Latihan interaktif praktis

Cobalah latihan ini dengan menyelesaikan kode contoh berikut.

# Build a statement to count records using the sex column for Men ('M') age 36: count_stmt
count_stmt = select([func.count(census.columns.sex)]).where(
    and_(census.columns.sex == 'M',
         census.columns.age == 36)
)

# Execute the select statement and use the scalar() fetch method to save the record count
to_delete = connection.execute(count_stmt).scalar()

# Build a statement to delete records from the census table: delete_stmt
delete_stmt = ____

# Append a where clause to target Men ('M') age 36: delete_stmt
delete_stmt = delete_stmt.____(
    ____(census.columns.sex == ____,
         ____ == ____)
)

# Execute the statement: results
results = connection.execute(____)

# Print affected rowcount and to_delete record count, make sure they match
print(results.rowcount, to_delete)
Edit dan Jalankan Kode