python 操作 MySQL

Posted PING1

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python 操作 MySQL相关的知识,希望对你有一定的参考价值。

MySQL 数据库

数据库指的是以一定方式存储在一起、能为多个用户共享、具有尽可能晓得冗余度、与应用程序彼此独立的数据集合。

到目前位置,地球上有三种类型的数据:

  • 关系型数据库:MySQL、Microsoft Access、SQL Server、Oracle……
  • 非关系型数据库:MongoDB、BigTable(Google)、……
  • 键值数据库:Apache Cassandra(Facebook)、LevelDB(Google)……

在此,只是简单介绍 python 如何去连接 mysql 数据库并做一些简单的操作

python 标准数据库接口为 Python DB-API,Python DB-API为开发人员提供了数据库应用编程借口。
python 数据库接口支持非常多的数据库。你可以访问python 数据库接口及 API查看详细的支持数据库列表。

python 的 DB-API,为大多数的数据库实现了接口,使用它连接各数据库后,就可以用相同的方式操作各数据库。
Python DB-API 使用流程:

  • 引入 API 模块
  • 获取与数据库的连接
  • 执行 SQL 语句和存储过程
  • 关闭数据库连接

安装 python-MySQLdb

python-MySQLdb 是一个接口程序,python 通过它对 mysql 数据实现各种操作。

如果要源码安装,可以这里下载: python-MySQLdb

连接 MySQL 数据库

import MySQLdb

db_config = {
    'host' : '192.168.189.100',    #填写主机名(string)
    'user' : 'root',               #填写登录用户(string)
    'passwd' : 'XXXXXX',           #填写登录密码(string)
    'db' : 'test',                 #选择数据库(string)
    'port' : 33066                 #填写端口(int)
    'charset':'utf-8'              #设定字符集
}

try:
    conn = MySQLdb.connect(**db_config)
except Exception as e:
    raise e
finally:
    print " mysql 连接成功!"

其实,关于 connect 的参数还有很多,可以阅读源码。不过,上面几个是常用的,其他的看情况使用。

python 操作数据库

python 建立了与数据的连接,其实是建立了一个MySQLdb.connect()的实例对象,或者泛泛的称为连接对象,python就是通过连接对象和数据库对话。这个对象常用的方法有:

  • commit():如果数据库表进行了修改,提交保存当前的数据。如果此用户没有权限就什么也不会发生。
  • rollback():回滚操作
  • cursor([cursorclass]):返回连接的游标对象。通过游标执行 SQL 查询并检查结果。游标比连接支持更多的方法,而且可能在程序中更好用。
  • close():关闭连接。此后,连接对象和游标都不再可用了

Python和数据之间的连接建立起来之后,要操作数据库,就需要让python对数据库执行 SQL 语句。python是通过游标执行 SQL 语句的。所以,连接建立之后,就要利用连接对象得到游标对象,方法如下:

cur = conn.cursor()
print type(cur)         # 结果为: <class 'MySQLdb.cursors.Cursor'>

此后,就可以利用游标对象的方法对数据库进行操作。游标对象的常用方法:

名称 描述
close() 关闭游标,之后游标不可用
execute(query[,args]) 执行一条 SQL 语句,可以带参数
executemany(query,pseq) 对序列 pseq 中的每个参数执行 SQL 语句
fetchone() 返回一条查询结果
fetchmany([size]) 返回 size 条结果
nextset() 移动到下一个结果
scroll(value,mode=‘relative‘) 移动游标到指定行,如果mode=‘relative‘,则表示从
当前所在行移动 value 条,如果mode=‘absolute‘,则
表示从结果集的第一行移动 value 条

插入数据

例如,要在数据表 student 中插入一条记录,使得:id = 2,name = ‘wangwu‘,,可以这样做

cur.execute("insert into student(id,name) values (%s,%s);",(2,'wangwu'))
conn.commit()
cur.close()


以上是关于python 操作 MySQL的主要内容,如果未能解决你的问题,请参考以下文章

部分代码片段

Python操作Mysql实例代码教程在线版(查询手册)_python

常用python日期日志获取内容循环的代码片段

linux中怎么查看mysql数据库版本

python 有用的Python代码片段

Python 向 Postman 请求代码片段