标签:
首先要明确一点,我们在Python中需要通过第三方库才能访问Mysql。
有这样几种方式:Mysql-python(即MySQLdb)、pymysql、mysql-connector。Mysql-python是用C写的,速度最快,而后两者是用纯python写的,相对来说速度慢一点。可惜的是Mysql-python只支持到python 2.7,对python 3.X都没有支持。如果你用的是python3,就用不了Mysql-python了。本文章使用的是python 3.4,用的第三方库是pymysql。
Pymysql的安装
安装好pip之后。在CMD中输入命令pip install pymysql即可安装。有关于pip的安装和使用请自行百度。
安装好pymysql后,其使用跟一般的第三方库一样,需要事先import,下面我直接给一个例子,大家可以从IDLE中实验。
>>> import pymysql >>> conn=pymysql.connect(host=‘localhost‘,user=‘root‘,passwd=‘password‘,charset=‘utf8‘,port=3306)
#port一般都是3306,charset要写utf8,不然可能会出现乱码 >>> cur=conn.cursor()
#查看有哪些数据库 >>> cur.execute(‘show databases‘) 9 >>> databases=[] >>> for i in cur: databases.append(i) >>> databases [(‘information_schema‘,), (‘firstdb‘,), (‘hive‘,), (‘jeesite‘,), (‘mysql‘,), (‘school‘,), (‘test‘,), (‘test1‘,), (‘test2015‘,)] >>> conn.select_db(‘test‘) >>> cur.execute(‘show tables‘) 7 >>> tables_list=cur.fetchall() >>> tables_list ((‘user‘,), (‘user2‘,), (‘user3‘,), (‘user4‘,), (‘user5‘,), (‘user6‘,), (‘user7‘,)) >>> cur.execute(‘select * from user‘) 7 >>> user_select_result=cur.fetchall() >>> user_select_result ((‘1‘, ‘Michael‘), (‘11‘, ‘ozil‘), (‘12‘, ‘Giroud‘), (‘2‘, ‘Henry‘), (‘Alexis‘, ‘17‘), (‘Ramsey‘, ‘16‘), (‘Walcott‘, ‘14‘)) >>> cur.execute(‘select * from user‘) 7 >>> user_select_result=cur.fetchone() >>> user_select_result (‘1‘, ‘Michael‘) >>> cur.execute(‘select * from user‘) 7 >>> user_select_result=cur.fetchmany(4) >>> user_select_result ((‘1‘, ‘Michael‘), (‘11‘, ‘ozil‘), (‘12‘, ‘Giroud‘), (‘2‘, ‘Henry‘)) >>> insert_value=(‘3‘,‘gibbs‘) >>> cur.execute(‘insert into user(id,name) values(%s,%s)‘,insert_value) 1 >>> cur.execute(‘select * from user‘) 8 >>> user_select_result=cur.fetchall() >>> user_select_result ((‘1‘, ‘Michael‘), (‘11‘, ‘ozil‘), (‘12‘, ‘Giroud‘), (‘2‘, ‘Henry‘), (‘3‘, ‘gibbs‘), (‘Alexis‘, ‘17‘), (‘Ramsey‘, ‘16‘), (‘Walcott‘, ‘14‘)) insert_value_list=[(‘22‘,‘debucy‘),(‘33‘,‘cech‘)] >>> cur.executemany(‘insert into user(id,name) values(%s,%s)‘,insert_value_list) 2 >>> cur.execute(‘select * from user‘) 10 >>> user_select_result=cur.fetchall() >>> user_select_result ((‘1‘, ‘Michael‘), (‘11‘, ‘ozil‘), (‘12‘, ‘Giroud‘), (‘2‘, ‘Henry‘), (‘22‘, ‘debucy‘), (‘3‘, ‘gibbs‘), (‘33‘, ‘cech‘), (‘Alexis‘, ‘17‘), (‘Ramsey‘, ‘16‘), (‘Walcott‘, ‘14‘)) >>> conn.commit() >>> cur.execute(‘update user set name="Ozil" where id="11"‘) 1 >>> user_select_result=cur.fetchall() >>> user_select_result () >>> cur.execute(‘select * from user‘) 10 >>> user_select_result=cur.fetchall() >>> user_select_result ((‘1‘, ‘Michael‘), (‘11‘, ‘Ozil‘), (‘12‘, ‘Giroud‘), (‘2‘, ‘Henry‘), (‘22‘, ‘debucy‘), (‘3‘, ‘gibbs‘), (‘33‘, ‘cech‘), (‘Alexis‘, ‘17‘), (‘Ramsey‘, ‘16‘), (‘Walcott‘, ‘14‘))
#修改后一定要comiit,不然删除、更新、添加的数据都不会被写进数据库中。 >>> conn.commit() >>> cur.close() >>> conn.close()
标签:
原文地址:http://www.cnblogs.com/ArsenalfanInECNU/p/4799261.html