操作MySQL数据库的py代码模板

  1. import pymysql
  2. db = pymysql.connect(
  3. host='localhost',
  4. port=3306,
  5. user='ws',
  6. password='123456',
  7. database='mytest',
  8. )
  9. cursor = db.cursor()
  10. # 填入代码
  11. cursor.close()
  12. db.close()

(1) pymysql.Connect()参数说明

host(str): MySQL服务器地址
port(int): MySQL服务器端口号
user(str): 用户名
password(str): 密码
db(str): 数据库名称
charset(str): 连接编码, 默认为”utf8”, 注意此处不能有杠

(2) connection对象支持的方法

cursor() 使用该连接创建并返回游标
commit() 提交当前事务
rollback() 回滚当前事务
close() 关闭连接

(3) cursor对象支持的方法

execute(sql, args) 执行一个数据库的命令, 返回记录数, 没找到返回0, 其它情况抛出异常
fetchone() 取得结果集的下一行
fetchmany(size) 获取结果集的下几行
fetchall() 获取结果集中的所有行
rowcount() 返回数据条数或影响行数
close() 关闭游标对象

1 查询

  1. # 执行SQL语句
  2. cursor.execute("select * from students;") # 此语句返回查询到的条数
  3. # 获取查询结果
  4. ret = cursor.fetchall() # 返回 元组里面套元组
  5. for row in ret:
  6. print(row)

image.png

2 增加

注: pymysql默认不会提交事务, 即默认开启了begin, 所以只要执行commit()就可以

  1. sql = "insert classes(name) values('天地无极');"
  2. try:
  3. # 执行SQL语句
  4. cursor.execute(sql)
  5. # (添加,删除,修改后)要提交修改到数据库
  6. db.commit()
  7. except:
  8. # 对修改的数据进行撤销
  9. db.rollback()

image.png

3 修改

  1. sql = "update classes set name='初出茅庐' where id=1;"
  2. try:
  3. # 执行SQL语句
  4. cursor.execute(sql)
  5. # (添加,删除,修改后)要提交修改到数据库
  6. db.commit()
  7. except:
  8. # 对修改的数据进行撤销
  9. db.rollback()

image.png

4 删除

  1. sql = "delete from classes where id=4;"
  2. try:
  3. # 执行SQL语句
  4. cursor.execute(sql)
  5. # (添加,删除,修改后)要提交修改到数据库
  6. db.commit()
  7. except:
  8. # 对修改的数据进行撤销
  9. db.rollback()

image.png