python操作mysql数据库系列-操作MySql数据库(四)

本篇我们主要对mysql的查询进行讲解。查询在数据库中的应用是最为广泛的,比如单表查询、多表查询、子查询、分组查询等等、接下来重点了解一下python结合mysql是如何实现查询的?

首先我们来看对单条数据的查询:

def select():
    '''查询语句'''
    con = conn()
    # 创建游标
    cur = con.cursor()
    sql = "select * from USER WHERE id=%s"
    params = (1,)
    cur.execute(sql,params)  # 执行语句
    data = cur.fetchone()
    print (data)
    cur.close()  # 关闭游标连接池
    con.close()  # 关闭数据库连接池

select()
  • params接受的是一个元祖,所以后面需要加逗号消除歧义。1代表的是查询id=1的数据,相当于是过滤的动作。
  • fetchone()方法用于查询动作

查询后的结果如下:

C:\Python27\python2.exe D:/project/JieKou/page/mysqTests.py
(1L, 'fighter', 'admin', 'sanpang')

Process finished with exit code 0

1L我们可以把它忽略,不需要考虑。接下来我们实现对多条数据,也就是批量数据的查询是如何操作的???

def selectMany():
    '''查询语句'''
    con = conn()
    # 创建游标
    cur = con.cursor()
    sql = "select * from USER"
    cur.execute(sql)  # 执行语句
    data = cur.fetchall()
    for item in data:
        print (item)
    cur.close()  # 关闭游标连接池
    con.close()  # 关闭数据库连接池
selectMany()
  • 1.查询所有数据就不需要过滤条件where了,直接select * from user;
  • 2.fetchall()方法用于查看所有的数据
  • 3.for循环遍历所有的数据

查看查询后的结果:

C:\Python27\python2.exe D:/project/JieKou/page/mysqTests.py
(1L, 'fighter', 'admin', 'sanpang')
(2L, 'fighter01', 'admin', 'sanpang')
(3L, 'fighter02', 'admin', 'sanpang')

截图结果:

然后我们对数据进行修改操作:

def update():
    '''查询语句'''
    con = conn()
    # 创建游标
    cur = con.cursor()
    sql = "update user set username=%s WHERE id=%s"
    params = ('haha',2)
    cur.execute(sql,params)  # 执行语句
    con.commit()
    cur.close()  # 关闭游标连接池
    con.close()  # 关闭数据库连接池

update()
  • 1. %s是通配符 
  • 2.haha是对应的username修改后的值  2对应的是id=2的数据
  • 3.commit一定要做,不然修改失败。

修改后的结果如下:

在对数据进行删除操作:

def delete():
    '''查询语句'''
    con = conn()
    # 创建游标
    cur = con.cursor()
    sql = "delete from USER where id=%s"
    params = (1,)
    cur.execute(sql,params)  # 执行语句
    con.commit() #一定要执行
    cur.close()  # 关闭游标连接池
    con.close()  # 关闭数据库连接池
delete()

删除结果如下:

ok,mysql的查询和修改、删除的场景我们就演示完了,,,,,

posted @ 2018-08-05 12:57  IT测试老兵  阅读(282)  评论(0编辑  收藏  举报
作者:测试老兵
出处:https://www.cnblogs.com/fighter007/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。