什么是PyMySQL?
PyMySQL 是在 Python3.x 中连接MySQL服务器的一个库(纯Python实现),Python2 中使用 MySQLdb
PyMySQL安装
pip install pymysql
PyMySQL操作
执行DQL语句
# coding=utf-8
import pymysql
conn = pymysql.connect(
host='192.168.30.161', # 要连接数据库的IP或主机名
port=3306, # 端口,默认3306
user='root', # 用户名
password='000000', # 密码
database='test', # 数据库,之后可以更改
charset='utf8' # 字符集
)
# 创建一个游标
cursor = conn.cursor()
# 以字典的方式返回数据
# cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)
# 执行DQL语句
cursor.execute('select * from student')
print(cursor.fetchone()) # 从管道中取一条数据
cursor.scroll(-1) # 将游标从当前位置向后移动一位(相对位置),即开头位置
print(cursor.fetchall()) # 取所有数据
cursor.scroll(0, mode='absolute') # 将游标移动到开头(绝对位置)
print(cursor.fetchmany(1000)) # 指定获取数量,超出查询结果的最大条数,则返回最大条数
# 关闭游标
cursor.close()
#关闭数据库
conn.close()
执行DML语句
- 在PyMySQL中执行QML语句时要
commit
提交才能真正写入到数据库,默认支持事务
# coding=utf-8
import pymysql
conn = pymysql.connect(
host='192.168.30.161', # 要连接数据库的IP或主机名
port=3306, # 端口,默认3306
user='root', # 用户名
password='000000', # 密码
database='test', # 数据库,之后可以更改
charset='utf8' # 字符集
)
# 创建一个游标
cursor = conn.cursor()
try:
# 开启事务
conn.begin()
sql= 'insert into student(sname,age,gender,addr,telnum) value("张三",20,1,"北京市","123456")'
# 返回值是作用的行数
rest = cursor.execute(sql)
# 向数据库提交
conn.commit()
print(rest)
sql = 'update student set telnum="10086" where telnum="123456"'
cursor.execute(sql)
# 手动抛出异常
raise ValueError()
conn.commit()
except:
# 回滚
conn.rollback()
# 关闭游标
cursor.close()
# 关闭数据库
conn.close()