1. Học hỏi
  2. /
  3. Khoa Học
  4. /
  5. Nhập môn Cơ sở dữ liệu với Python

Connected

Bài tập

Chọn dữ liệu từ một Table với SQLAlchemy

Bạn làm rất tốt đến đây rồi! Giờ là lúc xây dựng câu lệnh select đầu tiên bằng SQLAlchemy. SQLAlchemy cung cấp một cách tương tác với cơ sở dữ liệu “rất Pythonic”. Ở bài trước khi dùng SQL thuần, bạn truy vấn trực tiếp cơ sở dữ liệu. Khi dùng SQLAlchemy, bạn sẽ làm việc thông qua một đối tượng Table, và SQLAlchemy sẽ lo việc chuyển truy vấn của bạn thành câu lệnh SQL phù hợp. Nhờ vậy, thay vì phải xử lý khác biệt giữa các biến thể SQL truyền thống như MySQL hay PostgreSQL, bạn có thể tận dụng khung Pythonic của SQLAlchemy để tinh gọn quy trình và truy vấn dữ liệu hiệu quả hơn. Vì lý do này, SQLAlchemy rất đáng để học ngay cả khi bạn đã quen với SQL truyền thống.

Trong bài này, bạn sẽ tiếp tục xây dựng một câu lệnh để truy vấn tất cả bản ghi từ bảng census. Tuy nhiên, lần này bạn sẽ dùng hàm select() của mô-đun sqlalchemy. Hàm này yêu cầu một đối số bắt buộc là danh sách các bảng hoặc cột: ví dụ, select([my_table]).

Bạn cũng sẽ chỉ lấy một vài bản ghi từ ResultProxy bằng cách dùng .fetchmany() với đối số size để chỉ định số bản ghi cần lấy.

Table và MetaData đã được import. Metadata có sẵn dưới tên metadata và kết nối tới cơ sở dữ liệu là connection.

Hướng dẫn

100 XP
  • Import select từ mô-đun sqlalchemy.
  • Phản chiếu (reflect) bảng census. Đoạn mã này đã được viết sẵn cho bạn.
  • Tạo một truy vấn bằng hàm select() để lấy tất cả bản ghi trong bảng census. Để làm vậy, truyền vào select() một danh sách chỉ có một phần tử: census.
  • In stmt để xem câu lệnh SQL thực tế được tạo ra. Đoạn mã này đã được viết sẵn cho bạn.
  • Lấy 10 bản ghi từ bảng census và lưu vào results. Thực hiện như sau:
    • Dùng phương thức .execute() trên connection với đối số là stmt để nhận ResultProxy.
    • Dùng .fetchmany() với đối số size phù hợp trên connection.execute(stmt) để lấy ResultSet.