Python: | Python 2.x: 2.7 or newer. Python 3.x: 3.3 or newer. |
---|---|
FreeTDS: | 0.82 or newer. |
Cython: | 0.15 or newer. |
Microsoft SQL Server: 2005 or newer. | |
从https://www.lfd.uci.edu/~gohlke/pythonlibs/下载最新的Pymssq的whl,
pymssql‑2.1.4.dev5‑cp37‑cp37m‑win32.whl
pymssql‑2.1.4.dev5‑cp37‑cp37m‑win_amd64.whl
下载完成后通过pip install pymssql‑2.1.4.dev5‑cp37‑cp37m‑win_amd64.whl 安装
使用方式
A、使用pymssql
1、导入包
import pymssql
1、创建连接对象:
conn=pymssql.
connect
(server='.', user='', password='', database='', timeout=0, login_timeout=60, charset='UTF-8', as_dict=False, host='', appname=None, port='1433', conn_properties, autocommit=False, tds_version='7.1')
Parameters: 参数说明
server (str) – database host 主机名(主机地址)
user (str) – database user to connect as 用户名
password (str) – user’s password 密码
database (str) – the database to initially connect to 数据库名称
timeout (int) – query timeout in seconds, default 0 (no timeout) 查询超时
login_timeout (int) – timeout for connection and login in seconds, default 60 登录超时
charset (str) – character set with which to connect to the database 连接所使用字符集,中文一般使用 'utf8'
conn_properties – SQL queries to send to the server upon connection establishment. Can be a string or another kind of iterable of strings. Default value: See _mssql.connect() 连接数据库自动发起的查询语句,默认为‘
SET ARITHABORT ON; SET CONCAT_NULL_YIELDS_NULL ON; SET ANSI_NULLS ON; SET ANSI_NULL_DFLT_ON ON; SET ANSI_PADDING ON; SET ANSI_WARNINGS ON; SET ANSI_NULL_DFLT_ON ON; SET CURSOR_CLOSE_ON_COMMIT ON; SET QUOTED_IDENTIFIER ON; SET TEXTSIZE 2147483647;’ as_dict (bool) – whether rows should be returned as dictionaries instead of tuples是否使用字典作为查询结果返回方式,默认为元组
*设置最大连接数
pymssql.
set_max_connections
(
number
)
Sets maximum number of simultaneous database connections allowed to be open at any given time. Default is 25.
2、连接对象相关操作
Connection.autocommit(status)设置自动提交,status为Bool值
Connectreturnvalueion.commit()提交更改
Connection.rollback()回滚更改
3、cursor对象相关操作
属性
Cursor.
rowcount 返回上次操作受影响的行数,如果SQL语句返回了结果集则返回-1或者返回最后fetch的结果集的行数,否则返回SQL语句中最后一条操作语句的影响行数
Cursor.
connection返回该游标对象的连接对象
Cursor.
lastrowid返回最后插入的标识identity 号,没有的话则返回None,*注意:当SQL语句为复合型SQL语句时,获取该值会影响执行Cursor.nextset(),建议最后获取该值
Cursor.
rownumber 返回当前游标所指向的行数
Cursor.description返回当前结果集的列名元组,每个子元组的第一个对象为列名
returnvalue
方法
Cursor.
close
()关闭当前的游标对象
Cursor.execute(operation) 执行SQL
Cursor.
execute
(operation, params)执行带占位符的sql语句,支持s%与d%的占位符,params可以是简单的值、元组、字典或者为空
此方法可以用Python字符串格式化进行替代 例如:"some debug info: %s" % some_info
Cursor.
executemany
(operation, params_seq) params是一个元组,将每个元组的元素作为参数放入SQL语句中全部执行一遍
Cursor.
fetchone
()获取结果集中的下一个结果,获取到最后的一个结果将返回None,假如sql语句没有生成结果集,将报错PEP249
Cursor.fetchmany(size=None)与上一个方法类似,可以通过Size参数设定一次获取结果的行数
Cursor.
fetchall
()与上方法类似,一次性获取所有结果集
Cursor.
nextset
()使游标跳转至下一个结果集,假如有则返回true,没有则返回None
Cursor.callproc(procname,*parms)调用存储过程,并通过序列或者参数字典传递参数,需要使用一次cursor.nextset()才能获取第一个结果集
4、基本使用方法
①创建连接对象
②根据连接对象创建游标对象
③通过游标对象执行语句
④通过游标函数获取最新结果
⑤关闭游标对象,提交数据库变更(假如不是自动提交的),关闭数据库连接