No menu items!
No menu items!
More

    [Python] – Query all, filter, filter_by và first trong SQLAlchemy

    SQLAlchemy là một thư viện ORM (Object Relational Mapping) phổ biến cho Python. Nó cho phép lập trình viên kết nối ứng dụng Python với cơ sở dữ liệu quan hệ một cách dễ dàng và hiệu quả.

    Trong SQLAlchemy, một Query là một đối tượng đại diện cho một truy vấn SQL. Nó có thể được sử dụng để truy vấn dữ liệu từ cơ sở dữ liệu.

    Trong bài viết này, chúng ta sẽ tìm hiểu về bốn phương thức quan trọng của đối tượng Query:

    • Query.all()
    • Query.filter()
    • Query.filter_by()
    • Query.first()

    Lý thuyết

    • Query.all()

    Phương thức Query.all() trả về một danh sách tất cả các bản ghi trong truy vấn.

    Ví dụ:

    from sqlalchemy import create_engine
    from sqlalchemy.orm import declarative_base
    
    engine = create_engine("mysql+pymysql://root:123456@localhost/mydb")
    Base = declarative_base()
    
    class User(Base):
        __tablename__ = "users"
    
        id = Column(Integer, primary_key=True)
        name = Column(String(50))
        age = Column(Integer)
    
    Base.metadata.create_all(engine)
    
    session = Session(engine)
    
    users = session.query(User).all()
    
    for user in users:
        print(user.name, user.age)

    Kết quả đầu ra:

    John 25
    Mary 30
    • Query.filter()

    Phương thức Query.filter() cho phép lọc các bản ghi trong truy vấn dựa trên một điều kiện.

    Ví dụ:

    users = session.query(User).filter(User.age > 20).all()
    
    for user in users:
        print(user.name, user.age)

    Kết quả đầu ra:

    Mary 30
    • Query.filter_by()

    Phương thức Query.filter_by() cho phép lọc các bản ghi trong truy vấn dựa trên một giá trị cụ thể cho một trường nhất định.

    Ví dụ:

    users = session.query(User).filter_by(age=30).all()
    
    for user in users:
        print(user.name, user.age)

    Kết quả đầu ra:

    Mary 30
    • Query.first()

    Phương thức Query.first() trả về bản ghi đầu tiên trong truy vấn.

    Ví dụ:

    user = session.query(User).first()
    
    print(user.name, user.age)

    Kết quả đầu ra:

    Mary 30

    Các ví dụ

    Dưới đây là một số ví dụ khác về cách sử dụng các phương thức này:

    • Sử dụng Query.all() để truy vấn tất cả các bản ghi trong một bảng:
    users = session.query(User).all()
    • Sử dụng Query.filter() để lọc các bản ghi dựa trên một điều kiện:

    Python

    users = session.query(User).filter(User.name == "John").all()
    • Sử dụng Query.filter_by() để lọc các bản ghi dựa trên một giá trị cụ thể cho một trường:

    Python

    users = session.query(User).filter_by(age=30).all()
    • Sử dụng Query.first() để trả về bản ghi đầu tiên trong truy vấn:

    Python

    user = session.query(User).first()

    Các điểm lưu ý

    • Các phương thức này chỉ có thể được sử dụng với các truy vấn được tạo bằng cách sử dụng Query().
    • Các phương thức này có thể được kết hợp với nhau để tạo các truy vấn phức tạp hơn.

    Kết luận

    Các phương thức Query.all(), Query.filter(), Query.filter_by()Query.first() là những phương thức quan trọng của đối tượng Query trong SQLAlchemy. Chúng cho phép lập trình viên truy vấn dữ liệu từ cơ sở dữ liệu một cách dễ dàng và hiệu quả

    Bài viết gần đây

    spot_img

    Related Stories

    Leave A Reply

    Please enter your comment!
    Please enter your name here

    Đăng ký nhận thông tin bài viết qua email