如何在 SQLAlchemy 和 MySQL 中舍入一个数字?
在本文中,我们将使用 SQLAlchemy 和 MySQL 对数字进行四舍五入。
数据库相关信息:
我们使用了一个 mysql 数据库和一个名为“student”的表。
Database used : geeksforgeeks
Table used : students
要求 :
我们需要在系统中安装 MySQL 以及“SQLAlchemy”模块和“pymysql”模块(本文需要 SQLAlchemy 的依赖项)。
安装所需库的语法:
pip install sqlalchemy pymysql
有两种方法可以使用 SQLAlchemy 和 MySQL 对数字进行四舍五入:
- 使用sql的“ROUND”函数。
- 使用Python的“round”函数。
方法一:使用SQL的round函数:
SQL 为我们提供了一个“ ROUND ”函数,我们可以在查询中使用它,SQL 将返回给我们四舍五入的输出。
“ ROUND ”函数的语法是:
ROUND( value / column_name , n )
这里的第一个参数是列名或任何常量值。第二个参数 (n) 是要四舍五入的小数位数。默认情况下,n 的值等于 0,即小数点后有 0 位。
轮函数输出的几个例子:
ROUND(13.533) --> 14
ROUND(13.565 , 2) --> 13.57
ROUND(13.134 , -1) --> 10
sql查询的语法是:
SELECT ROUND(column_name , n) FROM table ;
我们用于创建查询的Python代码如下所示:
Python3
query = f'SELECT ROUND({col_to_round}) FROM {table_name}'
Python3
from sqlalchemy import create_engine
user, password, host, database = 'root', '123', 'localhost', 'geeksforgeeks'
engine = create_engine(
url=f'mysql+pymysql://{user}:{password}@{host}/{database}?charset=utf8')
connection = engine.connect()
table_name = 'students'
col_to_round = 'marks'
query = f'SELECT ROUND({col_to_round}) FROM {table_name}'
result = connection.execute(query)
for elem in result:
print(elem[0])
Python3
from sqlalchemy import create_engine
user, password, host, database = 'root', '123', 'localhost', 'geeksforgeeks'
engine = create_engine(
url=f'mysql+pymysql://{user}:{password}@{host}/{database}?charset=utf8')
connection = engine.connect()
table_name = 'students'
col_to_round = 'marks'
query = f'SELECT {col_to_round} FROM {table_name}'
result = connection.execute(query)
for elem in result:
value = elem[0]
rounded_value = round(value)
print("Value :", value, "\t Rounded value :", rounded_value)
注意:我们在上面的 ROUND函数中没有提到n的值,因为我们要四舍五入到小数点后 0 位。您显然可以通过添加“ ,”然后添加值来指定是否需要。
例子:
Python3
from sqlalchemy import create_engine
user, password, host, database = 'root', '123', 'localhost', 'geeksforgeeks'
engine = create_engine(
url=f'mysql+pymysql://{user}:{password}@{host}/{database}?charset=utf8')
connection = engine.connect()
table_name = 'students'
col_to_round = 'marks'
query = f'SELECT ROUND({col_to_round}) FROM {table_name}'
result = connection.execute(query)
for elem in result:
print(elem[0])
输出 :
方法二:使用Python的round函数
在这个方法中,我们将形成一个普通的“SELECT”查询并执行它。然后我们将得到结果,我们将在该结果上运行一个 for 循环,然后获取所有值。最后,我们将使用Python的“round”函数对值进行四舍五入,从而完成我们的任务。
sql查询的语法是:
SELECT col_name FROM table_name;
例子:
Python3
from sqlalchemy import create_engine
user, password, host, database = 'root', '123', 'localhost', 'geeksforgeeks'
engine = create_engine(
url=f'mysql+pymysql://{user}:{password}@{host}/{database}?charset=utf8')
connection = engine.connect()
table_name = 'students'
col_to_round = 'marks'
query = f'SELECT {col_to_round} FROM {table_name}'
result = connection.execute(query)
for elem in result:
value = elem[0]
rounded_value = round(value)
print("Value :", value, "\t Rounded value :", rounded_value)
输出: