Bắt đầu ngayBắt đầu miễn phí

Xóa các bản ghi cụ thể

Bằng cách dùng mệnh đề where(), bạn có thể nhắm mục tiêu câu lệnh delete để chỉ xóa một số bản ghi nhất định. Ví dụ, Jason đã xóa tất cả các hàng trong bảng employeesid bằng 3 với câu lệnh xóa sau:

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

Tại đây, bạn sẽ xóa TẤT CẢ các hàng có 'M' trong cột sex36 trong cột age. Chúng tôi đã thêm mã ở đầu để tính tổng số hàng như vậy. Việc đảm bảo đây chính là số hàng bạn thực sự xóa là rất quan trọng.

Bài tập này là một phần của khóa học

Nhập môn Cơ sở dữ liệu với Python

Xem khóa học

Hướng dẫn bài tập

  • Xây dựng một câu lệnh delete để xóa dữ liệu khỏi bảng census. Lưu lại dưới tên delete_stmt.
  • Thêm một mệnh đề where vào delete_stmt có chứa and_ để lọc các hàng có 'M' trong cột sex 36 trong cột age.
  • Thực thi câu lệnh xóa.
  • Gửi câu trả lời để in rowcount của results, cũng như to_delete, là số hàng lẽ ra phải bị xóa. Hai con số này cần KHỚP nhau — đây là bước kiểm tra tính hợp lý quan trọng!

Bài tập tương tác thực hành trực tiếp

Hãy thử làm bài tập này bằng cách hoàn thành đoạn mã mẫu này.

# 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)
Chỉnh sửa và Chạy Mã