读取存放sql语句的文件
"""
目的:读取存放sql语句的文件
-- sql文件
将初始化sql语句放到文件中,加注释,加空行区分行,使用代码输出所有行,将sql语句存入列表并查看
提示:
sql文件未必放到.sql类型的文件中,txt完全支持
sql语句最好一行写一句,建议分号结尾
sql语句中的表名,建议加上数据库名,以防意外
如果文件中加注释,空行,需要代码中处理
一般数据库中都支持--注释
文件内容如下:
-- 注册接口:test02、test03
delete from user where username = 'test02'
delete from user where username = 'test03'
insert into user(id,username,password) values(3,'test03','123456')
--登陆接口:test01
delete from user where username = 'test01';
insert into user(id,username,password) values(2,'test01','123456')
"""
# 读取sqls01.txt文件
sqlfile = open('sqls01.txt', 'r')#去掉r 也是读取文件
# 创建列表存放所有sql命令
sqls = []
for sql in sqlfile:#sql代表文件中的某一行
#print(sql.strip(),end='')#strip删除首尾的空白符(空格,tab,回车)
if len(sql.strip())>0 and not sql.startswith('--'):#startswith以什么开头
# print(sql.strip())
sqls.append(sql.strip())#append追加
print(sqls)
sqlfile.close()#关闭文件
读取sql文件并执行sql命令
"""
读取sql文件并执行sql命令
"""
import pymysql
#打开文件
sqlfile = open('sqls01.txt','r')
# 连接数据库
conn = pymysql.connect(host='192.168.139.137',user='root',password='123456',db='exam')
# 创建游标
cursor = conn.cursor()
for sql in sqlfile:#遍历文件中的行,sql代表一行
if len(sql.strip())>0 and not sql.startswith('--'):
sql = sql.strip()
cursor.execute(sql)
conn.commit()#最后提交数据一次
sqlfile.close()#关闭文件
conn.close()#关闭数据库
自动执行存放sql语句文件中的命令
a)将初始化sql语句写到文件中,.txt就可以,也可以使用.sql文件
注意:sql语句必须符合语法要求
一般会在文件中添加注释(--),也会加空行
b)sqlfile=open(文件名,'r')
文件名为存放sql语句的文件名
文件打开后,文件信息存入sqlfile
要读取文件行或数据,一般需要循环遍历
c)for sql in sqlfile:
处理语句
说明:sql代表文件sqlfile中的一行(从第一行开始,一直到结束)
d)sql.strip()
表示去掉sql头尾的空白符(空格,Tab键,回车键),中间的不去
e)sql.startswith('--')
表示判断sql是不是以--开头
f)len(sql.strip())
表示sql去掉首尾空白符以后,有多少个有效字符
len(sql.strip())>0表示去掉首尾空白符后,是有效行
g)执行sql
connect 连接数据库
cursor()创建游标
循环执行sql语句:cursor.execute(sql)
commit提交保存数据
close关闭数据库