返回顶部
首页 > 资讯 > 数据库 >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://lsjlt.com/news/184444.html(转载时请注明来源链接)

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

猜你喜欢
  • 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
  • 2、操作数据库
    操作数据库 操作数据库 > 操作数据库中的表 > 操作数据库中表的数据 MySQL关键字不区分大小写 2.1、操作数据库(了解) 创建数据库 CREATE DATABASE westos; 删除数据库 DROP DATABASE ...
    99+
    2022-01-25
    2 操作数据库 数据库入门 数据库基础教程 数据库 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 操作Mysql(PyMysql)
    Python 操作 Mysql 常用方式: PyMysql:纯 Python 语言编写的 Mysql 操作客户端,安装方便,支持 Python3。SQLAlchemy:是一个非常强大的 ORM 框架,...
    99+
    2023-09-09
    Python 操作Mysql Python使用PyMysql
  • Python作业2
       1.分别取出0到10中的偶数和奇数。   2.判断一个数是否是质数 *程序*测试   3题目*程序*测试...
    99+
    2023-01-31
    作业 Python
  • python中字典的常见操作总结2
    目录判断字典中的元素是否存在in 与 not in判断元素是否存在get()函数判断元素是否存在字典中的popitem()函数所有数据类型与其布尔值深拷贝与浅拷贝总结判断字典中的元素...
    99+
    2024-04-02
  • MongoDB(2): 增删改操作
    附加命令:1、进入前端操作命令./mongo [ip:端口]说明:默认会自动选本地,端口270172、显示所有的库> show dbs;   ...
    99+
    2024-04-02
  • jquery对表单操作2
    checkbox的级联效果 复制代码 代码如下: <form> 你爱好的运动?<br/> <input type="checkbox" id="Chec...
    99+
    2022-11-21
    表单操作
  • MySQL(2)-SQL语句和库表的基本操作
     一 . 初识SQL语言SQL (Structured  Quqry  Language) : 结构化查询语言 , 主要用于存取数据 , 查询数据 , 更新数据和管理关系数据库系统SQL语言分为3种类型 ,...
    99+
    2024-04-02
  • python如何操作mysql
    mysql 使用 启动服务 sudo systemctl start mysql pip3 install pymysql python 操作数据库: 定义类 import pymysql cla...
    99+
    2022-05-13
    python MySQL python 操作MySQL
  • python操作oracle和mysql
    1、安装相关包yum install python-devel mysql-devel zlib-devel openssl-devel 2、安装setup、mysql-python包wget h...
    99+
    2024-04-02
  • python怎么操作mysql
    这篇文章将为大家详细讲解有关python怎么操作mysql,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。python操作mysql的方法:首先输入命令行pip insta...
    99+
    2024-04-02
  • Python操作MySQL(二) ORM
    SQLAlchemy是Python编程语言下的一款ORM框架,该框架建立在数据库API之上,使用关系对象映射进行数据库操作,简言之便是:将对象转换成SQL,然后使用数据API执行SQL并获取执行结果。 一、安装 pip3 install ...
    99+
    2023-01-31
    操作 Python ORM
  • python关于Mysql操作
    一.安装mysqlwindows下,直接下载mysql安装文件,双击安装文件下一步进行操作即可,下载地址:http://dev.mysql.com/downloads/mysql/Linux下的安装也很简单,除了下载安装包进行安装外,一般的...
    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的操作
     http://sourceforge.net/projects/mysql-python 如果你不确定你的python环境里有没有这个库,那就打开python shell,输入 import MySQLdb,如果返回错误信息,那就表示你的...
    99+
    2023-01-31
    操作 python mysql
  • Python学习笔记(2)操作符和数据类
    2019-02-25 一: (1)常用操作符:   ① 算数操作符:=、-、*、/、%(求余)、**(幂运算)、//(地板除法:计算结果取比商小的最大整型)   注意:幂运算操作符比其左侧的一元运算符的优先级高,比其右边的一元运算符优先级...
    99+
    2023-01-30
    学习笔记 操作 数据
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作