如何在 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+ 瀏覽量

開啟你的職業生涯

透過完成課程獲得認證

立即開始
廣告