教程集 www.jiaochengji.com
教程集 >  Python编程  >  Python入门  >  正文 python之pymsql模块相关介绍

python之pymsql模块相关介绍

发布时间:2021-12-18   编辑:jiaochengji.com
教程集为您提供python之pymsql模块相关介绍等资源,欢迎您收藏本站,我们将为您提供最新的python之pymsql模块相关介绍资源

python3操作pymsql模块

pymysql是python中操作mysql的模块。

1.pymysql模块的安装

pip3 install pymysql

也可以使用pycharm这个IDE工具来安装pymysql这个模块。

2.pymysql模块的使用

1.执行mysql语句,获取查询的结果

代码如下:

<pre class="brush:php;toolbar:false">#!/usr/bin/env python #_*_coding:utf-8_*_ import pymysql #创建连接 conn=pymysql.connect(host="127.0.0.1",port=3306,user="root",passwd="",db="db1") #创建游标 cursor=conn.cursor() #执行mysql语句,并返回执行的结果 res=cursor.execute("select name from db1") #打印执行的结果 print(res) #把要执行的语句提交,否则无法保存新建或者修改数据 conn.commit() #关闭游标 cursor.close() #关闭连接 conn.close()</pre>

执行结果为:

<pre class="brush:php;toolbar:false">4</pre>

因为从db1.db1这张表中检索到四条数据,所以返回的值为4

需要注意的是,查询过程中存在中文的话,连接需要添加**"charset='utf-8'"**,否则中文会显示乱码。

相关推荐:《Python视频教程》

2.获取查询的数据

代码如下:

<pre class="brush:php;toolbar:false">#!/usr/bin/env python #_*_coding:utf-8_*_ import pymysql #创建连接 conn=pymysql.connect(host="127.0.0.1",port=3306,user="root",passwd="",db="db1") #创建游标 cursor=conn.cursor() #执行mysql语句 cursor.execute("select name from db1") #获取所有的执行结果 res=cursor.fetchall() #打印获取到的执行结果 print(res) #提交要执行的mysql指令 conn.commit() #关闭游标 cursor.close() #关闭连接 conn.close()</pre>

执行结果为:

<pre class="brush:php;toolbar:false">(('xiaoming',), ('xiaobing',), ('xiaoyong',), ('xiaojian',))</pre>

可以看到,返回的结果是一个元组类型的数据。

还可以在创建游标的时候,使用选项来指定返回的结果为哪种数据类型:

<pre class="brush:php;toolbar:false">cursor=conn.cursor(cursor=pymysql.cursors.DictCursor)</pre>

使用这个指令可以把返回的结果变成字典类型。

在获取执行的结果时,可以指定获取的结果的条数,可以使用的选项如下:

fetchone()          取得检索结果的一条数据

fetchmany(n)        取得检索结果的n条数据

fetchall()          取得检索结果的所有数据

需要注意的是,与读取文件时的指针类似.如果在同一段代码中,先使用fetchone()获取检索结果的第一条数据,

然后再使用fetchmany(2)的话,指针会在检索结果的当前位置向后读取执行结果,而不会从头开始重新读取检索的结果。

代码如下:

<pre class="brush:php;toolbar:false">#!/usr/bin/env python #_*_coding:utf-8_*_ import pymysql #创建连接 conn=pymysql.connect(host="127.0.0.1",port=3306,user="root",passwd="",db="db1") #创建游标 cursor=conn.cursor(cursor=pymysql.cursors.DictCursor) #执行mysql语句,并返回执行的结果 cursor.execute("select name from db1") #取执行结果的第一条数据,并打印 res1=cursor.fetchone() print("this is first result:",res1) #从剩下的执行结果中再取两条数据,并打印 res2=cursor.fetchmany(2) print("this is second result:",res2) #再从剩下的数据中取所有的数据,并打印 res3=cursor.getchall() print("this is third result:",res3) #提交要执行的命令 conn.commit() #关闭游标 cursor.close() #关闭连接 conn.close()</pre>

执行结果如下:

<pre class="brush:php;toolbar:false">this is first result: {'name': 'xiaoming'} this is second result: [{'name': 'xiaobing'}, {'name': 'xiaoyong'}] this is third result: [{'name': 'xiaojian'}]</pre>

第一次取第一行的检索结果,第二次取两行的时候,第三次取剩下的所有的结果.

因为数据表中只有四条记录,而第一次已经取走一行了,

第二次从第一次取得的结果又向后继续取两个值,所以最后取所有的值时,只剩下一个,所以第三次取得一个值。

在创建游标的时候,指定了返回的数据类型为字典类型,所以返回的结果是字典数据类型。

在使用fetch时,按照顺序进行取得数据,可以使用cursor.scroll(num,mode)来移动游标位置

mode指定位置,是相对当前位置,还是绝对位置

num指定移动的位数,正数向后移动,负数向前移动

例如:

cursor.scroll(1,mode="relative")        #相对于当前的指针位置取一个值

cursor.scroll(2,mode="absolute")        #在当前的绝对位置取一个值

"relative"与"absolute"的区别,看下面两段代码:

第一段代码:

<pre class="brush:php;toolbar:false">#!/usr/bin/env python #_*_coding:utf-8_*_ import pymysql conn=pymysql.connect(host="127.0.0.1",port=3306,user="root",passwd="",db="db1") cursor=conn.cursor() cursor.execute("SELECT * FROM db1") cursor.fetchone() cursor.scroll(1,mode="relative") print(cursor.fetchone()) conn.commit() cursor.close() conn.close()</pre>

执行结果如下:

<pre class="brush:php;toolbar:false">(3, 'xiaoyong', 'xiaoyong')</pre>

第二段代码:

<pre class="brush:php;toolbar:false">#!/usr/bin/env python #_*_coding:utf-8_*_ import pymysql conn=pymysql.connect(host="127.0.0.1",port=3306,user="root",passwd="",db="db1") cursor=conn.cursor() cursor.execute("SELECT * FROM db1") cursor.fetchone() cursor.scroll(1,mode="absolute") print(cursor.fetchone()) conn.commit() cursor.close() conn.close()</pre>

执行结果如下:

<pre class="brush:php;toolbar:false">(2, 'xiaobing', 'xiaobing')</pre>

3.获取新创建数据的自增ID

代码如下:

<pre class="brush:php;toolbar:false">#!/usr/bin/env python # _*_coding:utf-8_*_ import pymysql conn=pymysql.connect(host="127.0.0.1",port=3306,user="root",passwd="",db="db1") cursor=conn.cursor() cursor.execute('INSERT INTO db1(name,password) VALUES("xiaofei","xiaofei")') conn.commit() cursor.close() conn.close() res=cursor.lastrowid print(res)</pre>

执行结果为:

<pre class="brush:php;toolbar:false">5</pre>

数据表db1中本来有四条数据,现在新增一条,其ID为自增类型,所以返回结果为5

您可能感兴趣的文章:
python之pymsql模块相关介绍
Python自定义模块
详解Python中import方法引入模块
python怎么升级模块
python if和while的区别有哪些
django中常见的模块有哪些
python怎么添加模块
python模块和包的区别有哪些
Python新手常见问题八:标准库模块命名
Python导入模块的方式

[关闭]
~ ~