iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >Python操作MySQL(2)
  • 736
分享到

Python操作MySQL(2)

操作PythonMySQL 2023-01-31 01:01:16 736人浏览 独家记忆
摘要

查询数据 使用execute()函数执行查询sql语句后,得到的只是受影响的行数,并不能真正拿到我们查询的内容。没关系,这里游标cursor中还提供了三种提取数据的方法:fetchone、fetchmany、fetchall,每个方法都会

查询数据

使用execute()函数执行查询sql语句后,得到的只是受影响的行数,并不能真正拿到我们查询的内容。没关系,这里游标cursor中还提供了三种提取数据的方法:fetchone、fetchmany、fetchall,每个方法都会导致游标游动,所以必须注意游标的位置
cursor. fetchone()
获取游标所在处的一行数据,返回的是元组,没有则返回None,
cursor. fetchmany(size=None)
接收size条返回结果行。如果size的值大于返回的结果行的数量,则会返回cursor.arraysize条数据。返回的结果是一个元组,元组的元素也是元组,由每行数据组成;
cursor. fetchall()
接收全部的返回结果行。返回的结果是一个元组,元组的元素也是元组,由每行数据组成;

注意:
这些函数返回的结果数据均来自exceute()函数查询的结果集。如果exceute()结果集中没有数据,将会返回空元组。

fetchone示例
#encoding=utf-8
import pyMysql
try:
    conn = pymysql.connect(
        host = "127.0.0.1",
        port = 3306,
        user = "root",
        passwd = "123456"
        )
    conn.select_db("pydb")
    cursor = conn.cursor()

    cursor.execute("select * from user")
    while 1:
        res = cursor.fetchone()
        if res is not None:
            print(res)
        else:
            break

    cursor.close()
    conn.close()

except pymysql.Error as e:
print("pymysql.Error %d: %s" %(e.args[0],e.args[1]))

从execute()函数的查询结果中取数据,以元组的形式返回游标所在处的一条数据,如果游标所在处没有数据,将返回空元组,该数据执行一次,游标向下移动一个位置。fetchone()函数必须跟exceute()函数结合使用,并且在exceute()函数之后使用

fetchmany示例
#encoding=utf-8
import pymysql
try:
    conn = pymysql.connect(
        host = "127.0.0.1",
        port = 3306,
        user = "root",
        passwd = "123456"
        )
    conn.select_db("pydb")
    cursor = conn.cursor()

cursor.execute("select * from user")
#此处取2条数据,返回一个包含2个元素的元组,元组的元素还是元组
resTuple = cursor.fetchmany(2)
print(type(resTuple))
    for v in resTuple:
        print(v)

    cursor.close()
    conn.close()

except pymysql.Error as e:
    print("pymysql.Error %d: %s" %(e.args[0],e.args[1]))

从exceute()函数结果中获取游标所在处的size条数据,并以元组的形式返回,元组的每一个元素都也是一个由一行数据组成的元组,如果size大于有效的结果行数,将会返回cursor.arraysize条数据,但如果游标所在处没有数据,将返回空元组。查询几条数据,游标将会向下移动几个位置。fetmany()函数必须跟exceute()函数结合使用,并且在exceute()函数之后使用

fetchall示例
#encoding=utf-8
import pymysql
try:
    conn = pymysql.connect(
        host = "127.0.0.1",
        port = 3306,
        user = "root",
        passwd = "123456"
        )
    conn.select_db("pydb")
    cursor = conn.cursor()

    cursor.execute("select * from user")
resTuple = cursor.fetchall()
print("共%s 条数据" %len(resTuple))
    print(type(resTuple))
    print(resTuple)

    cursor.close()
    conn.close()

except pymysql.Error as e:
    print("pymysql.Error %d: %s" %(e.args[0],e.args[1]))

获取游标所在处开始及以下所有的数据,并以元组的形式返回,元组的每一个元素都也是一个由一行数据组成的元组,如果游标所在处没有数据,将返回空元组。执行完这个方法后,游标将移动到数据库表的最后

更新数据
更新单条数据
#encoding=utf-8
import pymysql
try:
    conn = pymysql.connect(
        host = "127.0.0.1",
        port = 3306,
        user = "root",
        passwd = "123456"
        )
    conn.select_db("pydb")
    cursor = conn.cursor()

    res = cursor.execute("update user set name = 'hhq' where name = 'lucy0';")
    print("受影响的行数: ",res)
    cursor.execute("select * from user where name = 'hhq';")
    print(cursor.fetchone())

    cursor.close()
    conn.commit()
    conn.close()

except pymysql.Error as e:
    print("pymysql.Error %d: %s" %(e.args[0],e.args[1]))

批量更新数据
#encoding=utf-8
import pymysql
try:
    conn = pymysql.connect(
        host = "127.0.0.1",
        port = 3306,
        user = "root",
        passwd = "123456"
        )
    conn.select_db("pydb")
    cursor = conn.cursor()
    sql = "update user set name = %s where name = %s;"
    res = cursor.executemany(sql,[("hhq1","lucy1"),("hhq2","lucy2")])
    print("受影响的行数: ",res)

    cursor.execute("select * from user where name in ('hhq1','hhq2');")
    for i in cursor.fetchall():
        print(i)

    cursor.close()

    conn.close()

