📜  SQLAlchemy 中的楼层划分

📅  最后修改于: 2022-05-13 01:55:37.856000             🧑  作者: Mango

SQLAlchemy 中的楼层划分

在本文中,我们将看到如何在 SQLAlchemy 中针对Python中的 PostgreSQL 数据库执行地板除法。

楼层划分使用不同的功能以不同的方法进行。这种数学运算是依赖于数据库的。在 PostgreSQL 中,地板除法是使用称为 div() 的函数执行的。在 SQLAlchemy 中,像使用 func 属性的常规 SQL 函数一样调用 SUM、MIN、MAX 等通用函数。

SQLAlchemy 中使用的一些常用函数是count、cube、current_date、current_time、max、min、mode 等。

创建演示表:

从 SQLAlchemy 包中导入必要的函数。使用如下所示的 create_engine()函数建立与 PostgreSQL 数据库的连接 创建一个名为 books 的表,其中包含 book_id 和 book_price 列。

如图所示,使用 insert() 和 values()函数将记录插入表中。

Python3
# import necessary packages
from sqlalchemy import (create_engine, MetaData,
Table, Column, Numeric, Integer)
 
# establish connections
engine = create_engine(
    "postgresql+psycopg2://postgres:Saibaba97%40@127.0.0.1:5432/test")
 
# initialize meta data
meta = MetaData()
 
# create a table schema
books = Table(
    'books', meta,
    Column('bookId', Integer, primary_key=True),
    Column('book_price', Numeric),
)
 
meta.create_all(engine)
 
# insert records into the table
statement1 = books.insert().values(bookId=1,
                                   book_price=12.2)
statement2 = books.insert().values(bookId=2,
                                   book_price=13.2)
statement3 = books.insert().values(bookId=3,
                                   book_price=121.6)
statement4 = books.insert().values(bookId=4,
                                   book_price=100)
statement5 = books.insert().values(bookId=5,
                                   book_price=1112.2)
 
# execute the insert records statement
engine.execute(statement1)
engine.execute(statement2)
engine.execute(statement3)
engine.execute(statement4)
engine.execute(statement5)


Python3
# import necessary packages
from sqlalchemy import func
 
# pass the sql query statement to
# the execute function
result = engine.execute('SELECT div(book_price,3)\
AS minimum FROM books')
 
# use fetchall() to return all result
result.fetchall()


输出:

在 SQLAlchemy 中实现楼层划分

现在从 sqlalchemy 导入func.div()函数并执行地板除法,如下所示

Python3

# import necessary packages
from sqlalchemy import func
 
# pass the sql query statement to
# the execute function
result = engine.execute('SELECT div(book_price,3)\
AS minimum FROM books')
 
# use fetchall() to return all result
result.fetchall()

输出: