1.pymysql的操作流程
a.导入pymysql
语法:
import pymysql
b.使用pymysql上的connect()方法连接数据库返回连接对象
语法:
连接对象 = pymysql.connect(
host="连接地址 localhost, ip 地址",
port=端口号,默认3306,
user="用户名",
password="密码",
database="数据库名",
charset="utf8"
)
c.使用连接对象创建游标对象,用于操作sql.
语法:
游标对象=连接对象.cursor(cursor=None)
d.准备写sql语句
例如:
sql="select * from student"
e.使用游标对象执行sql(发送),如果没有查询数据,返回受影响的行数
语法:
游标对象.execute(sql,args=None]
f.如果有查询数据,使用游标获取数据
语法:
游标对象.fetchall() 获取所有
游标对象.fetchone() 获取下一条,每执行一次获取一条
游标对象.fetchmany(number) 获取指定条数
g.关闭游标和数据库连接
语法:
游标对象.close()
连接对象.close()
2.使用连接对象
a.创建游标对象
游标对象 = 连接对象.cursor(cursor=None)
参数说明: 指定游标的类型
`Cursor`: 默认
`SSCursor`: 默认基础上采用生成器
`DictCursor`: 字典类型游标
`SSDictCursor`: 在字典采用生成器方式
例如:
cnn.cursor(cursor=pymysql.cursors.SSDictCursor)
b.切换数据库
语法:
数据库连接对象.select_db(数据库名)
c.关闭连接
语法:
连接对象.close()
d.事务操作方法
1.开启事务
连接对象.begin() 开启事务,默认开启
2.提交事务
连接对象.commit()
3.回滚事务
连接对象.rollback()
注意:pymysql鉴于安全考虑,所有的写(insert,delete,update)操作都必须使用事务.
3.游标对象的使用
a.游标对象用于执行sql语句
语法:
游标对象.execute(sql,args=None)
传参数说明:
1.如果是完整的sql语句,就直接传第一个参数即可
备注:如果通过传入形式拼接的sql语句,容易造成sql注入风险.
sql注入:恶意用于构建特殊sql参数传入,从而非法获取数据
2.如果sql语句是使用%s占位的时候,必须使用第二个参数args(实际参数)
例如:
sql="select * from student where name=%s and age=%s"
args=['张飞',18] #列表或者元组
#执行
游标对象.execute(sql,args)
#传入多条
游标对象.executemany(sql,args)
b.游标对象获取数据
c.游标的关闭
语法:
游标对象.close()
建议每次使用完执行和获取数据后关闭
e.提供一个上下文管理器的语法,自动关闭(任何打开的东西)
语法:
with 连接对象.cursor() as cursor:
#使用游标cursor执行获取数据,自动关闭游标
例子:文件操作
with open ('文件路径','读取方式',encoding='utf-8') as fp:
fp.read()