,,Python连接Mssql基础教程之Python库pymssql

,,Python连接Mssql基础教程之Python库pymssql

本文主要介绍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的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: