Python操作SQLServer数据库:横扫数据库任务

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应用程序、数据分析和数据科学等领域的基础,希望本文对您有所帮助。

数据库标签