使用 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 的驱动,连接,以及使用该库连接所需的信息,请参考这里。而且,要了解更多关于库本身的信息,请参考官方文档。