一篇文章搞定Python连接mysql数据库模块PyMySQL

PyMySQL安装方法pip install pymysql连接数据库注意事项
在进行本文以下内容之前需要注意:

  • 你有一个MySQL数据库,并且已经启动 。
  • 你有可以连接该数据库的用户名和密码
  • 你有一个有权限操作的database
基本使用# 导入pymysql模块import pymysql# 链接库(database)conn = pymysql.connect(host="127.0.0.1",# host后面填写需要链接的数据库地址user="root",# 用户名password="123456",# 密码database="human",# 数据库名charset="utf8"# 编码方式)# 得到一个可以执行的SQL语句的光标cursor = conn.cursor()# 定义要执行的SQL语句sql = 'select * from info;'# 执行SQL语句cursor.execute(sql)# 关闭光标对象cursor.close()# 关闭数据库连接conn.close()返回字典格式的数据
import pymysqlconn = pymysql.connect(host="127.0.0.1",user="root",password="123456",database="human",charset="utf8")# 得到一个可以执行SQL语句并且将结果作为字典返回的游标cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)sql = 'select name from class;'# 执行sql语句cursor.execute(sql)# 返回查询到的所有数据ret = cursor.fetchall()# 返回查询到的指定条数数据# ret = cursor.fetchmany(5)print(ret)# 关闭链接cursor.close()conn.close()注意
charset=“utf8”,编码不要写成"utf-8"
增删改查操作增
import pymysqlconn = pymysql.connect(host="127.0.0.1",user="root",password="123456",database="human",charset="utf8")cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)# 注意此处传值全部使用%s做占位符即可sql = "insert into class(name, age, sex, salary) VALUES(%s,%s,%s,%s)"name = 'abcd'age = '33'sex = '男'salary = '120.02'# 执行sql语句cursor.execute(sql, [name, age, sex, salary])# 提交事务conn.commit()cursor.close()conn.close()插入数据失败回滚
import pymysqlconn = pymysql.connect(host="127.0.0.1",user="root",password="123456",database="human",charset="utf8")cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)sql = "INSERT into class(name, age, sex, salary) values(%s,%s,%s,%s);"name = "ss"age = "22"sex = "男22"salary="1234.2"try:cursor.execute(sql, [name, age, sex, salary])# 提交事务conn.commit()except Exception:print('出错')# 有异常回滚事务conn.rollback()cursor.close()conn.close()获取插入数据的ID(关联操作时会用到)
# 导入pymysql模块import pymysql# 连接databaseconn = pymysql.connect(host=“你的数据库地址”, user=“用户名”,password=“密码”,database=“数据库名”,charset=“utf8”)# 得到一个可以执行SQL语句的光标对象cursor = conn.cursor()sql = "INSERT INTO USER1(name, age) VALUES (%s, %s);"username = "run"age = 18try:# 执行SQL语句cursor.execute(sql, [username, age])# 提交事务conn.commit()# 提交之后,获取刚插入的数据的IDlast_id = cursor.lastrowidexcept Exception as e:# 有异常,回滚事务conn.rollback()cursor.close()conn.close()批量执行
# 导入pymysql模块import pymysql# 连接databaseconn = pymysql.connect(host=“你的数据库地址”, user=“用户名”,password=“密码”,database=“数据库名”,charset=“utf8”)# 得到一个可以执行SQL语句的光标对象cursor = conn.cursor()sql = "INSERT INTO USER1(name, age) VALUES (%s, %s);"data = https://www.isolves.com/it/cxkf/yy/Python/2020-06-05/[("run1", 18), ("run2", 20), ("run3", 21)]try:# 批量执行多条插入SQL语句cursor.executemany(sql, data)# 提交事务conn.commit()except Exception as e:# 有异常,回滚事务conn.rollback()cursor.close()conn.close()
# 导入pymysql模块import pymysql# 连接databaseconn = pymysql.connect(host=“你的数据库地址”, user=“用户名”,password=“密码”,database=“数据库名”,charset=“utf8”)# 得到一个可以执行SQL语句的光标对象cursor = conn.cursor()sql = "DELETE FROM USER1 WHERE id=%s;"try:cursor.execute(sql, [4])# 提交事务conn.commit()except Exception as e:# 有异常,回滚事务conn.rollback()cursor.close()conn.close()
# 导入pymysql模块import pymysql# 连接databaseconn = pymysql.connect(host=“你的数据库地址”, user=“用户名”,password=“密码”,database=“数据库名”,charset=“utf8”)# 得到一个可以执行SQL语句的光标对象cursor = conn.cursor()# 修改数据的SQL语句sql = "UPDATE USER1 SET age=%s WHERE name=%s;"username = "run1"age = 80try:# 执行SQL语句cursor.execute(sql, [age, username])# 提交事务conn.commit()except Exception as e:# 有异常,回滚事务conn.rollback()cursor.close()conn.close()


推荐阅读