本文主要介绍Python库PyMssql的相关信息,PyMssql是Python连接Mssql的基础课程。文章介绍了连接数据库的实现、使用游标的注意事项、游标返回行为字典变量、使用with语句(上下文管理器)和调用存储过程等。有需要的可以参考以下。
前言
Pymssql模块是sql server数据库的连接(一个通用数据库接口标准)。此外,pyodbc不仅限于SQL server,还包括Oracle、MySQL、Access、Excel等。
此外,除了pymssql,pyodbc还有其他几个与SQL server连接的模块。有兴趣的可以在这里找到:https://wiki.python.org/moin/SQL服务器
本文将详细介绍连接Python和Mssql的Python库PyMssql的相关内容。下面不多说了。我们来看看详细的介绍。
连接数据库
Pymssql以与sqlite相同的方式连接到数据库:
使用connect创建连接对象
Connect.cursor创建一个游标对象,SQL语句的执行基本上都发生在游标上。
cursor.executeXXX方法执行SQL语句,cursor.fetchXXX获取查询结果等。
调用close方法关闭游标和数据库连接。
导入pymssql
server数据库服务器名称或IP
#用户用户名
#密码密码
#数据库数据库名称
conn=pymssql.connect(服务器,用户,密码,数据库)
cursor=conn.cursor()
#新建,插入操作
cursor.execute(“”)
如果OBJECT_ID('persons ',' U ')不为空
删除表人员
创建餐桌人员(
id INT不为空,
名称VARCHAR(100),
销售代表VARCHAR(100),
主键(id)
)
''')
cursor.executemany(
插入到人员值(%d,%s,%s)',
[(1,'约翰史密斯','无名氏'),
(2、《无名氏》、《乔狗》),
(3,《迈克t .》,《莎拉h .》)])
#如果没有指定autocommit属性为True,则调用commit()方法。
conn.commit()
#查询操作
cursor . execute(' SELECT * FROM persons WHERE sales rep=% s ',' John Doe ')
row=cursor.fetchone()
while行:
print('ID=%d,Name=%s' %(行[0],行[1]))
row=cursor.fetchone()
#您还可以使用for循环来迭代查询结果
#对于游标中的行:
# print('ID=%d,Name=%s' %(行[0],行[1]))
#关闭连接
conn.close()
注意: 在示例中,查询操作的参数使用%s而不是“%s”。如果参数值是字符串,则在执行语句时会自动添加一个单引号。
游标使用注意事项
一次只有一个游标的连接查询是活动的,如下所示:
c1=连接光标()
c1.execute('SELECT * FROM persons ')
c2=conn.cursor()
C2 . execute(' SELECT * FROM persons WHERE sales rep=% s ',' John Doe ')
打印(“所有人”)
Print( c1.fetchall()) #显示c2游标查询的结果。
印刷(“约翰多伊”)
Print( c2.fetchall()) #将没有结果
为了避免上述问题,可以采用以下两种方法:
创建多个连接,以确保可以在不同的连接游标上并行执行多个查询。
在执行下一个查询之前,使用fetchall方法获取游标查询结果,如下所示:
c1.execute('选择.')
c1_list=c1.fetchall()
c2.execute('选择.')
c2_list=c2.fetchall()
游标返回行为字典变量
在上面的示例中,游标获得的查询结果的每一行都是元组类型,
通过在创建游标时指定as_dict参数,可以将游标返回到字典变量,
字典中的键是数据表的列名。
conn=pymssql.connect(服务器,用户,密码,数据库)
cursor=conn . cursor(as _ dict=True)
cursor . execute(' SELECT * FROM persons WHERE sales rep=% s ',' John Doe ')
对于游标中的行:
print('ID=%d,Name=%s' %(行['id'],行['name']))
conn.close()
使用with语句(上下文管理器)
通过使用with语句,可以省略调用close方法来关闭连接和游标。
使用pymssql.connect(服务器,用户,密码,数据库)作为连接:
使用conn.cursor(as_dict=True)作为游标:
cursor . execute(' SELECT * FROM persons WHERE sales rep=% s ',' John Doe ')
对于游标中的行:
print('ID=%d,Name=%s' %(行['id'],行['name']))
调用存储过程
PYSQL 2 . 0 . 0及以上版本可以通过cursor.callproc方法调用存储过程。
使用pymssql.connect(服务器,用户,密码,数据库)作为连接:
使用conn.cursor(as_dict=True)作为游标:
# 创建存储过程
cursor.execute(" ")
创建过程查找人员
@name VARCHAR(100)
开始时
SELECT * FROM persons WHERE name=@ name
结束
''')
# 调用存储过程
cursor.callproc('FindPerson ',(' Jane Doe ',))
对于游标中的行:
打印(' ID=%d,名称=%s' %(行['id'],行['名称']))
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对我们的支持。
参考:http://pymssql。org/en/stable/pymssql _ examples。超文本标记语言
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。