1、问题概述?
在Python脚本中,我们通过:
1、使用select * from 查询返回多条数据
2、使用select count(*)返回单个数据
但是这两种在使用上略有不同,需要注意
使用pymysql之前需要先安装
pip install pyMySQL
2、select * 语句的使用及取值
当返回值为多条的时候使用cursor.fetchall()
def 连接数据库函数():
conn = pymysql.connect(host='127.0.0.1', user='root', passwd='123456', port=3306, db='test', charset='utf8')
cursor = conn.cursor()
sql = 'select * from `student` where sex="" AND name="Android" '
cursor.execute(sql)
list = cursor.fetchall()
conn.close()
print(list)
return list
取值方式
for循环便利后,取值通过数组方式进行取值,索引从0开始。
if __name__ == '__main__':
list=连接数据库函数()
for data in list:
print("输出指定的参数:",data[0])
3、select count(*)语句的使用及取值
如果查询的结果返回的是单条数据使用cursor.fetchone()
def 查询表格中数据的条数():
conn = pymysql.connect(host='127.0.0.1', user='root', passwd='123456', port=3306, db='test', charset='utf8')
cursor = conn.cursor()
sql = 'select count(*) from `student'
cursor.execute(sql)
count = cursor.fetchone()
conn.close()
return count[0]
取值方式
由于返回的就是数据的条数,直接使用即可。
4、其他语句的使用方式
4.1、update和delete语句的使用方式
修改动作需要使用commit进行提交操作
发生异常通过conn.rollback()回滚
def 测试demo(id,name):
conn = pymysql.connect(host='127.0.0.1', user='root', passwd='123456', port=3306, db='test', charset='utf8')
cursor = conn.cursor()
sql='update `student` set name="'+name+'" where id="'+id+'"'
cursor.execute(sql)
sql2 = 'delete from `class'
cursor.execute(sql3)
try:
conn.commit()
print('操作成功')
except Exception as e:
print("操作失败")
conn.rollback()
finally:
cursor.close()
conn.close()
4.2、insert的语句的使用方式
insert的使用与其他基本相同,不能忽略资源的释放动作。
def insertdemp(id....):
conn = pymysql.connect(host='127.0.0.1', user='root', passwd='123456', port=3306, db='test', charset='utf8')
cursor = conn.cursor()
sql = 'insert into student (id,name,sex,age,addr,pwd) values ('"+id+"',.....)'
cursor.execute(sql)
conn.commit()
cursor.close()
conn.close()