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的查询和修改、删除的场景我们就演示完了,,,,,
将喜欢的一切留在身边,这便是努力的意义。