本篇文章给大家分享的是有关怎么在python中使用pymysql模块连接mysql数据库,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。

安装pymysql

pip install pymysql

2|0使用pymysql

2|1使用数据查询语句

查询一条数据fetchone()

frompymysqlimport*conn=connect(host='127.0.0.1',port=3306,user='root',password='123456',database='itcast',charset='utf8')#创建游标c=conn.cursor()#执行sql语句c.execute("select*fromstudent")#查询一行数据result=c.fetchone()print(result)#关闭游标c.close()#关闭数据库连接conn.close()"""(1,'张三',18,b'\x01')"""

查询多条数据fetchall()

frompymysqlimport*conn=connect(host='127.0.0.1',port=3306,user='root',password='123456',database='itcast',charset='utf8')#创建游标c=conn.cursor()#执行sql语句c.execute("select*fromstudent")#查询多行数据result=c.fetchall()foriteminresult:print(item)#关闭游标c.close()#关闭数据库连接conn.close()"""(1,'张三',18,b'\x01')(2,'李四',19,b'\x00')(3,'王五',20,b'\x01')"""

更改游标的默认设置,返回值为字典

frompymysqlimport*conn=connect(host='127.0.0.1',port=3306,user='root',password='123456',database='itcast',charset='utf8')#创建游标,操作设置为字典类型c=conn.cursor(cursors.DictCursor)#执行sql语句c.execute("select*fromstudent")#查询多行数据result=c.fetchall()foriteminresult:print(item)#关闭游标c.close()#关闭数据库连接conn.close()"""{'id':1,'name':'张三','age':18,'sex':b'\x01'}{'id':2,'name':'李四','age':19,'sex':b'\x00'}{'id':3,'name':'王五','age':20,'sex':b'\x01'}"""

返回一条数据时也是一样的。返回字典或者时元组看个人需要。

2|2使用数据操作语句

执行增加、删除、更新语句的操作其实是一样的。只写一个作为示范。

frompymysqlimport*conn=connect(host='127.0.0.1',port=3306,user='root',password='123456',database='itcast',charset='utf8')#创建游标c=conn.cursor()#执行sql语句c.execute("insertintostudent(name,age,sex)values(%s,%s,%s)",("小二",28,1))#提交事务conn.commit()#关闭游标c.close()#关闭数据库连接conn.close()

和查询语句不同的是必须使用commit()提交事务,否则操作就是无效的。

3|0编写数据库连接类

普通版

MysqlHelper.py

frompymysqlimportconnect,cursorsclassMysqlHelper:def__init__(self,host="127.0.0.1",user="root",password="123456",database="itcast",charset='utf8',port=3306):self.host=hostself.port=portself.user=userself.password=passwordself.database=databaseself.charset=charsetself._conn=Noneself._cursor=Nonedef_open(self):#print("连接已打开")self._conn=connect(host=self.host,port=self.port,user=self.user,password=self.password,database=self.database,charset=self.charset)self._cursor=self._conn.cursor(cursors.DictCursor)def_close(self):#print("连接已关闭")self._cursor.close()self._conn.close()defone(self,sql,params=None):result:tuple=Nonetry:self._open()self._cursor.execute(sql,params)result=self._cursor.fetchone()exceptExceptionase:print(e)finally:self._close()returnresultdefall(self,sql,params=None):result:tuple=Nonetry:self._open()self._cursor.execute(sql,params)result=self._cursor.fetchall()exceptExceptionase:print(e)finally:self._close()returnresultdefexe(self,sql,params=None):try:self._open()self._cursor.execute(sql,params)self._conn.commit()exceptExceptionase:print(e)finally:self._close()

该类封装了fetchone、fetchall、execute,省去了数据库连接的打开和关闭和游标的打开和关闭。
下面的代码是调用该类的小示例:

fromMysqlHelperimport*mysqlhelper=MysqlHelper()ret=mysqlhelper.all("select*fromstudent")foriteminret:print(item)"""{'id':1,'name':'张三','age':18,'sex':b'\x01'}{'id':2,'name':'李四','age':19,'sex':b'\x00'}{'id':3,'name':'王五','age':20,'sex':b'\x01'}{'id':5,'name':'小二','age':28,'sex':b'\x01'}{'id':6,'name':'娃哈哈','age':28,'sex':b'\x01'}{'id':7,'name':'娃哈哈','age':28,'sex':b'\x01'}"""上下文管理器版mysql_with.pyfrompymysqlimportconnect,cursorsclassDB:def__init__(self,host='localhost',port=3306,db='itcast',user='root',passwd='123456',charset='utf8'):#建立连接self.conn=connect(host=host,port=port,db=db,user=user,passwd=passwd,charset=charset)#创建游标,操作设置为字典类型self.cur=self.conn.cursor(cursor=cursors.DictCursor)def__enter__(self):#返回游标returnself.curdef__exit__(self,exc_type,exc_val,exc_tb):#提交数据库并执行self.conn.commit()#关闭游标self.cur.close()#关闭数据库连接self.conn.close()

如何使用:

frommysql_withimportDBwithDB()asdb:db.execute("select*fromstudent")ret=db.fetchone()print(ret)"""{'id':1,'name':'张三','age':18,'sex':b'\x01'}"""

以上就是怎么在python中使用pymysql模块连接mysql数据库,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注亿速云行业资讯频道。