except pymysql.Error as e:
print("pymysql.Error %d: %s" %(e.args[0],e.args[1]))

删除数据
删除单条数据
#encoding=utf-8
import pymysql
try:
    conn = pymysql.connect(
        host = "127.0.0.1",
        port = 3306,
        user = "root",
        passwd = "123456"
        )
    conn.select_db("pydb")
    cursor = conn.cursor()
    sql = "delete from user where name = 'lucy17';"
    res = cursor.execute(sql)
    print("受影响的行数: ",res)

    cursor.close()

    conn.close()

except pymysql.Error as e:
    print("pymysql.Error %d: %s" %(e.args[0],e.args[1]))

批量删除多条数据
#encoding=utf-8
import pymysql
try:
    conn = pymysql.connect(
        host = "127.0.0.1",
        port = 3306,
        user = "root",
        passwd = "123456"
        )
    conn.select_db("pydb")
    cursor = conn.cursor()
sql = "delete from user where name = %s;"

    res = cursor.executemany(sql,[('lucy20',),('lucy21',)])#需要传元组
    print("受影响的行数: ",res)

    cursor.close()

    conn.close()

except pymysql.Error as e:
    print("pymysql.Error %d: %s" %(e.args[0],e.args[1]))

回滚事务
#encoding=utf-8
import pymysql
try:
    conn = pymysql.connect(
        host = "127.0.0.1",
        port = 3306,
        user = "root",
        passwd = "123456"
        )
    conn.select_db("pydb")
    cursor = conn.cursor()
    cursor.execute("select * from user;")
    res = cursor.fetchall()
    print("更新前的数据: ",res[-1])

    cursor.execute("update user set name = 'hhq'")

    cursor.execute("select * from user;")
    res1 = cursor.fetchall()
    print("更新后的数据: ",res1[-1])

    #回滚事务
    conn.rollback()

    cursor.execute("select * from user;")
    res1 = cursor.fetchall()
    print("回滚后的数据: ",res1[-1])

    cursor.close()
    #提交事务
    conn.commit()
    conn.close()

except pymysql.Error as e:
    print("pymysql.Error %d: %s" %(e.args[0],e.args[1]))

重置游标位置
scroll(value, mode='relative')
移动指针到参数value指定的行;
Mode = relative则表示从当前所在行前移value行
Mode=absolute表示移动到绝对位置的value行。游标索引从0开始

cursor.rownumber
返回当前游标所在位置

示例:
#encoding=utf-8
import pymysql
try:
    conn = pymysql.connect(
        host = "127.0.0.1",
        port = 3306,
        user = "root",
        passwd = "123456"
        )
    conn.select_db("pydb")
    cursor = conn.cursor()
    cursor.execute("select * from user;")
print("游标当前位置:" ,cursor.rownumber)

    print(cursor.fetchone())
print("游标当前位置:" ,cursor.rownumber)

    cursor.scroll(0,mode="absolute")
    print("游标当前位置:" ,cursor.rownumber)

    cursor.fetchmany(2)
    print("游标当前位置:" ,cursor.rownumber)

except pymysql.Error as e:
    print("pymysql.Error %d: %s" %(e.args[0],e.args[1]))

#encoding=utf-8
import pymysql
try:
    conn = pymysql.connect(
        host = "127.0.0.1",
        port = 3306,
        user = "root",
        passwd = "123456"
        )
    conn.select_db("pydb")
    cursor = conn.cursor()
    cursor.execute("select * from user;")
    print("游标当前位置:" ,cursor.rownumber)

    res = cursor.fetchmany(2)
    print(res)
    print("游标当前位置:" ,cursor.rownumber)

cursor.scroll(3,mode="relative")#游标会向前移动3,对应数据库表就是向后移动3行
print("游标当前位置:" ,cursor.rownumber)
    print(cursor.fetchone())  

except pymysql.Error as e:
    print("pymysql.Error %d: %s" %(e.args[0],e.args[1]))
您可能感兴趣的文档:

--结束END--

本文标题: Python操作MySQL(2)

