标签:注入 else none ble shift 方案 dump put 游标
一IDE 可视化工具
二 数据库备份
三pymysql的使用
一IDE 可视化工具
生产环境还是推荐使用mysql命令行,但为了方便我们测试,可以使用IDE工具
下载链接:https://pan.baidu.com/s/1bpo5mqj
掌握: #1. 测试+链接数据库 #2. 新建库 #3. 新建表,新增字段+类型+约束 #4. 设计表:外键 #5. 新建查询 #6. 备份库/表 #注意: 批量加注释:ctrl+?键 批量去注释:ctrl+shift+?键
二数据库备份
1.物理备份:直接复制数据库文件,适用于大型数据库环境,但不能恢复到异构系统中。
2.逻辑备份:备份的是建表、建库、出入等操作所执行的SQL 语句,适用于中小型数据库,效率相对比较低。
3.导出表:将表导入到文本文件中。
使用mysqldump实现逻辑备份:
mysqldump -h 服务器 -u用户名 -p密码 数据库名 > 备份文件.sql # 备份单个数据库: # mysqldump -uroot -p123456. day47 > D:\47.sql # 备份多个数据库 # mysqldump -uroot -p123456. --databases day47 db43 db42 > D:\47_43_42.sql #备份所有数据库 # mysqldump -uroot -p123456. --all-databases > D:\all.sql # 把数据引入数据库内 # (方法一)mysql -uroot -p123456. day47< D:\47.sql # (方法二)use database day47
SET SQL_LOG_BIN=0;#停止使用日志文件
# source 需要导入数据库的地址
#导入很多数据库 # mysql -uroot -p123456. < D:\47_43_42.sql 注:这些都是在终端的界面上使用
数据库里面的表操作:
# 关于表的操作(把表导出来需要配置下:在 secure_file_priv=‘E:\\‘) # 导出表 # select * from user into outfile‘E:\userinfo.txi‘ fields terminated by ‘,‘ lines terminated by ‘\n‘; # 导入表 load data infile ‘文件的地址‘ into table school.student1 fields terminated by ‘,‘#定义字段分隔符 optionally enclosed by ‘"‘#定义字符串使用什么符号括起来 lines terminated by ‘\n‘; #定义换行符
三 pymysql 的使用
1 基本使用
#1 基本使用 # import pymysql # conn=pymysql.connect(host=‘localhost‘,user=‘root‘,password=‘‘,database=‘day47‘)#链接导数据库 # cursor=conn.cursor() #拿到游标,即mysql > # # sql=‘select * from user where id>1;‘ # rows=cursor.execute(sql) #拿到受影响的行数 # print(‘%s rows in set (0.00 sec)‘ %rows) # # cursor.close() # conn.close()
2 小练习(判断是否登录成功)
# import pymysql # user=input(‘用户名>>: ‘).strip() # pwd=input(‘密码>>: ‘).strip() # # #链接,拿到游标 # conn=pymysql.connect(host=‘localhost‘,user=‘root‘,password=‘‘,database=‘day47‘) # cursor=conn.cursor() #拿到游标,即mysql > # # #执行sql # sql=‘select * from user where user="%s" and password="%s";‘ %(user,pwd) # print(sql) # rows=cursor.execute(sql) #拿到受影响的行数 # # print(‘%s rows in set (0.00 sec)‘ %rows) # cursor.close() # conn.close() # # if rows: # print(‘登录成功‘) # else: # print(‘登录失败‘)
3 sql 注入及解决方案
#sql注入 # import pymysql # user=input(‘用户名>>: ‘).strip() # pwd=input(‘密码>>: ‘).strip() # conn=pymysql.connect(host=‘localhost‘,user=‘root‘,password=‘‘,database=‘day47‘) # cursor=conn.cursor() # # sql=‘select * from user where user="%s" and password="%s";‘ %(user,pwd) # print(sql) # rows=cursor.execute(sql) # cursor.close() # conn.close() # if rows: # print(‘登录成功‘) # else: # print(‘登录失败‘)
#解决sql注入 # import pymysql # user=input(‘用户名>>: ‘).strip() # pwd=input(‘密码>>: ‘).strip() # conn=pymysql.connect(host=‘localhost‘,user=‘root‘,password=‘‘,database=‘day47‘) # cursor=conn.cursor() # # sql=‘select * from user where user=%s and password=%s;‘ # rows=cursor.execute(sql,[user,pwd]) # print(rows) # cursor.close() # conn.close() # if rows: # print(‘登录成功‘) # else: # print(‘登录失败‘)
4 增删改语句
# import pymysql # conn=pymysql.connect(host=‘localhost‘,user=‘root‘,password=‘‘,database=‘day47‘,charset=‘utf8‘)#设置charset后可以输入中文 # cursor=conn.cursor() # sql=‘insert into user(user,password) values(%s,%s);‘ # rows=cursor.execute(sql,(‘alex‘,‘123‘))#插入单条数据 # rows=cursor.executemany(sql,[(‘yuanhao‘,‘123‘),(‘laowu‘,‘123‘),(‘kgf‘,‘12323‘)])#插入多个数据 # print(‘%s row in set (0.00 sec)‘ %rows) # conn.commit()#这个是把数据从内存放到数据库里 # cursor.close() # conn.close()
5查数据
# 查:fetchone,fetchmany,fetchall # import pymysql # conn=pymysql.connect(host=‘localhost‘,user=‘root‘,password=‘‘,database=‘day47‘,charset=‘utf8‘) # cursor=conn.cursor() # sql=‘select * from user;‘ # rows=cursor.execute(sql) #查单条 # res1=cursor.fetchone() # res2=cursor.fetchone() # res3=cursor.fetchone() # print(res1[0]) # print(res2) # print(res3) #查多条 # print(cursor.fetchmany(3)) # print(cursor.fetchone()) #查所有 # print(cursor.fetchall()) # print(cursor.fetchone()) #光标的移动 # print(cursor.fetchall()) # cursor.scroll(1,mode=‘absolute‘)#光标移动绝对位置 # print(cursor.fetchone()) # cursor.scroll(3,mode=‘absolute‘) # print(cursor.fetchone()) # print(cursor.fetchone()) # print(cursor.fetchone()) # cursor.scroll(-2,mode=‘relative‘)#光标移动相对位置 # print(cursor.fetchone()) # print(‘%s row in set (0.00 sec)‘ %rows) # cursor.close() # conn.close()
6 最后一个id号
import pymysql conn=pymysql.connect(host=‘localhost‘,user=‘root‘,password=‘‘,database=‘day47‘,charset=‘utf8‘) cursor=conn.cursor() sql=‘insert into user(user,password) values(%s,%s);‘ rows=cursor.execute(sql,(‘alex‘,‘123‘)) # rows=cursor.executemany(sql,[(‘yuanhao‘,‘123‘),(‘laowu‘,‘123‘),(‘kgf‘,‘12323‘)]) conn.commit() print(cursor.lastrowid)#查看最后一个的id号 cursor.close() conn.close()
标签:注入 else none ble shift 方案 dump put 游标
原文地址:http://www.cnblogs.com/1a2a/p/7521669.html