DevOps系列之 Python操作数据库

pymysql操作mysql数据库

  • 安装pymysql

pip install pymysql

pymysql操作数据库

1.连接数据库 使用Connect方法连接数据库 pymysql.Connections.Connection(host=None, user=None, password='', database=None, port=0, charset='') 参数说明: host -- 数据库服务器所在的主机。 user -- 登录用户名。 password -- 登录用户密码。 database -- 连接的数据库。 port -- 数据库开放的端口。(默认: 3306) charset -- 连接字符集。 返回值: 返回连接对象

例子: link = pymysql.Connect(host='localhost', port=3306, user='root', password='123456', db='shop', charset='utf8')

方法 说明
begin() 开启事务
commit() 提交事务
cursor(cursor=None) 创建一个游标用来执行sql语句
rollback() 回滚事务
close() 关闭连接
select_db(db) 选择数据库
  • 连接对象方法

2.创建游标

cursor = link.cursor() print(cursor.rowcount) #打印受影响行数

方法 说明
close() 关闭游标
execute(query, args=None) 执行单条语句,传入需要执行的语句,是string类型;同时可以给查询传入参数,参数可以是tuple、list或dict。执行完成后,会返回执行语句的影响行数。
fetchone() 取一条数据
fetchmany(n) 取多条数据
fetchall() 取所有数据

3.执行sql语句

# 执行sql语句

sql = 'select * from user1'

# 执行完sql语句,返回受影响的行数 num = cursor.execute(sql)

4.获取结果集 result1 = cursor.fetchone() print(result1)

5.关闭连接 cursor.close() link.close()

pymysql中事务处理

pymysql默认是没有开启自动提交事务,所以我们如果进行增、删、改,就必须手动提交或回滚事务。

sql 复制代码
sql = 'delete from user where id=%s' % user_id
​
# 如果要执行增删改语句的时候,下面的就是固定格式
try:
 cursor.execute(sql)
 # 如果全部执行成功,提交事务
 link.commit()
 print(cursor.lastrowid) #获取最后插入记录的自增id号
except Exception as e:
 print(e)
 link.rollback()
finally:
 cursor.close()
 link.close()

案例

使用pymysql向goods表中添加一条数据:

python 复制代码
from pymysql import *
 
​
def main():
  # 创建connection连接
  conn = connect(host='localhost', port=3306, database='shop', user='root',
          password='root', charset='utf8')
  # 获取cursor对象
  cs1 = conn.cursor()
  # 执行sql语句
  query = "insert into goods(id,name,price,num) values(%s,%s,%s,%s)"
  cs1.execute(query,(4,'蒙牛酸奶',13.9,88))
 
  # 提交之前的操作,如果之前已经执行多次的execute,那么就都进行提交
  conn.commit()
 
  # 关闭cursor对象
  cs1.close()
  # 关闭connection对象
  conn.close()
 
 
if __name__ == '__main__':
  main()

当然也可以删除、查询、修改表中的数据,但是无论是怎么操作,都需要创建连接并在结束的时候关闭连接对象。

相关推荐
加油yx1 分钟前
MySQL数据类型
数据库·mysql
计算机编程指导师4 分钟前
【计算机毕设选题推荐】基于Hadoop的宫颈癌变进程光谱数据分析系统源码 毕业设计 选题推荐 毕设选题 数据分析 机器学习
大数据·hadoop·python·数据分析·spark·毕业设计·宫颈癌变
蓝胖的四次元口袋26 分钟前
Redis知识梳理(1)
数据库·redis·缓存
夜雪一千30 分钟前
MySQL 数据加密实战:从传输、存储到字段级加密,分清场景不踩坑
数据库·mysql
夜雪一千41 分钟前
应用层加密的优缺点
python
计算机编程指导师1 小时前
【计算机毕设选题推荐】基于Hadoop+Spark的化妆品销售大数据分析系统源码 毕业设计 选题推荐 毕设选题 数据分析 机器学习
大数据·hadoop·python·spark·毕业设计·课程设计·化妆品
用户0332126663671 小时前
Python 实用技巧:从零自主生成结构化 PDF 页面
python
benchmark_cc1 小时前
前复权数据每天可能变化,历史数据库应该覆盖还是保留原始价格?
大数据·python·pandas·量化交易·股票数据·quantdash
wefg11 小时前
【Redis】C++ 自定义客户端
数据库·redis·缓存
计算机编程指导师1 小时前
计算机毕设选题推荐:Hadoop大数据下的个体肥胖健康风险评估与可视化系统源码 毕业设计 毕设选题 数据分析 机器学习
大数据·hadoop·python·spark·毕业设计·课程设计·肥胖健康风险