在本快速入門中,您會將 Python 腳本連線到您使用範例數據建立和載入的資料庫。 您可以使用適用於 Python 的 mssql-python 驅動程式來連線到資料庫並執行基本作業,例如讀取和寫入數據。
在 Windows 電腦上,mssql-python 驅動程式不需要任何外部相依性。 驅動程式會透過單一 pip 安裝來安裝所需的所有內容,讓您可以將最新版本的驅動程式用於新腳本,而不會中斷您沒有時間升級和測試的其他腳本。
mssql-python 文件 | mssql-python 原始程式碼 | 套件 (PyPi) | Visual Studio 程式碼
先決條件
蟒蛇3
如果您還沒有 Python,請從 python.org 安裝 Python 運行時間和Python 套件索引 (PyPI) 套件管理員。
您不想使用您自己的環境嗎? 使用 GitHub Codespaces 以 devcontainer 身分開啟。
SQL Server、Azure SQL Database 或 Fabric 環境中的 SQL 資料庫中具有範例架構和有效連接字串的資料庫。
設定
請遵循下列步驟來設定開發環境,以使用 mssql-python Python 驅動程式開發應用程式。
備註
此驅動程式會使用 表格式數據流 (TDS) 通訊協議,預設會在 SQL Server、網狀架構中的 SQL 資料庫和 Azure SQL Database 中啟用。 不需要額外的設定。
安裝 mssql-python 套件
從 PyPI 取得mssql-python 套件。
在空的目錄中開啟命令提示字元。
安裝
mssql-python套件。pip install mssql-python
安裝 python-dotenv 套件
python-dotenv從 PyPI 取得 。
在相同的目錄中,安裝
python-dotenv套件。pip install python-dotenv
確認已安裝的套件
您可以使用 PyPI 命令列工具來確認您預期的套件是否已安裝。
使用
pip list檢查已安裝的套件清單。pip list
建立 SQL 資料庫
此快速入門需使用 AdventureWorks2025 輕量級 架構,支援 Microsoft SQL Server、Fabric 中的 SQL 資料庫或 Azure SQL 資料庫。
執行程式碼
建立新的 檔案
建立名為
app.py的新檔案。新增模組 docstring。
""" Connects to a SQL database using mssql-python """匯入套件,包括
mssql-python。from os import getenv from dotenv import load_dotenv from mssql_python import connect使用函式
mssql-python.connect連線到 SQL 資料庫。load_dotenv() conn = connect(getenv("SQL_CONNECTION_STRING"))在目前目錄中,建立名為
.env的新檔案。在
.env檔案中,新增一個名為SQL_CONNECTION_STRING的連接字串項目。 將此範例替換為您的實際連接字串值。SQL_CONNECTION_STRING="Server=<server_name>;Database={<database_name>};Encrypt=yes;TrustServerCertificate=no;Authentication=ActiveDirectoryInteractive"小提示
這裡使用的連接字串在很大程度上取決於您所連線的 SQL 資料庫類型。 如果您要連線到 Azure SQL Database 或 Fabric 中的 SQL 資料庫,請使用 [連接字串] 索引卷標的 ODBC 連接字串。視您的案例而定,您可能需要調整驗證類型。 如需連接字串及其語法的詳細資訊,請參閱 連接字串語法參考。
執行查詢
使用 SQL 查詢字串來執行查詢並剖析結果。
建立 SQL 查詢字串的變數。
SQL_QUERY = """ SELECT TOP 5 c.CustomerID, c.CompanyName, COUNT(soh.SalesOrderID) AS OrderCount FROM SalesLT.Customer AS c LEFT OUTER JOIN SalesLT.SalesOrderHeader AS soh ON c.CustomerID = soh.CustomerID GROUP BY c.CustomerID, c.CompanyName ORDER BY OrderCount DESC; """使用
cursor.execute從資料庫的查詢中擷取結果集。cursor = conn.cursor() cursor.execute(SQL_QUERY)備註
此函式基本上會接受任何查詢並傳回結果集,其可以使用 cursor.fetchone() 來逐一查看。
使用
cursor.fetchall搭配foreach迴圈,從資料庫取得所有記錄。 然後列印記錄。records = cursor.fetchall() for r in records: print(f"{r.CustomerID}\t{r.OrderCount}\t{r.CompanyName}")儲存
app.py檔案。
開啟終端機並測試應用程式。
python app.py以下是預期的輸出。
29485 1 Professional Sales and Service 29531 1 Remarkable Bike Store 29546 1 Bulk Discount Store 29568 1 Coalition Bike Company 29584 1 Futuristic Bikes
將數據列插入為交易
安全地執行 INSERT 語句並傳遞參數。 將參數當做值傳遞,可保護您的應用程式免於 遭受SQL 插入 式攻擊。
將
randrange從random庫匯入並添加到app.py的最上方。from random import randrange在
app.py結尾新增程式碼,以產生隨機的產品編號。productNumber = randrange(1000)小提示
在這裡產生隨機的產品名稱可確保您可以多次執行此範例。
建立 SQL 語句字串。
SQL_STATEMENT = """ INSERT SalesLT.Product ( Name, ProductNumber, StandardCost, ListPrice, SellStartDate ) OUTPUT INSERTED.ProductID VALUES (?, ?, ?, ?, CURRENT_TIMESTAMP) """使用
cursor.execute執行該語句。cursor.execute( SQL_STATEMENT, ( f'Example Product {productNumber}', f'EXAMPLE-{productNumber}', 100, 200 ) )使用
cursor.fetchone擷取單一結果,打印該結果的唯一標識符,然後使用connection.commit將操作提交為交易。result = cursor.fetchone() print(f"Inserted Product ID : {result['ProductID']}") conn.commit()小提示
您可以選擇性地使用
connection.rollback來回復交易。使用
cursor.close和connection.close關閉游標和連接。cursor.close() conn.close()儲存
app.py檔案並再次測試應用程式。python app.py以下是預期的輸出。
Inserted Product ID : 1001
後續步驟
mssql-python如需更多範例,請瀏覽驅動程式 GitHub 存放庫,以參與想法或報告問題。