Python连接SqlServer数据库-pymssql进阶

  • 支持环境:

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.
   

  • Windows安装方式:

从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=0login_timeout=60charset='UTF-8'as_dict=Falsehost=''appname=Noneport='1433'conn_propertiesautocommit=Falsetds_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是否使用字典作为查询结果返回方式,默认为元组
appname (str) – Set the application name to use for the connection
port (str) – the TCP port to use to connect to the server  TCP 端口
autocommit (bool) – Whether to use default autocommiting mode or not 连接关闭时是否自动提交,默认为不自动提交
tds_version (str) – TDS protocol version to use. 使用的TDS版本,默认为7.1

*设置最大连接数 

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值

Connection.close()关闭连接
Connection.cursor()返回一个cursor对象,用于数据库查询等操作

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(operationparams)执行带占位符的sql语句,支持s%与d%的占位符,params可以是简单的值、元组、字典或者为空

此方法可以用Python字符串格式化进行替代  例如:"some debug info: %s" % some_info

Cursor.executemany(operationparams_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、基本使用方法

①创建连接对象

②根据连接对象创建游标对象

③通过游标对象执行语句

④通过游标函数获取最新结果

⑤关闭游标对象,提交数据库变更(假如不是自动提交的),关闭数据库连接



















你可能感兴趣的:(Python)