Python Pymysql模块

1、要使用Pymysql需要先安装pymysql模块。

有三种安装方式:1)在线安装pip  install  pymysql   2)pycharm安装,file-》setting-》project XX(项目名)-》project interpreter -》选择Python版本,点+图标--》搜pymysql,然后点击install package按钮进行安装 3)下载pymysql安装包,Python setup.py  install 安装

2、pymysql的一般步骤:

1)建立连接连接数据库   2)建立游标 3)执行sql  4)获取结果 5)关闭游标  6)关闭连接

3、建立连接

import  pymysql

conn=pymysql.connect(host='192.168.58.136',port=3306,user='root',password='123456',db='test',charset='utf8')#port  数据必须是int类型,charset只能写utf8,不能写成utf-8,否则会报错

4、建立游标

cur=conn.cursor()

5、执行sql

res=cur.execute("select  XXXX")

6、获取结果

获取结果有三种:

res=cur.fetchone()  只获取一条  

 res=cur.fetchall()  获取所有  

res=cur.fetchmang(X)   自定义取X条    

一般只有执行查询sql才会用到获取结果

结果的类型:如果建立的游标没有特别指明游标的类型,那获取结果返回的res结果是:res=cur.fetchone()  返回的结果是一元组,如果查询没有结果返回是None ,eg:('d_book',)   ,res=cur.fetchall() 和res=cur.fetchmang(X)    返回的结果是二元组,如果查询没有结果,返回的是():(('d_book',), ('d_category',))

如果建立的游标特地指明了游标的类型是字典:cur=conn.cursor(pymysql.cursors.DictCursor),那获取返回的res结果:res=cur.fetchone()  返回的结果是字典 如果查询没有结果返回是None,res=cur.fetchall() 和res=cur.fetchmang(X)    返回的结果是list,list里面是字典,如果查询没有结果,返回的是[]

7、如果执行的sql语句是delete、insert和update,那么需要执行sql后,增加一个提交的操作:conn.commint()

8、关闭游标

cur.close()

9、断开连接

conn.close()

10、移动游标

移动游标有两种模式:

1)绝对模式  cur.scoll(0,mode='absolute')#移动到最前面   开始行对应0

2)相对模式  cur.scroll(-1,mode='relative')#移动游标,模式:相对 相对于当前位置来移动,-1是往前,正数往后移动,eg:当文件已经全部取完了, cur.scroll(-1,mode='relative')模式相当于取最后一条

 

 

mysql例子:

import  pymysql,redis
#通用数据库操作
def op_mysql(host,user,password,db,sql,port=3306,charset='utf8'):
conn = pymysql.connect(host=host,user=user,
password=password,
port=port,
charset=charset,db=db)
cur = conn.cursor(cursor=pymysql.cursors.DictCursor)
cur.execute(sql)
sql_start = sql[:6].upper() #取sql前6个字符串,判断它是什么类型的sql语句
if sql_start=='SELECT' :
res = cur.fetchall()
else:
conn.commit()
res = 'ok'
cur.close()
conn.close()
return res
print(__name__)#__name__是一个常量
if __name__ == '__main__':#别人导入这个Python文件的时候,下面的代码不会被执行,用于测试。
print(__name__)
sql1='select * from bt_stu where id="320900";'
res=op_mysql(host='211.149.218.16',port=3306,user='jxz',password='123456',db='jxz',charset='utf8',sql=sql1)
print(res)

 

posted @ 2018-01-22 20:55  秃头小怪兽  阅读(202)  评论(0编辑  收藏  举报