1. 准备工作
在使用Python操作SQLServer数据库之前,我们需要先准备好相应的环境和工具。
1.1 安装pyodbc
pyodbc是Python连接ODBC数据库的一个库,我们可以使用pip进行安装。
!pip install pyodbc
1.2 安装ODBC驱动
在Windows操作系统中,我们需要安装ODBC驱动。这里以SQL Server为例,可以在微软的官网上下载相应的驱动。
2. 连接SQL Server数据库
连接数据库的基本格式为:
import pyodbc
conn_str = 'DRIVER={ODBC Driver XX for SQL Server};SERVER=xxx;DATABASE=xxx;UID=xxx;PWD=xxx'
cnxn = pyodbc.connect(conn_str) # 连接数据库
cursor = cnxn.cursor() # 创建游标对象
# 进行操作
cursor.close() # 关闭游标
cnxn.close() # 关闭连接
其中,conn_str是ODBC连接字符串,用于指定驱动、服务器名、数据库名、用户名和密码等信息。在实际使用中,需要根据自己的具体情况进行修改。
2.1 查询数据
查询数据是最常见的数据库操作之一。我们可以使用SQL语句来完成查询。
import pyodbc
conn_str = 'DRIVER={ODBC Driver XX for SQL Server};SERVER=xxx;DATABASE=xxx;UID=xxx;PWD=xxx'
cnxn = pyodbc.connect(conn_str)
cursor = cnxn.cursor()
sql = 'SELECT * FROM table_name'
cursor.execute(sql) # 执行SQL语句
results = cursor.fetchall() # 获取结果集
for row in results:
print(row)
cursor.close()
cnxn.close()
在上述代码中,我们执行了一个简单的SQL查询, SELECT * FROM table_name,查询了一张名为table_name的表中的所有数据,并打印出来。
2.2 插入数据
向数据库中插入数据也是非常常见的操作。
import pyodbc
conn_str = 'DRIVER={ODBC Driver XX for SQL Server};SERVER=xxx;DATABASE=xxx;UID=xxx;PWD=xxx'
cnxn = pyodbc.connect(conn_str)
cursor = cnxn.cursor()
insert_sql = 'INSERT INTO table_name (column1, column2, column3) VALUES (?, ?, ?)'
values = ('value1', 'value2', 'value3')
cursor.execute(insert_sql, values) # 执行插入操作
cnxn.commit() # 提交操作
cursor.close()
cnxn.close()
在上述代码中,我们向名为table_name的表中插入了一行数据,包含三个字段,分别为column1、column2、column3。使用了占位符,对应的值通过元组传入。需要注意的是,在插入数据后,需要调用commit()方法提交操作,否则数据不会被保存到数据库中。
2.3 更新数据
更新数据也是非常常见的操作,它可以通过UPDATE语句完成。
import pyodbc
conn_str = 'DRIVER={ODBC Driver XX for SQL Server};SERVER=xxx;DATABASE=xxx;UID=xxx;PWD=xxx'
cnxn = pyodbc.connect(conn_str)
cursor = cnxn.cursor()
update_sql = 'UPDATE table_name SET column1 = ? WHERE column2 = ?'
values = ('new_value', 'old_value')
cursor.execute(update_sql, values) # 执行更新操作
cnxn.commit() # 提交操作
cursor.close()
cnxn.close()
在上述代码中,我们使用UPDATE语句更新了列column2等于old_value的行的列column1值为new_value。
2.4 删除数据
删除数据也是SQL基本操作之一,可以使用DELETE语句完成。
import pyodbc
conn_str = 'DRIVER={ODBC Driver XX for SQL Server};SERVER=xxx;DATABASE=xxx;UID=xxx;PWD=xxx'
cnxn = pyodbc.connect(conn_str)
cursor = cnxn.cursor()
delete_sql = 'DELETE FROM table_name WHERE column1 = ?'
values = ('value', )
cursor.execute(delete_sql, values) # 执行删除操作
cnxn.commit() # 提交操作
cursor.close()
cnxn.close()
在上述代码中,我们使用DELETE语句删除了列column1等于value的行。
3. 完整实例
下面我们来看一个完整的Python操作SQL Server数据库的实例。
import pyodbc
# 连接数据库
conn_str = 'DRIVER={ODBC Driver XX for SQL Server};SERVER=xxx;DATABASE=xxx;UID=xxx;PWD=xxx'
cnxn = pyodbc.connect(conn_str)
cursor = cnxn.cursor()
# 查询数据
sql = 'SELECT * FROM table_name WHERE column1 = ?'
values = ('value', )
cursor.execute(sql, values)
results = cursor.fetchall()
print('查询结果:')
for row in results:
print(row)
# 插入数据
insert_sql = 'INSERT INTO table_name (column1, column2, column3) VALUES (?, ?, ?)'
values = ('value1', 'value2', 'value3')
cursor.execute(insert_sql, values)
cnxn.commit()
print('插入成功')
# 更新数据
update_sql = 'UPDATE table_name SET column1 = ? WHERE column2 = ?'
values = ('new_value', 'old_value')
cursor.execute(update_sql, values)
cnxn.commit()
print('更新成功')
# 删除数据
delete_sql = 'DELETE FROM table_name WHERE column1 = ?'
values = ('value1', )
cursor.execute(delete_sql, values)
cnxn.commit()
print('删除成功')
# 关闭游标和连接
cursor.close()
cnxn.close()
在上述代码中,我们完成了数据库的连接,查询、插入、更新、删除等操作,并对每个操作的结果进行了打印输出。
4. 总结
通过本文,我们了解了如何使用Python操作SQL Server数据库,并完成了基本的数据库操作,包括查询、插入、更新、删除等。这些操作是编写Web应用程序、数据分析和数据科学等领域的基础,希望本文对您有所帮助。