用python操作MySQL数据库

怎样用python操作MySQL数据库

由于MySQL服务器以独立的进程运行,并通过网络提供对外的服务,所以需要相应的驱动来连接到MySQL的服务器,目前python中常用的两个驱动是:

  • mysql-connector-python: MySQL官方的纯python驱动,使用时import mysql.connector
  • MySQL-python: 是封装了MySQL C驱动的python驱动,使用时import MySQLdb

实际上两者的操作是十分类似的,我自己使用的是mysql connector,所以后面都以mysql connector来说明。

mysql connector安装

在mysql官网能够找到connector for python的下载页面到:http://dev.mysql.com/downloads/connector/python/

在上面找到对应的系统平台和python版本下载。windows平台的都为msi文件,直接双击运行即可。

mysql connector使用方法

mysql connector使用方法如下:

  1. 导入模块mysql connector

    1
    import mysql.connector
  2. 连接数据库

    需要服务器的ip、port、user和password等作为参数,连接时也可以直接指定数据库和数据表

    1
    conn = mysql.connector.connect(host = db_server_ip, port = db_server_port, user = db_user, passwd = db_password, db = db_database)
  3. 获取操作游标

    对mysql的大多数操作都需要用游标执行,游标相当于一个操作接口。

    1
    handle = conn.cursor()
  4. 用execute函数执行sql语句

    1
    2
    handle.execute('show tables')
    handle.execute('create table if not exists ft_status(pn varchar(15) not null, ft2 bool, ft3 bool, ft4 bool, ft5 bool, primary key (pn)) COLLATE="utf8_general_ci" ENGINE=MyISAM')
  5. 提交执行和获取执行数据

    当有执行的操作影响了数据库时,需要执行提交操作以使得执行生效

    1
    conn.commit()

    当执行的操作有返回数据时,需要用fech去获取,fech的形式有几种,如下会为获取所有数据

    1
    2
    handle.execute('select COLUMN_NAME from information_schema.columns where table_name="ft_status"')
    data = handle.fetchall()
  6. 操作完成后,需要关闭连接和游标

    1
    2
    handle.close()
    conn.close()
Compartir