ITPub博客

首页 > IT职业 > IT图书 > Python操作MySQL(一) PyMysql篇

Python操作MySQL(一) PyMysql篇

IT图书 作者:drinkant 时间:2021-09-09 09:36:46 0 删除 编辑

pymsql是Python中操作MySQL的模块,其使用方法和MySQLdb几乎相同,但是mysqldb不支持Python3


下载安装

pip3 install pymysql

使用操作

1. 执行sql

#!/usr/bin/env python# -*- coding:utf-8 -*-import pymysql# 创建连接conn = pymysql.connect(host='127.0.0.1', port=3306, user='root', passwd='123456', db='test',charset='utf8')# 创建游标cursor = conn.cursor()# 执行SQL,并返回收影响行数effect_row = cursor.execute("update hosts set host = '1.1.1.2'")# 执行带条件SQL,并返回受影响行数#effect_row = cursor.execute("update hosts set host = '1.1.1.2' where nid > %s", (1,))# 执行SQL,并返回受影响行数#effect_row = cursor.executemany("insert into hosts(host,color_id)values(%s,%s)", [("1.1.1.11",1),("1.1.1.11",2)])# 提交,不然无法保存新建或者修改的数据conn.commit() # 获取最新自增IDnew_id = cursor.lastrowid# 关闭游标cursor.close()# 关闭连接conn.close()

2.获取查询数据

#!/usr/bin/env python# -*- coding:utf-8 -*-import pymysqlconn = pymysql.connect(host='127.0.0.1', port=3306, user='root', passwd='123', db='t1')cursor = conn.cursor()cursor.execute("select * from hosts")# 获取第一行数据row_1 = cursor.fetchone()print(row_1)# 获取前n行数据# row_2 = cursor.fetchmany(3)# 获取所有数据row_3 = cursor.fetchall()cursor.close()conn.close()

3.fetch数据类型

关于默认获取的数据是元祖类型,如果想要或者字典类型的数据,使用设置游标为字典类型:

#!/usr/bin/env python# -*- coding:utf-8 -*-import pymysqlconn = pymysql.connect(host='127.0.0.1', port=3306, user='root', passwd='123', db='t1')# 游标设置为字典类型cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)r = cursor.execute("select * from hosts")result = cursor.fetchone()for k, v in result.items():    print(k,v)cursor.close()conn.close()

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/1297/viewspace-2810947/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2019-04-15

  • 博文量
    114
  • 访问量
    1257