如何在 Python 中统计 MySQL 表格的行数?


在处理数据库时,统计 MySQL 表格的行数是一个常见的操作。在 Python 中,您可以使用 MySQL Connector 模块建立与 MySQL 数据库的连接,并执行 SQL 查询以从表格中获取数据。使用 Python 统计 MySQL 表格的行数有多种方法,您选择的方法将取决于您项目特定需求。

本文将指导您如何获取位于数据库中的特定 MySQL 表格的行数。首先,我们将建立与包含所需 MySQL 表格的数据库的连接。

要在 Python 中统计 MySQL 表格的行数,您需要执行一个 SQL SELECT 语句,该语句从表格中获取所有行。

请考虑以下 SQL 查询。

select * from <tableName>

获取行后,您可以使用游标对象的 **rowcount** 属性来确定查询返回的行数。或者,您可以在 SQL 中使用 COUNT() 函数直接统计表格的行数,并使用 Python 检索结果。

在本文中,我们将首先探讨一个名为 **insillion** 的单个数据库,其中我们将有一个名为 bikes 的表格,其中包含 4 行数据。

作为参考,请考虑以下按顺序显示的查询。

选择特定数据库

use insillion

选择特定数据库后,我们需要选择要对其运行查询的特定表格。

请考虑以下 SQL 命令。

select * from bikes;

输出

在我本地 MySQL 上运行上述命令后,我得到了以下输出。

mysql> select * from bikes;
+----+-------+-------+
| id | name  | price |
+----+-------+-------+
|  1 | Bajaj |  2543 |
|  2 | KTM   |  4789 |
|  3 | TVS   |  2790 |
|  4 | Hero  |  2100 |
+----+-------+-------+

从上述输出中,您可以清楚地看到我们的 bikes 表格中存在 4 行数据。

现在让我们关注 Python 示例,在这些示例中,我们将使用两种不同的方法来计算 bikes 表格中存在的行数。

使用 pymysql 和 mysqldb

**pymysql** 和 **mysqlclient** 是两个用于连接和与 MySQL 数据库交互的流行 Python 库。

  • pymysql 是 MySQL 客户端-服务器协议的纯 Python 实现,这意味着它不需要任何外部库或依赖项。

  • mysqlclient 是一个基于 MySQL C API 的 MySQL 数据库的 Python 接口。它提供了比 pymysql 更快、更高效的实现。

请考虑以下代码。此代码导入 pymysql 和 MySQLdb 模块以将 Python 与 MySQL 数据库连接,使用指定的凭据建立数据库连接,检索一个游标对象以与数据库交互,执行一个 SQL 查询以获取表格中的行数,并打印行数。

# import required modules
import pymysql
pymysql.install_as_MySQLdb()
import MySQLdb

# connect python with mysql with your hostname,
# username, password and database
db= MySQLdb.connect(host='localhost', user='root', password='yourpassword'', database='insillion')

# get cursor object
cursor= db.cursor()

# get number of rows in a table and give your table
# name in the query
number_of_rows = cursor.execute("SELECT * FROM bikes")

# print the number of rows
print("Number of rows are:" ,number_of_rows)

要运行上述代码,我们首先需要在我们的机器上安装 **pymysql** 和 **mysqlclient** 库,为此我们可以使用以下命令。

pip3 install pymysql
pip3 install mysqlclient

输出

现在,执行代码后,您将获得以下输出

Number of rows are: 4

使用 mysql-connector

**mysql-connector-python** 是一个 Python 库,它提供了一个用于连接和与 MySQL 数据库交互的接口。它是 MySQL 客户端-服务器协议的纯 Python 实现,这意味着它不需要任何外部库或依赖项。

请考虑以下代码。

import mysql.connector

# Establish a connection to the MySQL database
with mysql.connector.connect(
    host="localhost",
    user="root",
    password="domain@immukul",
    database="insillion"
) as conn:

   # Create a cursor object to interact with the database
   with conn.cursor() as cursor:
        
   # Execute a SQL query that counts the number of rows in the table
   cursor.execute("SELECT COUNT(*) FROM bikes")
        
   # Get the result of the query
   result = cursor.fetchone()
        
   # The result is a tuple with one element, which contains the count
   row_count = result[0]
        
   print("Number of rows in the table:", row_count)

要运行上述代码,我们首先需要在我们的机器上安装 **mysql-connector-python** 和 **mysqlclient** 库,为此我们可以使用以下命令。

pip3 install mysql-connector-python

输出

执行后,您将获得以下输出

Number of rows are: 4

结论

总之,在 Python 中统计 MySQL 表格的行数是一项简单的任务,可以使用多种方法完成。三种主要方法是使用 rowcount() 方法、执行 SQL 查询以检索行数以及使用 SELECT COUNT(*) 语句。

Python 库(如 pymysql、mysqlclient 和 mysql-connector-python)可用于连接 MySQL 数据库并执行行计数操作。

更新于: 2023年4月18日

8K+ 浏览量

开启你的职业生涯

通过完成课程获得认证

立即开始
广告