python连接SQL server用到的是pymssql模块。
1.首先安装(pip install pymssql)
2.创建连接对象
- 使用
connect
创建连接对象 connect.cursor
创建游标对象,SQL语句的执行基本都在游标上进行cursor.executeXXX
方法执行SQL语句,cursor.fetchXXX
获取查询结果等- 调用
close
方法关闭游标cursor
和数据库连接
pymssql.connect(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' )
用于创建到数据库的连接的构造函数。返回一个 Connection对象。
connect的参数意义:
参数: |
|
3.连接对象的属性(connection对象)
Connection.
autocommit
(status)
其中status是一个布尔值。此方法打开或关闭自动提交模式。
默认情况下,自动提交模式是关闭的,意味着如果更改的数据要保存在数据库中,则每个事务都必须显式提交。
你可以打开自动提交模式,这意味着每一个操作一旦成功就立即提交。
DB-API 2.0的pymssql扩展。
Connection.
close
()
关闭连接。
Connection.
cursor
()
返回一个游标对象,该对象可用于查询并从数据库中获取结果。
Connection.
commit
()
提交当前事务。如果将自动提交保留为缺省值,则必须调用此方法来保存数据False
。
4.Cusor对象方法(SQL 语句的调用)
Cursor.
close
()
关闭游标。从这一点来看,光标不可用。
Cursor.
execute
(operation)
Cursor.
execute
(operation,params)
operation是一个字符串,如果指定params,它是一个简单的值,一个元组,一个字典或None
。
对数据库执行操作,可能会使用提供的值替换参数占位符。这应该是创建SQL命令的首选方法,而不是手动串联字符串,这是潜在的SQL注入攻击的原因。此方法接受与Python的内置字符串插值运算符类似的格式。但是,由于格式和类型转换是在内部处理的,因此只支持%s
和%d
占位符。两个占位符在功能上都是等效的。
如果您提供params字典,则支持键控占位符。
如果您execute()
使用一个参数进行调用,该%
符号会失去其特殊含义,因此您可以像往常一样在查询字符串中使用它,例如在LIKE
运算符中。
您必须先致电Connection.commit(),execute()
否则您的数据将不会保留在数据库中。您也可以设置 connection.autocommit
是否希望自动完成。DB-API需要此行为,如果您不喜欢它,请_mssql改为使用 模块。
Cursor.
executemany
(operation,params_seq )
operation是一个S语句QL字符串,params_seq是一系列数据元组。对参数序列中的每个元素重复执行数据库操作。
例如:
Cursor.
fetchone
()
返回查询到一条语句,即一个元祖(行)。
Cursor.
fetchmany
(size = None )
返回查询到size条语句
Cursor.
fetchall
()
返回查询到所有的元祖,为一个list
Cursor.
nextset
()
此方法使光标跳到下一个可用结果集,丢弃当前集中的所有剩余行。True
如果下一个结果可用,None
则返回值,如果没有。
Cursor.
__iter__
()
Cursor.
next
()
这些方法有助于Python迭代器协议。你很可能不会直接调用它们,而是通过使用迭代器间接调用它们。
DB-API 2.0的pymssql扩展。
Cursor.
setinputsizes
()
Cursor.
setoutputsize
()
这些方法什么都不做,正如DB-API规范所允许的。
实例:
import pymssql
#连接本地数据库
con = pymssql.connect(host = 'localhost',user = '',password = '',database = 'DB_STU')
#创建cursor对象
cur = con.cursor()