美文网首页
python通过MySQLdb访问MySQL数据库

python通过MySQLdb访问MySQL数据库

作者: 爱吐泡泡的鱼 | 来源:发表于2015-11-28 22:46 被阅读0次

    环境

    1.python2.7
    2.安装MySQLdb软件,windows下之间安装二进制编译版本即可
    3.PythonWin或者其他python IDE。

    解决的问题

    每一种数据库都有其自己的官方API,而这些API是不同的,这也就意味着如果我们开发了一个基于postgresql的程序,想要换成MySQL便需要重新开发。因此,我们想要定义一个通用的数据库调用API,以减少我们在更换数据库时的工作量。在通用的API和数据库之间通过相应的中间模块来实现,比如在操作MySQL的时候,我导入MySQLdb这个中间模块,在使用postgresql的时候我们导入postgresqldb模块,这样我们的代码就不用修改而只需要导入不同的模块即可。

    操作流程

    1.导入MySQLdb模块
    2.通过MySQLdb模块中的Connect()函数,并在函数中填入相应的参数来生成一个connection对象,这样便建立了和数据库之间的连接。
    3.通过connection对象中的cursor()函数,生成一个cursor对象,我们通过这个对象中的函数对数据库进行相应的操作。
    4.以查询为例,执行cursor对象的execute()函数,函数以字符串形式的SQL语句作为参数。
    5.通过cursor对象的fetchone、fetchmany、fetchall函数获取查询结果。
    6.关闭cursor
    7.关闭connection

    代码示例

    import MySQLdb connection = MySQLdb.Connect( host = 'ip或者localhost', port = 3306, user = 'root', passwd = '密码', db = 'mydb', charset = 'utf8' ) cursor = connection.cursor() sql = 'select * from user' cursor.execute(sql) rs = cursor.fetchall() for item in rs: print item cursor.close() connection.close()

    事务

    事务是一个程序一次访问和更新数据库时执行的所有操作的集合。

    事务的性质
    • 原子性:所以操作要么都做要么都不做
    • 一致性:事务必须使数据库从一个一致性状态转换到另一个一致性状态,比如:一次银行转账,A转给B100元,转账前两者存款之和与转账后两个存款之和相等,是一致性状态
    • 隔离性:多个事务同时执行时,一个事务的执行不能被其它事务所干扰
    • 持久性:事务一旦提交,它对数据库的改变将是永久的
    MySQL中事务的操作

    1.关闭事务自动提交:connection.autocommit(False)
    2.正常结束事务:connection.commit()
    3.事务回滚:connection.rollback()
    4.事务只影响增删查改中增删改,也即是说如果关闭了自动提交,那么我们在进行增删改后如果没有手动进行事务提交,那么数据库便不会进行更改。而查询因为对数据库的数据没有影响,因而不受此影响。

    相关文章

      网友评论

          本文标题:python通过MySQLdb访问MySQL数据库

          本文链接:https://www.haomeiwen.com/subject/mbodhttx.html