上一篇文章,我们写到如何在centos7.5 安装sql server数据库,这篇来说明下如何使用python连接sql server数据库并完成数据库操作。
一、环境准备
操作系统:centos7.5 x64
安装包:pyodbc-2.1.7(或者pymssql,该模块需要安装依赖较多,不建议)离线安装使用rpm包安装,在线安装直接运行:pip install pyodbc rpm包下载地址:https://download.csdn.net/download/hu_wen/11275091
python环境:python2.7 或者python3以上
安装完成pyodbc需修改配置文件 /etc/odbcinst.ini 新增以下内容:
[SQL Server]
Description = FreeTDS ODBC driver for MSSQL
Driver = /usr/lib64/libtdsodbc.so
Setup = /usr/lib64/libtdsS.so.2
FileUsage = 1
配置完成后即可调试python代码进行连接,以下是事例代码:
#!/usr/bin/env python
#-*- coding:utf-8 -*-
import pyodbc
#创建数据库连接
conn = pyodbc.connect("DRIVER={SQL Server};SERVER=192.168.142.11,1433;DATABASE=master;UID=sa;PWD=hu_wen@2019")
cursor = conn.cursor() # 获取光标
# 创建表
cursor.execute("""
IF OBJECT_ID('persons', 'U') IS NOT NULL
DROP TABLE persons
CREATE TABLE persons (
id INT NOT NULL,
name VARCHAR(100),
salesrep VARCHAR(100),
PRIMARY KEY(id)
)
""")
# 插入多行数据
cursor.executemany(
"INSERT INTO persons VALUES (%d, '%s', '%s')",
[(1, 'John Smith', 'John Doe'),
(2, 'Jane Doe', 'Joe Dog'),
(3, 'Mike T.', 'Sarah H.')])
# 提交数据
conn.commit()
# 查询数据
cursor.execute('SELECT * FROM persons WHERE salesrep=%s', 'John Doe')
# 遍历数据(存放到元组中) 方式1
row = cursor.fetchone()
while row:
print("ID=%d, Name=%s" % (row[0], row[1]))
row = cursor.fetchone()
# 遍历数据(存放到元组中) 方式2
for row in cursor:
print('row = %r' % (row,))
# 关闭连接
conn.close()
如调试过程中遇到问题,欢迎留言交流!