精华内容
下载资源
问答
  • python操作mysql数据库
    2022-03-20 01:35:31

    1、引入mysql模块 — —>import pymysql

    2、创建数据库连接对象 — —>cnn = pymysql.connect(连接数据库必须的参数)

            必须参数:

            (1)host:主机/服务器名称或者IP地址

            (2)port:端口号,一般是3306,必须是整型

            (3)用户名和密码

            (4)数据库名称

            (5)字符集类型,一般是utf8

    3、利用连接对象创建游标对象— —>cur = cnn.cursor(pymysql.cursors.四大类型)

            Cursor(默认的),SSCursor(元组套元组类型),DictCursor(元组套字典),SSDCursor

    4、自定义数据库操作语言,用变量接收— —>sql = "select * from 表名;"

    5、用游标对象的方法执行sql语句— —>cur.excute(sql)

    6、用游标对象的方法查看/获取数据— —>cur.fetchall()/ fetchone()/cur.fetchmany()

    7、关闭游标对象和连接对象— —>cur.close()先关闭    cnn.close()后关闭

    后续我会写上下文管理器版本的数据库连接操作,以及ini配置文件让数据与程序分离等深入的知识,关注我,学更多的python小技巧。

    更多相关内容
  • 主要介绍了Python操作MySQL数据库,结合实例形式详细分析了Python操作mysql数据库的安装、连接、增删改查等相关实现技巧与注意事项,需要的朋友可以参考下
  • 主要介绍了Python操作mysql数据库实现增删查改功能的方法,涉及Python针对mysql数据库的连接、增删改查等相关操作技巧,需要的朋友可以参考下
  • python操作mysql数据库

    千次阅读 2022-05-12 13:44:30
    python操作数据库的过程: 创建连接—获取游标—执行命令—关闭游标—关闭连接 python访问mysql要用pymysql库 pymysql需要安装:pip install pymysql 导入pymysql

    python操作数据库的过程:

    创建连接—获取游标—执行命令—关闭游标—关闭连接
    在这里插入图片描述

    python访问mysql 要用pymysql库

    pymysql需要安装:pip install pymysql
    在这里插入图片描述
    安装完之后导入pymysql,创建连接
    连接数据库的参数按照实际情况添加,端口号默认是3306,我的有冲突,改成了3307

    # 导入pymysql
    import pymysql
    
    
    # 定义一个函数
    # 这个函数用来创建连接(连接数据库用)
    def mysql_db():
        # 连接数据库肯定需要一些参数
        conn = pymysql.connect(
            host="127.0.0.1",
            port=3307,
            database="lebo",
            charset="utf8",
            user="root",
            passwd="root"
        )
    
    
    if __name__ == '__main__':
        mysql_db()
    
    

    关于游标,执行SQL,查询数据
    游标需要创建游标还要关闭游标,为了防止忘关游标,所以用with

    # 打开数据库可能会有风险,所以添加异常捕捉
        try:
            with conn.cursor() as cursor:
                # 准备SQL语句
                sql = "select * from user"
                # 执行SQL语句
                cursor.execute(sql)
                # 执行完SQL语句后的返回结果都是保存在cursor中
                # 所以要从cursor中获取全部数据
                datas = cursor.fetchall()
                print("获取的数据:\n", datas)
        except Exception as e:
            print("数据库操作异常:\n", e)
        finally:
            # 不管成功还是失败,都要关闭数据库连接
            conn.close()
    

    在这里插入图片描述

    cursor中获取数据的fetchall,fetchone,fetchmany

    fetchall:获取当前SQL语句能查出来的全部数据
    fetchone:每次获取一条数据。但是获取到这条数据后,指针会往后移一行数据
    在这里插入图片描述
    在这里插入图片描述
    fetchmany:直接告诉它想要多少条数据
    在这里插入图片描述
    插入一条数据
    重点一个是commit,一个是rollback。有提交的地方一定要有回滚。回滚到上次提交的地方

        try:
            with conn.cursor() as cursor:
                # 准备SQL语句
                value = "12,'鲁肃'"
                sql = f"insert into user values ({value});"
                # 执行SQL语句
                cursor.execute(sql)
                # 执行完要提交
                conn.commit()
                print("提交成功")
        except Exception as e:
            # 如果执行失败要回滚
            conn.rollback()
            print("数据库操作异常:\n", e)
        finally:
            # 不管成功还是失败,都要关闭数据库连接
            conn.close()
    

    添加多条数据

        try:
            with conn.cursor() as cursor:
                # 准备要插入的数据
                # 插入一条
                # value = "12,'鲁肃'"
                # 插入多条
                value = "(13,'张三'),(14,'李四'),(15,'王五')"
                # 准备SQL语句
                sql = f"insert into user values {value};"
                # 执行SQL语句
                cursor.execute(sql)
                # 执行完要提交
                conn.commit()
                print("提交成功")
        except Exception as e:
            # 如果执行失败要回滚
            conn.rollback()
            print("数据库操作异常:\n", e)
        finally:
            # 不管成功还是失败,都要关闭数据库连接
            conn.close()
    

    在这里插入图片描述
    表中可以看到已经插入成功
    在这里插入图片描述
    修改、更新数据
    只需要修改添加的SQL语句,其他不变
    增删改查,除了查询,其他都需要提交

        try:
            with conn.cursor() as cursor:
    
                # 准备SQL语句
                sql = f"update user set name='封控了' where id = 1 ;"
                # 执行SQL语句
                cursor.execute(sql)
                # 执行完要提交
                conn.commit()
                print("提交成功")
        except Exception as e:
            # 如果执行失败要回滚
            conn.rollback()
            print("数据库操作异常:\n", e)
        finally:
            # 不管成功还是失败,都要关闭数据库连接
            conn.close()
    

    在这里插入图片描述
    删除数据

        try:
            with conn.cursor() as cursor:
    
                # 准备SQL语句
                sql = "delete from user where id = 12;"
                # 执行SQL语句
                cursor.execute(sql)
                # 执行完要提交
                conn.commit()
                print("删除成功")
        except Exception as e:
            # 如果执行失败要回滚
            conn.rollback()
            print("数据库操作异常:\n", e)
        finally:
            # 不管成功还是失败,都要关闭数据库连接
            conn.close()
    

    在这里插入图片描述

    封装一个需要自己写SQL语句的mysql工具类

    '''
    封装一个mysql工具类(需要自己写SQL语句)
    功能:mysql数据库操作
    步骤:
        1.连接数据库
        2.通过连接对象,获取游标对象
        3.增删改查操作
    方法:
        1.查
        2.增删改 commit,rollback
    '''
    
    # 先要导入pymysql
    import pymysql
    
    # 把连接参数定义成字典
    config = {
        "host": "127.0.0.1",
        "port": 3307,
        "database": "lebo",
        "charset": "utf8",
        "user": "root",
        "passwd": "root"
    }
    
    
    class Mysqldb():
        # 初始化方法
        def __init__(self):
            # 初始化方法中调用连接数据库的方法
            self.conn = self.get_conn()
            # 调用获取游标的方法
            self.cursor = self.get_cursor()
    
        # 连接数据库的方法
        def get_conn(self):
            # **config代表不定长参数
            conn = pymysql.connect(**config)
            return conn
    
        # 获取游标
        def get_cursor(self):
            cursor = self.conn.cursor()
            return cursor
    
        # 查询sql语句返回的所有数据
        def select_all(self, sql):
            self.cursor.execute(sql)
            return self.cursor.fetchall()
    
        # 查询sql语句返回的一条数据
        def select_one(self, sql):
            self.cursor.execute(sql)
            return self.cursor.fetchone()
    
        # 查询sql语句返回的几条数据
        def select_many(self, sql, num):
            self.cursor.execute(sql)
            return self.cursor.fetchmany(num)
    
        # 增删改除了SQL语句不一样其他都是一样的,都需要提交
        def commit_data(self, sql):
            try:
                # 执行语句
                self.cursor.execute(sql)
                # 提交
                self.conn.commit()
                print("提交成功")
            except Exception as e:
                print("提交出错\n:", e)
                # 如果出错要回滚
                self.conn.rollback()
    
        # 当对象被销毁时,游标要关闭,连接也要关闭
        # 创建时是先创建连接后创建游标,关闭时是先关闭游标后关闭连接
        def __del__(self):
            self.cursor.close()
            self.conn.close()
    
    

    调用

    
    # 已经封装好mysql类了,就不用导入pymsql了,直接导入封装好的类
    
    from mysql_util import Mysqldb
    
    # 实例化
    my_db = Mysqldb()
    
    # 写查询SQL语句
    sql = "select * from user where id>5"
    # 查询所有
    select_all = my_db.select_all(sql)
    print("查询所有数据:\n", select_all)
    # 查询一条
    select_one = my_db.select_one(sql)
    print("查询一条数据:\n", select_one)
    # 查询多条
    select_many = my_db.select_many(sql, 3)
    print("查询3条数据:\n", select_many)
    
    # 新增一条数据
    value = (16, 'BBQ')
    sql = f"insert into user values {value}"
    insert_one = my_db.commit_data(sql)
    # 新增多条数据
    values = "(17, 'aaa'), (18, 'bbb'), (19, 'ccc')"
    sql = f"insert into user values {values}"
    insert_many = my_db.commit_data(sql)
    
    # 修改数据
    sql = "update user set name = '出不去了' where id = 17"
    my_db.commit_data(sql)
    
    # 删除数据
    sql = "delete from user where id = 17"
    my_db.commit_data(sql)
    

    封装一个不用写SQL语句,只需要填参数的工具类

    只写了基本的增删改查,后面可以根据实际情况添加

    import pymysql
    
    
    class Database():
        # **config是指连接数据库时需要的参数,这样只要参数传入正确,连哪个数据库都可以
        # 初始化时就连接数据库
        def __init__(self, **config):
            try:
                # 连接数据库的参数我不希望别人可以动,所以设置私有
                self.__conn = pymysql.connect(**config)
                self.__cursor = self.__conn.cursor()
            except Exception as e:
                print("数据库连接失败:\n", e)
    
        # 查询一条数据
        # 参数:表名table_name,条件factor_str,要查询的字段field 默认是查询所有字段*
        def select_one(self, table_name, factor_str='', field="*"):
            if factor_str == '':
                sql = f"select {field} from {table_name}"
            else:
                sql = f"select {field} from {table_name} where {factor_str}"
            self.__cursor.execute(sql)
            return self.__cursor.fetchone()
    
        # 查询多条数据
        # 参数:要查询数据的条数num,表名table_name,条件factor_str,要查询的字段field 默认是查询所有字段*
        def select_many(self, num, table_name, factor_str='', field="*"):
            if factor_str == '':
                sql = f"select {field} from {table_name}"
            else:
                sql = f"select {field} from {table_name} where {factor_str}"
            self.__cursor.execute(sql)
            return self.__cursor.fetchmany(num)
    
        # 查询全部数据
        # 参数:表名table_name,条件factor_str,要查询的字段field 默认是查询所有字段*
        def select_all(self, table_name, factor_str='', field="*"):
            if factor_str == '':
                sql = f"select {field} from {table_name}"
            else:
                sql = f"select {field} from {table_name} where {factor_str}"
            self.__cursor.execute(sql)
            return self.__cursor.fetchall()
    
        # 新增数据
        def insert(self,table_name, value):
            sql = f"insert into {table_name} values {value}"
            try:
                self.__cursor.execute(sql)
                self.__conn.commit()
                print("插入成功")
            except Exception as e:
                print("插入失败\n", e)
                self.__conn.rollback()
    
        # 修改数据
        # 参数:表名,set值(可能是一个,也可能是多个,所以用字典),条件
        def update(self, table_name, val_obl,change_str):
            sql = f"update {table_name} set"
            # set后面应该是要修改的字段,但是可能会修改多个字段的值,所以遍历一下
            # key对应字段的名,val对应字段的值
            for key, val in val_obl.items():
                sql += f" {key} = {val},"
            # 遍历完的最后面会有一个逗号,所以给它切掉,然后再拼接条件
            # !!!空格很重要
            sql = sql[:-1]+" where "+change_str
            try:
                self.__cursor.execute(sql)
                self.__conn.commit()
                print("修改成功")
            except Exception as e:
                print("修改失败\n", e)
                self.__conn.rollback()
    
        # 删除数据
        def delete(self,table_name, item):
            sql = f"delete from {table_name} where {item}"
            try:
                self.__cursor.execute(sql)
                self.__conn.commit()
                print("删除成功")
            except Exception as e:
                print("删除失败\n", e)
                self.__conn.rollback()
    

    引用 ↓

    # 导包
    from mysql_normal_util import Database
    
    # 设置连接数据库的参数
    config = {
        "host": "127.0.0.1",
        "port": 3307,
        "database": "lebo",
        "charset": "utf8",
        "user": "root",
        "passwd": "root"
    }
    
    # 实例化时就直接传参数
    db = Database(**config)
    
    # 查询1条
    select_one = db.select_one("user")
    print(select_one)
    
    # 查询多条
    select_many = db.select_many(3, "user")
    print(select_many)
    
    # 查询所有数据(根据条件)
    select_all = db.select_all("user", "id>10")
    print(select_all)
    
    # 新增一条数据
    db.insert("user","(20,'111')")
    # 新增多条数据
    db.insert("user", "(21,'123'),(22,'456')")
    
    # 修改一个字段的数据
    db.update("user", {"name": "222"}, "id=20")
    # 修改多个字段的数据
    db.update("user", {"id": "23", "name": "12345"}, "id=103")
    
    # 删除数据
    db.delete("user", "id=23")
    
    展开全文
  • 自己收集编写的python操作mysql函数,奉献给大家,该文件包含用python处理mysql的查、增、改、删、命名、排序等操作的函数,mysql数据库操作的各种sql语句可供参考。
  • Python操作mysql数据库

    千次阅读 多人点赞 2021-07-31 15:49:03
    利用Python来实现数据库的连接的话,其实很简单,我们主流使用的第三方库是pymysql这是一个使用python来实现的第三方库,当然在不同的框架中可以直接调用相关使用数据库的方法。那么这里先简单说一下怎么使用pymysql...

    前言

    (sql部分的笔记较多难以整理,先简单说明一下如何使用python进行数据库连接,此外由于Java的技术栈过长,接下来的学习将重新回归到python先实现效果,之后再使用Java进行实现,做进一步的优化)
    利用Python来实现数据库的连接的话,其实很简单,我们主流使用的第三方库是pymysql这是一个使用python来实现的第三方库,当然在不同的框架中可以直接调用相关使用数据库的方法。那么这里先简单说一下怎么使用pymysql实现数据库的连接。

    建立数据连接

    其实使用pymysql进行数据库的连接是非常简单的,第一步就是建立数据库连接(在python当中,这其实更像是使用了一个代理)

    import pymysql
    
    try:
        #建立连接
        conn=pymysql.connect(
            host='127.0.0.1',port=3306,user='Huterox',
            passwd='passwd',db='huterox',charset='utf8'
        )
    except pymysql.Error as err:
        print(err)
    

    操作流程

    下面为了更好的理解相关操作,请看下面的流程图,它将很好地反映这个pymysql的操作方式。
    在这里插入图片描述

    使用游标执行sql语句

    数据 增,删除,改

    这个数据的查询和这几个是不太一样的,说以下面再说。
    先展示以先当前的演示环境
    在这里插入图片描述
    现在我们在这里面插入数据

    
     Sqlcomm = """insert into hello(name,age) value(%s,%s)"""
     cursor.execute(Sqlcomm,("xx",15))
    
    
    import pymysql
    
    #建立连接
    conn=pymysql.connect(
        host='127.0.0.1',port=3306,user='Huterox',
        passwd='865989840',db='huterox',charset='utf8'
    )
    cursor = conn.cursor()
    
    try:
    
        Sqlcomm = """insert into hello(name) value(%s)"""
        cursor.execute(Sqlcomm,("小刚"))
    
        conn.commit()#提交
    except pymysql.Error as err:
        conn.rollback()#回滚
        print(err)
    finally:
        conn.close()
    

    在这里插入图片描述
    现在已经加入了,这一条,那么现在添加age和heigh的值

    update hello set age=15,heigh=185 where name=%s
    
    import pymysql
    
    #建立连接
    conn=pymysql.connect(
        host='127.0.0.1',port=3306,user='Huterox',
        passwd='865989840',db='huterox',charset='utf8'
    )
    cursor = conn.cursor()
    
    try:
    
        Sqlcomm = """update hello set age=15,heigh=185 where name=%s"""
        res = cursor.execute(Sqlcomm,"小刚")if res==1:
            #一条受影响,返回一
            print("修改成功")
        conn.commit()#提交
    except pymysql.Error as err:
        conn.rollback()#回滚
        print(err)
    finally:
        conn.close()
    

    在这里插入图片描述
    接下来就是删除了,那还不简单

    delete from hello where name=’小刚‘
    

    在这里插入图片描述

    数据的查找

    这个就有点区别了
    看代码

    import pymysql
    
    #建立连接
    conn=pymysql.connect(
        host='127.0.0.1',port=3306,user='Huterox',
        passwd='865989840',db='huterox',charset='utf8'
    )
    cursor = conn.cursor()
    
    try:
    
        Sqlcomm = """select name as 名字,age as 年龄, heigh as 身高 from hello"""
        cursor.execute(Sqlcomm)
        for row in cursor.fetchall():
            
            print(row)
    
        conn.commit()#提交
    except pymysql.Error as err:
        conn.rollback()#回滚
        print(err)
    finally:
        conn.close()
    

    cursor 有三个方法获取结果
    在这里插入图片描述
    这个一目了然,fetchall()就是全部结果
    这个返回结果是一个大元组,里面都是一个个小元组
    在这里插入图片描述
    那么在这里的化还可以设置为字典,也最好设置为字典。

    conn=pymysql.connect(
        host='127.0.0.1',port=3306,user='Huterox',
        passwd='pw',db='huterox',charset='utf8',
        cursorclass=pymysql.cursors.DictCursor
    )
    

    在这里插入图片描述

    注入防范

    这个在pymysql里面比较好的就是它会帮助我们自己完成防范,你只需要,把变量,也就是用户输入当作元组在execute()函数中放置,而不是在字符串里面拼接即可。
    在这里插入图片描述

    展开全文
  • 在Windows平台上安装mysql模块用于Python开发 用python连接mysql的时候,需要用的安装版本,源码版本容易有错误提示。下边是打包了32与64版本。 MySQL-python-1.2.3.win32-py2.7.exe MySQL-python-1.2.3.win-amd64-...
  • 1)以python连接mysql数据库为例 2)使用游标的操作步骤 首先,使用pymysql连接上mysql数据库,得到一个数据库对象。 然后,我们必须要开启数据库中的游标功能,得到一个游标对象。 接着,使用游标对象中的...
  • python操作mysql数据库.py
  • MySQLdb 是用于 Python 连接 MySQL 数据库的接口,它实现了 Python 数据库 API 规范 V2.0,基于 MySQL C API 上建立的。 (2) 源码安装 MySQLdb: https://pypi.python.org/pypi/MySQL-python $ tar zxvf MySQL-...
  • 高级教程】课程列表01 Python语言开发要点详解.pptx02 Python数据结构.pptx03 Python函数和函数式编程.pptx04 Python面向对象编程.pptx05 Python数据采集 网络爬虫 网页爬虫.pptx06 Python操作MySQL数据库.pptx07 ...
  • python操作mysql数据库.pdf
  • 主要介绍了Python操作MySQL数据库的方法,文中示例代码非常详细,帮助大家更好的理解和学习,感兴趣的朋友可以了解下
  • pymsql是Python操作MySQL的模块,其使用方法和MySQLdb几乎相同。接下来通过本文给大家介绍Python操作MySQL数据库的方法,感兴趣的朋友一起看看吧
  • 主要介绍了Python操作MySQL数据库的两种方式,结合实例形式分析了Python使用pymysql和pandas模块进行mysql数据库的连接、增删改查等操作相关实现技巧,需要的朋友可以参考下
  • python操作mysql数据库

    千次阅读 2022-04-10 19:18:32
    第三节–Python操作mysql数据库 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 这个章节主要讲解使用python操作mysql数据库 提示:写完文章后,目录可以自动生成,如何生成可参考右边的...

    第三节–Python之操作mysql数据库

    提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加
    这个章节主要讲解使用python操作mysql数据库


    提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档


    一、环境安装

    提示:这里可以添加本文要记录的大概内容:

    首先在本地安装PyMySQL,安装方式Win+R -->输入cmd–>pip install PyMySQL
    在这里插入图片描述
    如果已经安装过,就会出现像图片中样子。
    然后再去网上下载mysql,和Navicat 就可以了。当然Navicat 可以用其他替代,因为我本地就安装了这个软件。Navicat 破解版本可以再网上查找,还是有很多的。


    提示:以下是本篇文章正文内容,下面案例可供参考

    二、使用步骤

    1.思路步骤

    1、首先建立数据库的连接
    2、生成游标
    3、执行需要的数据库语句
    4、获取查询结果
    5、关闭游标
    6、关闭数据库连接

    2.操作数据库<查>

    接下来我们来用python进行数据库的<查>这个操作,代码如下

    代码如下(示例):

    import  pymysql
    #连接数据库
    con=pymysql.connect(host='localhost',user='root',password='root',database='huace',charset='utf8')
    # 创建游标
    cur=con.cursor()
    # 生成数据库
    sql='select * from sscore'
    #获取结果
    cur.execute(sql)
    # 获取所有记录  fetchall--获取所有记录   fetchmany--获取多条记录,需传参  fetchone--获取一条记录
    all=cur.fetchall()
    # 输出查询结果
    print(all)
    # 关闭游标
    cur.close()
    # 关闭数据库连接,目的为了释放内存
    cur.close()
    

    在这里插入图片描述
    在这里插入图片描述
    这就成功啦。
    我这里说几个注意点!!!
    1、有的小伙伴执行运行出的结果可能都是’?‘,像图片这样
    在这里插入图片描述
    这个是因为pymysql.connect中的charset值与sql中的字符集不对应导致的。
    那么如何看sql中的字段是什么字符集呢,我还是以Navicat 为例,如图
    在这里插入图片描述
    小伙伴们可以试试把代码中的charset='utf8’改为charset='utf-8’是不是会出现’?‘。
    这里顺便我和大家解释一下,这里面几个字段的意思 host–连接数据库地址
    user–数据库登录用户名 ,password=数据库登录密码,database=数据库的库名,charset=数据库字符集 port–数据库端口号 autocommit–事务提交,True是为自动提交 False为手动提交。
    自行查看源码,了解每个字段的意思,这个源码查看有点绕,这里我也图片示范一下
    在这里插入图片描述
    源码我复制到下面

        def __init__(self, host=None, user=None, password="",
                     database=None, port=0, unix_socket=None,
                     charset='', sql_mode=None,
                     read_default_file=None, conv=None, use_unicode=None,
                     client_flag=0, cursorclass=Cursor, init_command=None,
                     connect_timeout=10, ssl=None, read_default_group=None,
                     compress=None, named_pipe=None, no_delay=None,
                     autocommit=False, db=None, passwd=None, local_infile=False,
                     max_allowed_packet=16*1024*1024, defer_connect=False,
                     auth_plugin_map={}, read_timeout=None, write_timeout=None,
                     bind_address=None, binary_prefix=False):
    

    注意点2、如果有些小伙伴运行代码的时候输出一个数值,可以查看一下是否cur.fetchall()获取全部的这个语句。如果没有,那么控制台输出的值就是表中数量,就是这个表有多条数据。

    3.操作增删改

    代码如下(示例):
    增删改,操作方式都一样,只是sql语句的不同,这里我就写一个代码中。这里需要注意的点是,我们需要提交事务,如果不提交事务,语句是不执行的,我先来一个不提交事务的,显示执行成功,但是表中并没有新增
    在这里插入图片描述
    在这里插入图片描述
    然后我们;对它进行添加事务提交。
    方式有两种,第一种在pymysql.connect中加上autocommit=True
    第二种con.commit()
    代码如下,代码上我使用的是第一种方法

    import  pymysql
    #连接数据库  第一种autocommit=True
    con=pymysql.connect(host='localhost',user='root',password='root',database='huace',charset='utf8',autocommit=True)
    # 创建游标
    cur=con.cursor()
    # 生成数据库
    sql='insert into sscore (name,class,socre) VALUES ("李四","语文",90)'
    #获取结果
    cur.execute(sql)
    #提交事务 方法二
    # con.commit()
    # 关闭游标
    cur.close()
    # 关闭数据库连接,目的为了释放内存
    cur.close()
    
    

    如果需要删除,或者修改,只需修改sql语句就行了。

    我们再讲一下一次增加多条数据如何操作,方式也是两种

    import  pymysql
    #连接数据库  第一种autocommit=True
    con=pymysql.connect(host='localhost',user='root',password='root',database='huace',charset='utf8',autocommit=True)
    # 创建游标
    cur=con.cursor()
    
    # # 方式一
    # # 生成数据库
    # sql='insert into sscore (name,class,socre) VALUES ("李四","语文",90),("张六","语文",90)'
    # #获取结果
    # cur.execute(sql)
    
    # 方式二
    sql2='insert into sscore (name,class,socre) VALUES (%s,%s,%s)'
    data=[("李四","语文",91),("张六","语文",91)]
    #获取结果
    cur.executemany(sql2,data)
    
    #提交事务 方法二
    # con.commit()
    # 关闭游标
    cur.close()
    # 关闭数据库连接,目的为了释放内存
    cur.close()
    
    
    

    在这里插入图片描述

    4.操作数据库的封装

    今天太晚了,明天给补上,打打游戏睡觉了
    来了来了 ,补上!!!

    import  pymysql
    
    class Mysql_Object():
        def __init__(self,host,user,password,database,port=3306,charset='utf8'):
            self.host=host
            self.user=user
            self.password=password
            self.database=database
            self.port=port
            self.charset=charset
    
    
        def select_sql(self,sql,size=0):
            '''
            查询sql语句
            :param sql 传入查询的sql语句,字符串
            :param size 返回结果的记录条数,如果没有输入默认输出全部条数
            :return: self.count 返回查询的记录的总数,slef.res 返回查询的结果
            '''
            self.con=pymysql.connect(host=self.host,user=self.user,password=self.password,database=self.database,port=self.port,charset=self.charset)
            self.cur=self.con.cursor() #建立游标
            self.sql=sql
            # 判读是否是查询语句
            if self.sql.startswith('select'):
                self.cur.execute(self.sql) #获取数据库结果
                self.count=self.cur.rowcount #统计查询记录数
                # 通过if语句进行判断
                if size == 0:
                    self.res=self.cur.fetchall() #输出全部结果
                elif size != 0 :
                    self.res=self.cur.fetchmany(size) #输出指定数值
    
                self.cur.close()
                self.con.close() #关闭连接
            return self.count,self.res
    
        def excute_sql(self,sql):
            '''
            :param sql 输入增删改的sql语句
            :return:
            '''
            self.con = pymysql.connect(host=self.host, user=self.user, password=self.password,port=self.port, database=self.database,
                                       charset=self.charset,autocommit=True)
            self.cur = self.con.cursor()  # 建立游标
            self.sql = sql
    
            if self.sql.startswith('insert'):
                print('插入语句',self.sql)
                self.cur.execute(self.sql)  #执行语句
                self.cur.close()  #关闭连接
                self.con.close()
            if self.sql.startswith('delete'):
                print('删除语句',self.sql)
                self.cur.execute(self.sql)  # 执行语句
                self.cur.close()  # 关闭连接
                self.con.close()
            if self.sql.startswith('update'):
                print('更新语句',self.sql)
                self.cur.execute(self.sql)  # 执行语句
                self.cur.close()  # 关闭连接
                self.con.close()
    # 调用
    m=Mysql_Object('localhost','root','root','huace')
    print(m.select_sql('select * from sscore',3))#查询结果
    m.excute_sql('update sscore set name="王六"where `name`="张三"' ) #更新语句
    m.excute_sql('delete from sscore where name="李四"') #删除语句
    m.excute_sql('insert into sscore VALUES("赵七","英语","89")') #插入语句
    

    控制台结果,如下
    在这里插入图片描述

    总结

    提示:这里对文章进行总结:

    这些都是看视频以后的一些总结,帮这个当作笔记本吧,将学习的内容简单的梳理一下,因为现在居家隔离,正常情况可以每天一更吧,下下周就去新公司入职了,可能就不会更新这么频繁了,大家一起共同进步吧,如果哪里有错误,或者不对的地方欢迎大家指出,毕竟刚学习不久还是有很多不足之处的。谢谢大家啦,觉得还行也可以点个赞哦!!!
    后面我就陆续更新selenium框架了,python其他基础,我有学习到陆续更新上来的

    展开全文
  • 主要介绍了Python 操作mysql数据库查询之fetchone(), fetchmany(), fetchall()用法,结合实例形式分析了Python使用pymysql模块的fetchone(), fetchmany(), fetchall()方法进行mysql数据库查询的操作技巧,需要的朋友...
  • python 操作mysql数据库简单封装

    千次阅读 2021-12-17 15:26:03
    user=None, passwd=None, db=None, charset='utf8'): self.conn = pymysql.connect(host=host, port=port, user=user, passwd=passwd, # password也可以 db=db, #数据库名称 charset=charset, # 如果查询有中文需要...
  • 操作数据库的第一步,首先要连接 import pymysql #打开数据库连接 conn = pymysql.connect('localhost',user = "username",passwd = "password",db = "testdb") print (conn) print (type(conn)) 二、获取游标 游标...
  • 本文实例讲述了pythonmysql数据库建立表与插入数据操作。分享给大家供大家参考,具体如下: mysql数据库建立表 一 代码 import pymysql # 打开数据库连接 db = pymysql.connect("localhost","root","root","db_...
  • Python操作MySQL数据库的三种方法

    万次阅读 多人点赞 2017-04-20 13:13:08
      MySQLdb 是用于 Python 连接 MySQL 数据库的接口,它实现了 Python 数据库 API 规范 V2.0,基于 MySQL C API 上建立的。(2) 源码安装 MySQLdb: https://pypi.python.org/pypi/MySQL-python$ tar zxvf MySQL-...
  • 干货 | 利用Python操作mysql数据库

    千次阅读 多人点赞 2020-11-20 14:18:03
    ↑↑↑关注后"星标"简说Python 人人都可以简单入门Python、爬虫、数据分析 简说Python推荐作者:Tao 来源:知乎整理:凹凸数据 Oneold...
  • 完整版 Python高级开发课程 高级教程 06 Python操作MySQL数据库.rar
  • 主要介绍了Python3实现的Mysql数据库操作封装类,涉及Python针对mysql数据库的连接、查询、更新及关闭连接等相关操作技巧,需要的朋友可以参考下

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 264,925
精华内容 105,970
关键字:

python操作mysql数据库

mysql 订阅