Python 的MySQLConnector模块使用方法详解

来源:互联网 发布:java的web服务器 编辑:程序博客网 时间:2024/06/18 07:29

本文转载

作者: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代码  收藏代码
  1. import mysql.connector  
  2. config={'host':'127.0.0.1',#默认127.0.0.1  
  3.         'user':'root',  
  4.         'password':'123456',  
  5.         'port':3306 ,#默认即为3306  
  6.         'database':'test',  
  7.         'charset':'utf8'#默认即为utf8  
  8.         }  
  9. try:  
  10.   cnn=mysql.connector.connect(**config)  
  11. except mysql.connector.Error as e:  
  12.   print('connect fails!{}'.format(e))  

2.执行建表语句,我们将建下面样式的表 
 
Java代码  收藏代码
  1. sql_create_table='CREATE TABLE `student` \  
  2. (`id` int(10) NOT NULL AUTO_INCREMENT,\  
  3. `name` varchar(10) DEFAULT NULL,\  
  4. `age` int(3) DEFAULT NULL,\  
  5. PRIMARY KEY (`id`)) \  
  6. ENGINE=MyISAM DEFAULT CHARSET=utf8'  
  7. cursor=cnn.cursor()  
  8. try:  
  9.   cursor.execute(sql_create_table)  
  10. except mysql.connector.Error as e:  
  11.   print('create table orange fails!{}'.format(e))  

3.插入操作 
Java代码  收藏代码
  1. cursor=cnn.cursor()  
  2. try:  
  3.   '第一种:直接字符串插入方式'  
  4.   sql_insert1="insert into student (name, age) values ('orange', 20)"  
  5.   cursor.execute(sql_insert1)  
  6.   '第二种:元组连接插入方式'  
  7.   sql_insert2="insert into student (name, age) values (%s, %s)"  
  8.   #此处的%s为占位符,而不是格式化字符串,所以age用%s  
  9.   data=('shiki',25)  
  10.   cursor.execute(sql_insert2,data)  
  11.   '第三种:字典连接插入方式'  
  12.   sql_insert3="insert into student (name, age) values (%(name)s, %(age)s)"  
  13.   data={'name':'mumu','age':30}  
  14.   cursor.execute(sql_insert3,data)  
  15.   #如果数据库引擎为Innodb,执行完成后需执行cnn.commit()进行事务提交  
  16. except mysql.connector.Error as e:  
  17.   print('insert datas error!{}'.format(e))  
  18. finally:  
  19.   cursor.close()  
  20.   cnn.close()  

还可以多次插入,提高效率 
Java代码  收藏代码
  1. stmt='insert into student (name, age) values (%s,%s)'  
  2. data=[  
  3.      ('Lucy',21),  
  4.      ('Tom',22),  
  5.      ('Lily',21)]  
  6. cursor.executemany(stmt,data)  

4.查询操作 
Java代码  收藏代码
  1. cursor=cnn.cursor()  
  2. try:  
  3.   sql_query='select id,name from student where  age > %s'  
  4.   cursor.execute(sql_query,(21,))  
  5.   for id,name in cursor:  
  6.     print ('%s\'s age is older than 25,and her/his id is %d'%(name,id))  
  7. except mysql.connector.Error as e:  
  8.   print('query error!{}'.format(e))  
  9. finally:  
  10.   cursor.close()  
  11.   cnn.close()  

5.删除操作 
Java代码  收藏代码
  1. cursor=cnn.cursor()  
  2. try:  
  3.   sql_delete='delete from student where name = %(name)s and age < %(age)s'  
  4.   data={'name':'orange','age':24}  
  5.   cursor.execute(sql_delete,data)  
  6. except mysql.connector.Error as e:  
  7.   print('delete error!{}'.format(e))  
  8. finally:  
  9.   cursor.close()  
  10.   cnn.close()  

0 0
原创粉丝点击