怎样用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使用方法如下:
导入模块mysql connector
1
import mysql.connector
连接数据库
需要服务器的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)
获取操作游标
对mysql的大多数操作都需要用游标执行,游标相当于一个操作接口。
1
handle = conn.cursor()
用execute函数执行sql语句
1
2handle.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')提交执行和获取执行数据
当有执行的操作影响了数据库时,需要执行提交操作以使得执行生效
1
conn.commit()
当执行的操作有返回数据时,需要用fech去获取,fech的形式有几种,如下会为获取所有数据
1
2handle.execute('select COLUMN_NAME from information_schema.columns where table_name="ft_status"')
data = handle.fetchall()操作完成后,需要关闭连接和游标
1
2handle.close()
conn.close()