python连接mysql数据库并读取数据的实现
1、安装pymysql包
pipinstallpymysql
注:
MySQLdb只支持python2,pymysql支持python3
2、连接数据
importpymysql importpandasaspd frompandasimportDataFrameasdf conn=pymysql.Connect( host='IP地址', port=端口号, user='用户名', passwd='用户密码', db='数据库名称', charset='utf8' )
注:
查看本机IP地址:cmd输入:ipconfig,IPv4地址
pymysql.Connect参数中的host服务器地址,本机可用'localhost'
3、读取数据
(1)使用read_sql读取数据
sql='select*fromtesta' data=pd.read_sql(sql,conn)
(2)使用cursor读取数据
sql='select*fromtesta' cur=conn.cursor() try:#使用异常处理,以防程序无法正常运行 cur.execute(sql) data=df(cur.fetchall(),columns=[col[0]forcolincur.description]) exceptExceptionase: conn.rollback()#发生错误时回滚 print('事务处理失败',e) else: #conn.commit()#事务提交 print('事务处理成功',cur.rowcount) cur.close()
注:
read_sql、cursor游标区别:
- read_sql:只能执行查询数据
- cursor游标:可以执行查询、插入、更新、删除等操作
cur.execute(sql):
- 执行具体数据库的操作
cur.fetchone():
- 获取单条数据
cur.fetchmany(3):
- 获取前3条数据
cur.fetchall():
- 获取所有数据
查询结果中含字段名称:
#法1: cur=conn.cursor(cursor=pymysql.cursors.DictCursor)#设置成DictCursor,结果包含字段名称 cur.execute(sql) data=df(cur.fetchall()) #法2: cur=conn.cursor() cur.execute(sql) data=df(cur.fetchall(),columns=[col[0]forcolincur.description])
conn.commit():
- 插入、更新、删除等操作需用该语句;查询、创建数据库、数据表则不需要
cur.rowcount:
- 返回执行的操作条数
4、关闭数据库
conn.close()
到此这篇关于python连接mysql数据库并读取数据的实现的文章就介绍到这了,更多相关python连接mysql内容请搜索毛票票以前的文章或继续浏览下面的相关文章希望大家以后多多支持毛票票!