📜  如何在 SQLAlchemy 和 MySQL 中舍入一个数字?

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

如何在 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)

输出: