使用python操作mysql数据库

操作步骤

要想使用python操作数据库的话,需要用到pymysql这个第三方包.
如果没有安装这个包,可以使用 pip3 install pymysql 命令来安装

下面来介绍pymysql使用方法

  1. 导入pymysql包
  2. 连接数据库
  3. 获取数据库游标
  4. 使用数据库游标执行sql语句
  5. 获取执行结果或者提交执行结果
  6. 关闭数据库

步骤解析

  1. 导入pymysql包
import pymysql
  1. 连接数据库(实例化)
db=pymysql.connet(host=host,user=user,password=password,port=port,db=db)

传入的关键参数解释:
host:数据库的ip(str类型)
user:数据库的用户名(str类型)
password:数据库的密码(str类型)
port:数据库的端口(int类型)
db:需要操作的数据库(str类型)

注:关键参数可以不按照上面的顺序传

  1. 获取数据库游标
cursor=db.cursor()
  1. 使用游标执行sql语句
cursor.execute(sql)
  1. 获取执行结果
    获取执行结果针对的是数据库的查操作
res=cursor.fetchall()  # 获取所有结果
res=cursor.fetchone()  # 获取一条结果
res=cursor.fetchmany(n) # 获取n条结果
count=cursor.rowcount	# 获取执行结果的条数

res的数据类型为元祖

  1. 提交执行结果
    对于增删改的操作,如果我们仅仅只是使用游标执行sql语句,那么数据库对象不会进行任何改变,这是因为我们没有进行提交,数据库就没有变化.所以我们做了增删改的操作之后,需要进行提交,如下:
db.commit()
  1. 关闭数据库
db.close()

例子

数据库的查操作

操作的数据库:data_test
操作的表:repetition_data

先看下repetition_data表的数据有哪些,如下图所示:
在这里插入图片描述

从上图可知repetition_data表总共有8条记录

下面我们用python来执行 select* from repetition_data这条语句

import pymysql

host='localhost'
user='root'
password='li@o0121'
port=3306
db='data_test'
sql=""" SELECT * from repetition_data """

db=pymysql.connect(host=host,user=user,password=password,port=port,db=db)
cursor=db.cursor()
cursor.execute(sql)
res=cursor.fetchall()	# 获取所有执行结果
count=cursor.rowcount
print(res)
print("查询结果的条数:{}".format(count))
db.close()

执行结果如下:

((3, 10, 'lgx'), (4, 10, 'lgx'), (5, 10, 'lgx'), (6, 10, 'lgx'), (7, 10, 'lgx'), (8, 10, 'lgx'), (9, 10, 'lgx'), (10, 10, 'lgx'))
查询结果的条数:8

从结果可以看到,查询返回的结果为元组,rowcount()可以获取查询结果的条数.至于fetchone()和fetchmany()就不演示了.

数据库的增改删操作

把repetition_data表中id=6的name字段的值改为csdn

先看看没改之前的字段值
在这里插入图片描述

import pymysql

host='localhost'
user='root'
password='li@o0121'
port=3306
db='data_test'
sql=""" update repetition_data set name="csdn" where id=6; """
db=pymysql.connect(host=host,user=user,password=password,port=port,db=db)
cursor=db.cursor()
cursor.execute(sql)
#db.commit()  # 先不进行提交
db.close()

执行sql之后,不提交,查询数据库结果如下:
在这里插入图片描述

发现name的值并没有更新.

下面db.commit()之后的结果
在这里插入图片描述
name的值已经改变,同理,进行增删操作的时候要记得db.commit()

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值