zoukankan      html  css  js  c++  java
  • python-数据库之pymysql模块(连接对象-游标对象-执行-获取值或者提交事务)

    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() 结果:{data_fetchone}")
    # 获取查询到的所有数据
    # 返回的是一个元组嵌套元组的数据
    data_fetchall = cur.fetchall()
    print(f"获取查询到的返回集中的所有数据,data_fetchall = cur.fetchall() 结果:{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() 
    结果:{data_fetchone}")
    
    # 获取查询到的所有数据
    # 返回的是一个元组嵌套元组的数据
    data_fetchall = cur.fetchall()
    print(f"获取查询到的返回集中的所有数据,data_fetchall = cur.fetchall() 
    结果:{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}")

    执行结果:

  • 相关阅读:
    Andrew Ng机器学习算法入门((七):特征选择和多项式回归
    Andrew Ng机器学习算法入门((六):多变量线性回归方程求解
    Andrew Ng机器学习算法入门((五):矩阵和向量
    Linux常用命令集锦
    Andrew Ng机器学习算法入门(四):阶梯下降算法
    AZscaaner源码解读之数据库连接(一)
    Andrew Ng机器学习算法入门(三):线性回归算法
    Andrew Ng机器学习算法入门(二):机器学习分类
    MapServer
    fetch.js
  • 原文地址:https://www.cnblogs.com/shishibuwan/p/12588289.html
Copyright © 2011-2022 走看看