【20】python之操作MySQL数据库
2024-10-20 15:53:31
一、连接库安装
Python2.x:MySQLdb
Python3.x :pymysql
二、接口信息
#创建数据库连接
pymysql.Connect()参数说明
host(str): MySQL服务器地址
port(int): MySQL服务器端口号
user(str): 用户名
passwd(str): 密码
db(str): 数据库名称
charset(str): 连接编码,存在中文的时候,连接需要添加charset='utf8',否则中文显示乱码。 connection对象支持的方法
cursor() 使用该连接创建并返回游标
commit() 提交当前事务,不然无法保存新建或者修改的数据
rollback() 回滚当前事务
close() 关闭连接 cursor对象支持的方法
execute(op) 执行SQL,并返回受影响行数
fetchone() 取得结果集的下一行
fetchmany(size) 获取结果集的下几行
fetchall() 获取结果集中的所有行
rowcount() 返回数据条数或影响行数
close() 关闭游标对象
三、数据库准备
MySQL数据库安装详见https://www.cnblogs.com/dangjf/p/13570602.html
1、创建数据库
2、创建测试表
四、数据库操作
1、连接数据库
import pymysql # 连接数据库
connect = pymysql.Connect(
host='localhost',
port=3306,
user='root',
passwd='root',
db='pytest',
charset='utf8'
) # 获取游标
cursor = connect.cursor()
2、查询数据
# 查询数据
sql = "SELECT name,saving FROM trade WHERE account = '%s' "
data = ('13512345678',)
cursor.execute(sql % data)
for row in cursor.fetchall():
print("Name:%s\tSaving:%.2f" % row)
print('共查找出', cursor.rowcount, '条数据')
3、插入数据
插入一条数据
# 插入数据
sql = "INSERT INTO trade (name, account, saving) VALUES ( '%s', '%s', %.2f )"
data = ('雷军', '13512345678', 10000)
cursor.execute(sql % data)
connect.commit()
print('成功插入', cursor.rowcount, '条数据')
插入多条数据
# 插入数据
sql2 = "INSERT INTO team (v1,v2,v3) VALUES ( %s,%s,%s )"#%s没有引号
data = (('1','1','1'),('2','2','2'))
cursor.executemany(sql2, data)#注意使用executemany
connect.commit()
print('成功插入', cursor.rowcount, '条数据')
4、删除数据
sql = "DELETE FROM trade WHERE account = '%s' LIMIT %d"
data = ('13512345678', 1)
cursor.execute(sql % data)
connect.commit()
print('成功删除', cursor.rowcount, '条数据')
5、修改数据
# 事务处理
sql_1 = "UPDATE trade SET saving = saving + 1000 WHERE account = '18012345678' "
sql_2 = "UPDATE trade SET expend = expend + 1000 WHERE account = '18012345678' "
sql_3 = "UPDATE trade SET income = income + 2000 WHERE account = '18012345678' " try:
cursor.execute(sql_1) # 储蓄增加1000
cursor.execute(sql_2) # 支出增加1000
cursor.execute(sql_3) # 收入增加2000
except Exception as e:
connect.rollback() # 事务回滚
print('事务处理失败', e)
else:
connect.commit() # 事务提交
print('事务处理成功', cursor.rowcount)
6、清空数据
# 清空数据
sql = "truncate table team"
cursor.execute(sql)
connect.commit()
print('成功清空')
7、关闭连接
# 关闭连接
cursor.close()
connect.close()
- 添加到短语集
- 没有此单词集:英语 → 中文(简体)...
- 创建新的单词集...
- 没有此单词集:英语 → 中文(简体)...
- 拷贝
最新文章
- 【原创】开源Math.NET基础数学类库使用(08)C#进行数值积分
- 【CentOS】压缩打包
- Linux笔记-常用的命令(15-3-30)
- WinForm动态添加控件及其事件(转)
- JQuery EasyUI中datagrid的使用
- MotionEvent常见值
- VB6 GDI+ 入门教程[2] GDI+初始化
- 【排障】nginx在reload时候报错invalid PID number
- JS 打字机效果
- 用Quick Cocos2dx做一个连连看(一)
- Azure 基础:使用 powershell 创建虚拟网络
- 基于CDIF实现的——API在线自动化测试
- linux允许root远程登录
- java笔记02
- Android实用代码七段(二)
- python入门编程之三级菜单编程
- Linq组合查询与分页组合查询结合
- 大数据实操3 - hadoop集群添加新节点
- VS2017 Debug断点后显示UTF8字符串
- listcard记录