Python连接SQL Server:查询和更新数据的完整指南
发布时间: 2024-06-23 10:53:27 阅读量: 120 订阅数: 46
![Python连接SQL Server:查询和更新数据的完整指南](https://img-blog.csdnimg.cn/96da407dd4354501ac09f67f36db8792.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA56eD5aS054ix5YGl6Lqr,size_20,color_FFFFFF,t_70,g_se,x_16)
# 1. Python连接SQL Server
在本章中,我们将介绍如何使用Python连接到SQL Server数据库。我们将涵盖使用pyodbc模块建立连接、执行查询和获取结果的步骤。
### 1.1 使用pyodbc连接数据库
要连接到SQL Server数据库,我们需要使用pyodbc模块。首先,我们需要导入pyodbc模块:
```python
import pyodbc
```
然后,我们可以使用`connect()`函数建立连接:
```python
connection = pyodbc.connect('Driver={SQL Server};Server=localhost;Database=my_database;Uid=my_username;Pwd=my_password')
```
在这里,我们指定了SQL Server驱动程序、服务器地址、数据库名称、用户名和密码。
# 2. Python SQL Server查询操作
### 2.1 连接数据库并执行查询
#### 2.1.1 使用pyodbc连接数据库
```python
import pyodbc
# 连接到数据库
connection = pyodbc.connect('Driver={SQL Server};Server=localhost;Database=AdventureWorks2019;Trusted_Connection=Yes;')
# 创建游标对象
cursor = connection.cursor()
```
**参数说明:**
* `Driver`: 指定要使用的数据库驱动程序。
* `Server`: 指定要连接的SQL Server实例的名称或IP地址。
* `Database`: 指定要连接的数据库的名称。
* `Trusted_Connection`: 指定是否使用Windows身份验证。
#### 2.1.2 执行SQL查询并获取结果
```python
# 执行查询
cursor.execute("SELECT * FROM Person.Contact")
# 获取查询结果
results = cursor.fetchall()
# 遍历结果并打印每一行
for row in results:
print(row)
```
**逻辑分析:**
1. `cursor.execute()` 方法执行SQL查询并返回一个结果集。
2. `cursor.fetchall()` 方法获取结果集中的所有行并返回一个元组列表。
3. 遍历元组列表并打印每一行。
### 2.2 使用参数化查询增强安全性
#### 2.2.1 防止SQL注入攻击
SQL注入攻击是一种通过在SQL查询中注入恶意代码来攻击数据库的攻击。参数化查询可以防止这种攻击,因为它将用户输入与SQL查询分开。
#### 2.2.2 使用占位符和参数化查询
```python
# 使用占位符和参数化查询
cursor.execute("SELECT * FROM Person.Contact WHERE LastName = ?", ("Smith",))
```
**参数说明:**
* `?` 是占位符,表示要替换的参数。
* `("Smith",)` 是一个元组,包含要替换的参数值。
**逻辑分析:**
1. `cursor.execute()` 方法使用占位符和参数化查询执行SQL查询。
2. 占位符 `?` 被元组中的参数值 `("Smith",)` 替换。
3. 这将生成一个安全的SQL查询,防止
0
0