您的位置:首页 > 编程语言 > Python开发

Python 的MySQLConnector模块使用方法详解

2015-06-08 11:57 1036 查看
本文转载

作者:OrangeHolic

链接:http://orangeholic.iteye.com/blog/1714631

MySQL Connector/Python 是 MySQL 官方提供的 Python 连接 MySQL 数据库的驱动程序.下载地址为:http://www.mysql.com/downloads/connector/python/,到现在位置发布支持Python2.7,Python3.2的版本,Python3.3的版本正在开发中,支持Python3.*的连接驱动真是太少,而且论坛的Pythoner们动不动就是建议用2.7,这可以说是个极坏的现象。

在此介绍基本操作,如果有点E文基础,也可看官方文档 http://dev.mysql.com/doc/refman/5.6/en/connector-python.html

1.连接数据库

Java代码


import mysql.connector

config={'host':'127.0.0.1',#默认127.0.0.1

'user':'root',

'password':'123456',

'port':3306 ,#默认即为3306

'database':'test',

'charset':'utf8'#默认即为utf8

}

try:

cnn=mysql.connector.connect(**config)

except mysql.connector.Error as e:

print('connect fails!{}'.format(e))

2.执行建表语句,我们将建下面样式的表



Java代码


sql_create_table='CREATE TABLE `student` \

(`id` int(10) NOT NULL AUTO_INCREMENT,\

`name` varchar(10) DEFAULT NULL,\

`age` int(3) DEFAULT NULL,\

PRIMARY KEY (`id`)) \

ENGINE=MyISAM DEFAULT CHARSET=utf8'

cursor=cnn.cursor()

try:

cursor.execute(sql_create_table)

except mysql.connector.Error as e:

print('create table orange fails!{}'.format(e))

3.插入操作

Java代码


cursor=cnn.cursor()

try:

'第一种:直接字符串插入方式'

sql_insert1="insert into student (name, age) values ('orange', 20)"

cursor.execute(sql_insert1)

'第二种:元组连接插入方式'

sql_insert2="insert into student (name, age) values (%s, %s)"

#此处的%s为占位符,而不是格式化字符串,所以age用%s

data=('shiki',25)

cursor.execute(sql_insert2,data)

'第三种:字典连接插入方式'

sql_insert3="insert into student (name, age) values (%(name)s, %(age)s)"

data={'name':'mumu','age':30}

cursor.execute(sql_insert3,data)

#如果数据库引擎为Innodb,执行完成后需执行cnn.commit()进行事务提交

except mysql.connector.Error as e:

print('insert datas error!{}'.format(e))

finally:

cursor.close()

cnn.close()

还可以多次插入,提高效率

Java代码


stmt='insert into student (name, age) values (%s,%s)'

data=[

('Lucy',21),

('Tom',22),

('Lily',21)]

cursor.executemany(stmt,data)

4.查询操作

Java代码


cursor=cnn.cursor()

try:

sql_query='select id,name from student where age > %s'

cursor.execute(sql_query,(21,))

for id,name in cursor:

print ('%s\'s age is older than 25,and her/his id is %d'%(name,id))

except mysql.connector.Error as e:

print('query error!{}'.format(e))

finally:

cursor.close()

cnn.close()

5.删除操作

Java代码


cursor=cnn.cursor()

try:

sql_delete='delete from student where name = %(name)s and age < %(age)s'

data={'name':'orange','age':24}

cursor.execute(sql_delete,data)

except mysql.connector.Error as e:

print('delete error!{}'.format(e))

finally:

cursor.close()

cnn.close()
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: