python笔记
一、基础操作
1.数据库连接
# 数据库连接
dbcon = {
'host': 'localhost',
'user': 'root',
'password': '147258',
'database': 'flask_study',
'port': 3306
}
# db = pymysql.connect(host='localhost', user='root', password='147258', database='flask_study', port=3306)
db = pymysql.connect(**dbcon)
数据连接有两种方式,创建字典变量连接或者直接在connect函数写上参数。
2.数据操作
操作数据需要创建游标,创建游标之后写上需要操作的sql语句,用游标中的execute()函数进行sql语句执行。
# 创建游标对象
cursor = db.cursor()
sql = '''insert into testDk(`name`,`sex`) values('dd', '男');'''
# 执行sql语句 会返回受影响的行数并没有改变数据库数据
cursor.execute(sql)
# 提交数据 只有提交数据后才会改变数据库数据
db.commit()
# 事务回滚,取消commit的操作
db.rollback()
二、操作基础
3.查询结果
# fetchall() 查询所有数据
# fetchone() 查询一条数据,执行多次的话依次返回受影响的行数
# fetchmany(x) 查询X条数据
cursor.fetchall()
# 查看表的信息
desc = cursor.description
# (('id', 3, None, 20, 20, 0, False), ('name', 253, None, 80, 80, 0, False), ('sex', 253, None, 16, 16, 0, False))
#第一个元素的第一个子元素是字段名称,查询表的字段可以用这个,遍历输出。
4.增删改
sql = '''insert into table values(%s,%s)'''
# 第一种
cursor.execute(sql, ('aaa', 'bbb'))
# 第二种 执行多次
cursor.executemany(sql, [('aaa','bbb'), ('ccc', 'ddd'), ('eee', 'fff')])
5.创建
# 字段名称用`键,非单引号', 设置自增,新增数据时,表指明新增数据的字段,或者不指明但values()里面要写上所有字段的数据。
6.效率
使用10000次execute和commit耗时:12.96秒
使用execute执行10000次,commit1次耗时:0.94秒
使用executemany执行1次,commit1次耗时:0.05秒
很明显,1次缓冲多条命令,效率会高于分次提交,同时executemany方法会进一步提升效率