zoukankan      html  css  js  c++  java
  • python操作MySql数据库

    准备

    在python中操作数据库我们都采用pymysql库来操作。用pip命令进行安装。

    pip install pymysql

    安装成功后导入pymysql库。然后就可以进行数据库的相关操作了。

    import pymysql

    一、建立连接

    连接的建立通过pymysql的connect函数。连接用完后记得关闭是个好习惯。

    import pymysql
    db_config={
        'user':'root',          #用户名
        'password':'qwe123',    #密码
        'db':'course',          #选择的数据库
        'charset':'utf8'        #编码
    }
    conn=pymysql.connect(**db_config)
    conn.close()  #连接关闭

    二、生成游标

    连接建立好后,并不能操纵数据库,我们需要使用游标来操作数据库。

    游标的建立用到cursor()函数。与连接一样游标用完也要进行关闭。

    cur=conn.cursor()
    cur.close()

    三、执行sql语句

    我们操作数据库都是通过sql语句来实现的,所以在python中要想操作数据库,就需要使用execute()函数来执行sql语句。

    cur.execute('执行的sql语句')      #注意在一条sql语句的结束在这里是不需要添加‘;’的

    语句执行后只会返回受影响的行数。

    import pymysql
    db_config={
        'user':'root',          #用户名
        'password':'qwe123',   #密码
        'db':'course',          #选择的数据库
        'charset':'utf8'        #编码
    }
    conn=pymysql.connect(**db_config)
    cur=conn.cursor()
    cla=cur.execute('show tables')
    print(cla)
    
    
    >>>4

    四、获取结果

    执行sql语句后我们需要查看返回的结果值,这时用到fetchall()函数。

    import pymysql
    db_config={
        'user':'root',          #用户名
        'password':'qwe123',   #密码
        'db':'course',          #选择的数据库
        'charset':'utf8'        #编码
    }
    conn=pymysql.connect(**db_config)
    cur=conn.cursor()
    cur.execute('show tables')
    print(cur.fetchall())
    
    >>>(('choice',), ('course',), ('partment',), ('student',))

    五、事务的提交与回滚

    在python操作数据库的时候如果你之编写了sql语句而没有将语句提交,那么你所做的一切都是徒劳的。因为不提交的事务(一次数据操作)是不会对数据库产生影响的。所以使用commit()函数进行提交。

    cur=conn.cursor()
    cur.execute('INSERT INTO student VALUES (111,"刚刚",4)')
    conn.commit()

    如果数据执行时出现异常,就需要进行回滚,比如说,你要去银行给别人汇款,当你把钱刚从你的账户提取出来还没有汇入对方账户后突然就停电了,这时你的钱变少了而对方却没收到钱,这时就是一个异常,我们要撤销掉刚才的操作这时就需要回滚,用rollback()函数。可以设计用try ,except 捕捉异常如果出现异常就回滚,未异常就提交。但是提交后就不能回滚了。

    cur=conn.cursor()
    cur.execute('INSERT INTO student VALUES (111,"刚刚",4)')
    conn.rollback()

    六、综合举例

    import pymysql
    db_config={
        'user':'root',          #用户名
        'password':'qwe123',   #密码
        'db':'course',          #选择的数据库
        'charset':'utf8'        #编码
    }
    conn=pymysql.connect(**db_config)
    cur=conn.cursor()
    try:
        executes=cur.execute('INSERT INTO student VALUES (111,"刚刚",4)')
        values=cur.fetchall()
        for value in values:
            print(value)
        conn.commit()
    except Exception as e:
        print(e)
        conn.rollback()
    finally:
        cur.close()
        conn.close()
  • 相关阅读:
    javaweb web.xml文件详解
    Android 屏幕旋转 处理 AsyncTask 和 ProgressDialog 的最佳方案
    系统环境搭建问题汇总
    从关系型数据库到非关系型数据库
    SpringMVC学习系列(3) 之 URL请求到Action的映射规则
    Spring MVC的实现原理
    谈谈对Spring IOC的理解
    hash算法 (hashmap 实现原理)
    为什么不能用两次握手进行连接?
    JVM内存管理和JVM垃圾回收机制
  • 原文地址:https://www.cnblogs.com/austinjoe/p/9588084.html
Copyright © 2011-2022 走看看