本文链接: https://www.lsjlt.com/news/184444.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Python操作MySQL(2)
    查询数据 使用execute()函数执行查询sql语句后,得到的只是受影响的行数,并不能真正拿到我们查询的内容。没关系,这里游标cursor中还提供了三种提取数据的方法:fetchone、fetchmany、fetchall,每个方法都会...
    99+
    2023-01-31
    操作 Python MySQL
  • python 文件操作2
    继续讲解文件操作的其他内置方法读取文件句柄的指针指针,就是说,程序读取文件到哪一行了。f = open("Yesterday.txt",'r',encoding="utf-8...
    99+
    2023-01-30
    操作 文件 python
  • Python -- 操作字符串[2/3]
          yuan@ThinkPad-SL510:~$ ipython -nobanner  In [1]: comma_delim_string = "pos1,pos2,pos3"  In [2]: pipe_delim_stri...
    99+
    2023-01-31
    字符串 操作 Python
  • python操作mysql
    # rpm -qa |grep MySQL-python 查询是否有mysqldb库MySQL-python-1.2.3-0.3.c1.1.el6.x86_64>>> import MySQLdb #导入mysqldb模块...
    99+
    2023-01-31
    操作 python mysql
  • Python学习笔记(2)比特操作、类、
    下面的笔记内容依然来自于codecademy 比特操作注意一: 适用范围 Note that you can only do bitwise operations on an integer. Trying to do them on s...
    99+
    2023-01-31
    学习笔记 操作 Python
  • Python作业2
       1.分别取出0到10中的偶数和奇数。   2.判断一个数是否是质数 *程序*测试   3题目*程序*测试...
    99+
    2023-01-31
    作业 Python
  • Python 操作Mysql(PyMysql)
    Python 操作 Mysql 常用方式: PyMysql:纯 Python 语言编写的 Mysql 操作客户端,安装方便,支持 Python3。SQLAlchemy:是一个非常强大的 ORM 框架,...
    99+
    2023-09-09
    Python 操作Mysql Python使用PyMysql
  • python中字典的常见操作总结2
    目录判断字典中的元素是否存在in 与 not in判断元素是否存在get()函数判断元素是否存在字典中的popitem()函数所有数据类型与其布尔值深拷贝与浅拷贝总结判断字典中的元素...
    99+
    2024-04-02
  • jquery对表单操作2
    checkbox的级联效果 复制代码 代码如下: <form> 你爱好的运动?<br/> <input type="checkbox" id="Chec...
    99+
    2022-11-21
    表单操作
  • python对mysql的操作
     http://sourceforge.net/projects/mysql-python 如果你不确定你的python环境里有没有这个库,那就打开python shell,输入 import MySQLdb,如果返回错误信息,那就表示你的...
    99+
    2023-01-31
    操作 python mysql
  • python操作Mysql实例
    本文介绍了Python操作mysql,执行SQL语句,获取结果集,遍历结果集,取得某个字段,获取表字段名,将图片插入数据库,执行事务等各种代码实例和详细介绍。 实例1、获取MYSQL的版本 #!/usr/bin/env python   i...
    99+
    2023-01-31
    实例 操作 python
  • Python操作MySQL(二) ORM
    SQLAlchemy是Python编程语言下的一款ORM框架,该框架建立在数据库API之上,使用关系对象映射进行数据库操作,简言之便是:将对象转换成SQL,然后使用数据API执行SQL并获取执行结果。 一、安装 pip3 install ...
    99+
    2023-01-31
    操作 Python ORM
  • python怎么操作mysql
    这篇文章将为大家详细讲解有关python怎么操作mysql,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。python操作mysql的方法:首先输入命令行pip insta...
    99+
    2024-04-02
  • python关于Mysql操作
    一.安装mysqlwindows下,直接下载mysql安装文件,双击安装文件下一步进行操作即可,下载地址:http://dev.mysql.com/downloads/mysql/Linux下的安装也很简单,除了下载安装包进行安装外,一般的...
    99+
    2023-01-31
    操作 python Mysql
  • Python学习笔记(2)操作符和数据类
    2019-02-25 一: (1)常用操作符:   ① 算数操作符:=、-、*、/、%(求余)、**(幂运算)、//(地板除法:计算结果取比商小的最大整型)   注意:幂运算操作符比其左侧的一元运算符的优先级高,比其右边的一元运算符优先级...
    99+
    2023-01-30
    学习笔记 操作 数据
  • 【Python】Python操作MySQL详解——PyMySQL
    Python操作MySQL详解——PyMySQL 一,Python操作数据库简介二,Python操作MySQL——PyMySQL(一)PyMySQL模块简介(二)PyMySQL使用(三)SQL...
    99+
    2023-09-23
    python mysql sql
  • python中操作mysql的pymy
    简述 pymsql是Python中操作MySQL的模块,其使用方法和MySQLdb几乎相同。但目前pymysql支持python3.x而后者不支持3.x版本。本文测试python版本:3.5.2。mysql版本:5.7.18 一、安装 p...
    99+
    2023-01-31
    操作 python pymy
  • 27. Python对Mysql的操作(
    1.游标游标是系统为用户开设的一个数据缓冲区,存放SQL语句的执行结果用户可以用SQL语句逐一从游标中获取记录,并赋给主变量,交由python进一步处理,一组主变量一次只能存放一条记录仅使用主变量并不能完全满足SQL语句向应用程序输出数据的...
    99+
    2023-01-31
    操作 Python Mysql
  • Python操作小结(mysql、txt
            有段时间没有使用python了,对它的语法有点生疏,花了几个小时熟悉,期间发现很多小细节不清楚。为了下次能快速上手,避免重复犯错,我将python使用过程中的一些问题在这篇博文中记录小结一下,主要内容涉及到python操作m...
    99+
    2023-01-31
    小结 操作 Python
  • 如何用Python操作MySQL
    这篇文章主要介绍“如何用Python操作MySQL”,在日常操作中,相信很多人在如何用Python操作MySQL问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”如何用Python操作MySQL”的疑惑有所帮助!...
    99+
    2023-07-06
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作