使用 Python 和 Pyodbc 連線到 Microsoft SQL Server
Microsoft SQL Server 是一個關聯式資料庫管理系統或簡稱 RDBMS。顧名思義,它是由微軟開發的,是用 C/C++
編寫的。它是一種工具,可讓其使用者使用 SQL
或結構化查詢語言與關聯式資料庫進行互動。
在處理實際應用程式時,我們必須處理大量資料。資料必須每秒更新、建立和刪除,而這些 RDBMS 足夠智慧和強大,可以快速安全地處理此類操作。
現在,應用程式是使用各種程式語言開發的。這意味著每種程式語言都應該有一種方法可以連線到這些 RDBMS 並訪問儲存在資料庫中的資料。這些方法包括 ORM
或物件關係對映庫和開放資料庫連線或 ODBC
包。這是兩個非常不同的東西,它們都可以用來連線到資料庫。
兩者之間的一個簡單區別是 ORM
允許開發人員使用 Python 類或代表資料庫表和管理器的模型(另一個 Python 類)與資料庫互動,以對模型執行查詢。另一方面,ODBC
允許開發人員編寫原始或本機 SQL 查詢以直接與資料庫互動。
由於 Python 是一種著名且廣泛使用的程式語言,因此它對 ORMs
和 ODBCs
也有很好的支援。而且,由於我們正在討論使用 Python 和 pyodbc
連線到 Microsoft SQL Server,我們將主要了解 ODBCs
,因為 pyodbc
是一個 ODBC
。
使用 pyodbc
連線到 Microsoft SQL Server
要連線到 Microsoft SQL Server,我們首先需要有關伺服器的一些詳細資訊:驅動程式名稱、伺服器名稱和資料庫名稱。有了以上資訊,必須建立一個特殊的字串,該字串將傳遞給 pyodbc
庫的 connect()
函式。
字串的格式如下——
Driver={<driver_name>};Server=<server_name>;Database=<database_name>;Trusted_Connection=yes;
使用 connect()
方法,將在程式和伺服器之間建立連線,然後使用該連線,可以直接在資料庫上執行 SQL
查詢。
相同的參考下面的程式碼。
import pyodbc
connection = pyodbc.connect("Driver={<driver_name>};Server=<server_name>;Database=<database_name>;Trusted_Connection=yes;") # Connection string
cursor = connection.cursor()
cursor.execute("SELECT * FROM <table_name>") # Executing a query
for row in cursor: # Looping over returned rows and printing them
print(f"row = {row}")
還可以使用 DSN
或 Data Source Name
、使用者 ID 和密碼連線到伺服器。並且,相同的字串如下。
DSN=<dsn>;UID=<user>;PWD=<password>
對於這種情況,請參考以下程式碼。
import pyodbc
connection = pyodbc.connect("DSN=<dsn>;UID=<user>;PWD=<password>") # Connection string
cursor = connection.cursor()
cursor.execute("SELECT * FROM <table_name>") # Executing a query
for row in cursor: # Looping over returned rows and printing them
print(f"row = {row}")
要了解更多關於 Microsoft SQL Server 的驅動,連線,以及使用該庫連線所需的資訊,請參考這裡。而且,要了解更多關於庫本身的資訊,請參考官方文件。