以下学习笔记参考自:
https://github.com/datawhalechina/fun-rec/blob/master/docs/%E7%AC%AC%E4%BA%8C%E7%AB%A0%20%E6%8E%A8%E8%8D%90%E7%B3%BB%E7%BB%9F%E5%AE%9E%E6%88%98/2.2%E6%96%B0%E9%97%BB%E6%8E%A8%E8%8D%90%E7%B3%BB%E7%BB%9F%E5%AE%9E%E6%88%98/docs/2.2.1.1%20Mysql%E5%9F%BA%E7%A1%80.md
安装pymysql
pip install PyMySQL
连接数据库
import pymysql
# 这里登陆到我之前创建的root账户
connection=pymysql.connect(
host='localhost',
user='root',
password='zxc19991109',
database='shop',
charset='utf8mb4',
cursorclass=pymysql.cursors.DictCursor
)
参数解释:
host:数据库服务器地址,默认localhost;user:所要登陆的用户名;password:用户的登录密码;database:所要连接的数据库库名;charset:使用的字符类型;cursorclass:定义游标使用的类型,通过指定游标使用的类型,在返回输出的结果时将按照指定的类型进行返回。例如,这里设置为字典游标。
创建游标
游标,可以理解为在命令行中的光标。在命令行中,我们是在光标处键入语句的。这里游标的起到类似作用。
# 创建游标
cursor = db.cursor()
除了在初始化connect的实例时指定游标类型,我们在初始化游标时也可以指定游标类型,默认为元组类型。
cursor = db.cursor(cursor=pymysql.cursors.DictCursor)
-
connect下的类方法:
close():在完成操作后,需要关闭与数据库之间的连接;commit():如果执行语句中发生了数据更改,需要提交更改到稳定的存储器;cursor(cursor=None):创建一个游标,前面我们在初始化connect类是指定了游标类型,通过cursor初始化游标时,也可以进行游标类型指定;rollback():事务回滚;
-
pymysql.cursors下的类方法:
close():结束时,关闭游标;execute():通过游标执行语句;executemany():通过游标执行多条语句;fetchone():获取单条数据;fetchmany(size=None):获取size条数据;fetchall():获取多条数据;scroll(value, mode):数据的查询操作都是基于游标,可以通过scroll控制游标的位置。mode=absolute:绝对位置移动,控制游标位置到上一次查询的第value条数据,最小值为0;mode=relative:相对位置移动,基于当前位置,跳过value条数据;
示例
1.创建表
import pymysql
connection=pymysql.connect(
host='localhost',
user='root',
password='zxc19991109',
database='shop',
charset='utf8mb4',
cursorclass=pymysql.cursors.DictCursor
)
cursor=connection.cursor(cursor=pymysql.cursors.DictCursor)
sql="""
create table Employee(
id int primary key,
name char(15) not null
)
"""
cursor.execute(sql)
可以看到mysql的shop库中多了名为employee的表

sql="insert into employee (id,name) values (%s,%s)"
values=[
(1,'xiaoli'),
(2,'xiaozhi'),
(3,'xiaoming'),
(4,'xiaoyue'),
(5,'xiaoxi')
]
try:
cursor.executemany(sql,values)
#提交事务
connection.commit()
except:
connection.rollback()
#关闭光标及连接
cursor.close()
connection.close()
以上内容紧接创建库,通过查看数据库我们可以发现employee表下多了一些数据

在之前的基础上,执行查询操作
import pymysql
# 以admin身份连接到数据库shop
connection = pymysql.connect(
host='localhost',
user='root',
password='zxc19991109',
database='shop',
charset='utf8mb4',
)
with connection:
# 创建游标
cursor = connection.cursor(cursor=pymysql.cursors.DictCursor)
# 1. 通过fetchone只查询一条
cursor.execute("SHOW CREATE TABLE Employee")
result = cursor.fetchone()
print(f'查询结果1: \n{result}')
# 2. 通过fetchmany查询size条
cursor.execute("DESC Employee")
result = cursor.fetchmany(size=2)
print(f'查询结果2: \n{result}')
# 3. 通过fetchall查询所有
cursor.execute("SELECT * FROM Employee")
result = cursor.fetchall()
print(f'查询结果3: \n{result}')
# 4. 通过scroll回滚到第0条进行查询
cursor.scroll(0, mode='absolute')
result = cursor.fetchone()
print(f'查询结果4: \n{result}')
# 5. 通过scroll跳过2条进行查询
cursor.scroll(2, mode='relative')
result = cursor.fetchone()
print(f'查询结果5: \n{result}')
cursor.close()
执行结果:

本文介绍了如何使用Python的PyMySQL库来实现与MySQL数据库的交互,包括安装PyMySQL、建立数据库连接、创建游标、执行SQL语句以及数据的增删改查等基本操作。
2185

被折叠的 条评论
为什么被折叠?



