python操作mysql,,python操作my
python操作mysql,,python操作my
python操作mysql
安装
python操作mysql数据库,主要就是通过pymysql模块
pip install pymysql
操作流程
1)建立数据库连接对象 conn
2)通过 conn 创建操作sql的 游标对象
3)编写sql交给 cursor 执行
4)如果是查询,通过 cursor对象 获取结果
5)操作完毕,端口操作与连接
代码步骤
注意
1.对记录增删改默认需要commit()
准备
import pymysql
一.建立连接
conn = pymysql.connect(user='root', passwd='root', database='t5')
二.获取游标对象
# 注:游标不设置参数,查询的结果就是数据元组,数据没有标识性# 设置pymysql.cursors.DictCursor,查询的结果是字典,key是表的字段cursor = conn.cursor(pymysql.cursors.DictCursor)
三.增删改查
创建表
sql1="create table zx(id int)"cursor.execute(sql1)
增
#单条添加sql2='insert into zx values(%s)'cursor.execute(sql2,(1,))cursor.execute(sql2,(2,))cursor.execute(sql2,(3,))conn.commit()#多条添加cursor.executemany(sql2, [(4,), (5,)])conn.commit()
删
sql3="delete from zx where id =%s"cursor.execute(sql3,3)conn.commit()
改
sql4='update zx set id=10 where id =2'cursor.execute(sql4)conn.commit()
查
sql5='select * from zx'cursor.execute(sql5)#fetchone() 偏移一条取出r1=cursor.fetchone()print(r1)#fetchmany(n) 偏移n条取出r2=cursor.fetchmany(1)print(r2)#fetchall() 偏移剩余全部r3=cursor.fetchall()print(r3)
结果
{'id': 1}[{'id': 10}][{'id': 4}, {'id': 5}]
结束
#释放端口与连接cursor.close()conn.close()
游标其他用法
# 操作游标 # cursor.scroll(0, 'absolute') # absolute绝对偏移,游标重置,从头开始偏移 cursor.scroll(-2, 'relative') # relative相对偏移,游标在当前位置进行左右偏移
事务
#转账案例try: sql1 = 'update t2 set money=money-1 where name="tom"' r1 = cursor.execute(sql1) sql2 = 'update t2 set money=money+1 where name="ruakei"' # 转入的人不存在 r2 = cursor.execute(sql2)except: print('转账执行异常') conn.rollback()else: print('转账没有异常') if r1 == 1 and r2 == 1: print('转账成功') conn.commit() else: conn.rollback()
sql注入攻击
不要自己拼接参数,交给pymysql占位填充!
sql = 'select * from user where name=%s and password=%s'row = cursor.execute(sql, (usr, pwd))if row: print('登录成功')else: print('登录失败')
python操作mysql
相关内容
- python - 列表,,操作:索引,切片,加
- python日记_递归,,递归算法1、递归的定
- python--11、协程,,协程,又称微线程,纤
- Python_socket编程,,一、什么是socke
- python鑷畾涔夊睘鎬ц闂甠_setattr__, __getattr__, __seta
- Python把给定的列表转化成二叉树,, 在LeetCo
- CentOS7.6更新python3.8本版,,系统环境: Cent
- win64位系统+Anacond(python3.6)避坑快速安装Dlib+Face_recognit
- Python获取下载速度并显示进度条,,#!/usr/bin
- python 参数化之读取yaml文件中的内容,,一、YAML的安装:
评论关闭