码迷,mamicode.com
首页 > 数据库 > 详细

python-数据库之pymysql模块(连接对象-游标对象-执行-获取值或者提交事务)

时间:2020-03-28 17:54:21      阅读:105      评论:0      收藏:0      [点我收藏+]

标签:fetchall   l数据库   set   elf   连接   ==   pip   src   配置   

1、pymysql模块安装与引入

安装

pip install PyMySQL

引入

import pymysql

2、数据库的操作

下图查找连接数据库,源码的方法,以及参数怎么配置的可参考

技术图片

 

数据库的操作步骤:

步骤1:引入pymysql模块 import pymysql
步骤2:连接数据库,返回连接对象 注意:charset="utf8"指定编码方式,没有-
con = pymysql.connect(host="127.0.0.1", user="root", port=3306, password="123456",charset="utf8")
步骤3:创建一个游标对象
cur = con.cursor()
步骤4:执行的sql语句
sql = "SELECT * FROM python.cfl_emp;"
步骤5:通过execute方法执行sql语句
res = cur.execute(sql) # 返回的是记录条数
步骤6:获取查询结果
# 获取查询到的返回集中的第一条数据
data_fetchone = cur.fetchone()
print(f"获取查询到的返回集中的第一条数据,data_fetchone = cur.fetchone() \n结果:{data_fetchone}")
# 获取查询到的所有数据
# 返回的是一个元组嵌套元组的数据
data_fetchall = cur.fetchall()
print(f"获取查询到的返回集中的所有数据,data_fetchall = cur.fetchall() \n结果:{data_fetchall}")

# 引入pymysql模块
import pymysql

# 步骤1:连接数据库,返回连接对象
# charset="utf8"指定编码方式,没有-
con = pymysql.connect(host="127.0.0.1", user="root", port=3306, password="123456",charset="utf8")

# 步骤2:创建一个游标对象
cur = con.cursor()
# 步骤3:执行的sql语句
sql = "SELECT *  FROM  python.cfl_emp;"

# 步骤4:通过execute方法执行sql语句
res = cur.execute(sql)  # 返回的是记录条数
print(res)

# 步骤5:获取查询结果

# 获取查询到的返回集中的第一条数据
data_fetchone = cur.fetchone()
print(f"获取查询到的返回集中的第一条数据,data_fetchone = cur.fetchone() \n结果:{data_fetchone}")

# 获取查询到的所有数据
# 返回的是一个元组嵌套元组的数据
data_fetchall = cur.fetchall()
print(f"获取查询到的返回集中的所有数据,data_fetchall = cur.fetchall() \n结果:{data_fetchall}")

 

 注意点:pymysql模块操作数据时,默认开启的事务
 在事务提交之前,所有对数据库进行修改的操作都不会同步到数据库
只有在提交事务之后,才会同步到数据
提交事务:连接对象.commit()

# 引入pymysql模块
import pymysql

# 步骤1:连接数据库,返回连接对象
# charset="utf8"指定编码方式,没有-
con = pymysql.connect(host="127.0.0.1", user="root", port=3306, password="123456",charset="utf8")

# 步骤2:创建一个游标对象
cur = con.cursor()
# 步骤3:执行的sql语句
select_sql = "select name from python.cfl_emp where id = 6;"
cur.execute(select_sql)
name_b = cur.fetchall()
print(f"事务提交前:name为{name_b}")


update_sql = "UPDATE python.cfl_emp SET  name = ‘钱一3‘ WHERE id = 6;"
cur.execute(update_sql)
# 注意点:pymysql模块操作数据时,默认开启的事务
# 在事务提交之前,所有对数据库进行修改的操作都不会同步到数据库
# 只有在提交事务之后,才会同步到数据
# 提交事务:连接对象.commit()

con.commit()
cur.execute(select_sql)
name_a = cur.fetchall()
print(f"事务提交前:name为{name_a}")

执行结果:

技术图片

 

 

3、简单封装数据库的操作-查询与增删改操作(因为修改需要提交事务)

分为查询和增删改操作
增删改操作需要连接对象.commit()

 简单封装如下:

""
封装一个做作mysql数据库的类
封装的功能:
    1、数据的查询操作
    2、增删改操作
"""
import pymysql

class MysqlBD:
    # __init__创建对象的时候初始化操作
    def __init__(self):
        self.con = pymysql.connect(host="127.0.0.1", user="root", port=3306, password="123456",charset="utf8")
        self.cur = self.con.cursor()
    # 数据的查询操作
    def find(self,sql):
        self.cur.execute(sql)
        datas = self.cur.fetchall()
        return datas
    # 增删改操作
    def update(self,sql):
        self.cur.execute(sql)
        self.con.commit()
if __name__  == __main__:
    db = MysqlBD()
    select_sql = "select name from python.cfl_emp where id = 6;"
    res = db.find(select_sql)
    print(f"查询结果:{res}")

    update_sql = "UPDATE python.cfl_emp SET  name = ‘钱一1‘ WHERE id = 6;"
    res_1 = db.update(update_sql)
    select_sql = "select name from python.cfl_emp where id = 6;"
    res1 = db.find(select_sql)
    print(f"查询结果:{res1}")

执行结果:

技术图片

 

python-数据库之pymysql模块(连接对象-游标对象-执行-获取值或者提交事务)

标签:fetchall   l数据库   set   elf   连接   ==   pip   src   配置   

原文地址:https://www.cnblogs.com/shishibuwan/p/12588289.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!