sqlq和mysql_sq注入与python操作mysql

mysq注入

SQL注入简介:SQL注入是比较常见的网络攻击方式之一,它不是利用操作系统的BUG来实现攻击,而是针对程序员编程时的疏忽,通过SQL语句 使判断条件永远为真,实现无帐号登录,甚至篡改数据库。

解决方案 让mysql帮我们拼接

import pymysql

conn = pymysql.connect(host='127.0.0.1', user='root', password="123",

database='day43')

cur = conn.cursor()

user = "akhksh' or 1=1 ;-- "

password = '*******'

sql = "select * from userinfo where username = %s and password =%s;"

print(sql)

cur.execute(sql,(user,password))

ret = cur.fetchone()

print(ret)

cur.close()

conn.close()

查询

# 光标会记录位置 取得那就会记录此时的位置

import pymysql

conn = pymysql.connect(

host='127.0.0.1',

port=3306,

user='root',

password='',

database='daycs',

charset='utf8',

)

cursor = conn.cursor(pymysql.cursors.DictCursor)

sql = "select * from book;"

ret = cursor.execute(sql)#ret 受影响的行数

print(ret)#ret 受影响的行数

cursor.scroll(1,'absolute') #绝对移动,按照数据最开始位置往下移动1条

print(cursor.fetchmany()) #取出多条 默认取出1条

# print(cursor.fetchone()) #取出单条

# print(cursor.fetchall()) #取出所有的

cursor.scroll(3,'absolute') #绝对移动,按照数据最开始位置往下移动3条

cursor.scroll(3,'relative') #相对移动,按照当前光标位置往下移动3条

cursor.close()#关闭游标

conn.close()#关闭连接

# 光标会记录位置 取得那就会记录此时的位置

import pymysql

conn = pymysql.connect(

host='127.0.0.1',

port=3306,

user='root',

password='',

database='daycs',

charset='utf8',

)

cursor = conn.cursor(pymysql.cursors.DictCursor)

sql = "insert into book values(%s,'eg','知识没有用出版社',200,'2047-7-5');"

ret = cursor.execute(sql,('独孤九'))

print(ret)#ret 受影响的行数

conn.commit()# 增删改都必须进行提交操作(commit)

操作文件 建表

文件内容

倚天屠龙记 egon 北京工业地雷出版社 70 20190701

九阳神功 alex 人民音乐不好听出版社 5 20180704

九阴真经 yuan 北京工业地雷出版社 62 20170712

九阴白骨爪 jinxin 人民音乐不好听出版社 40 20190807

独孤九剑 alex 北京工业地雷出版社 12 20170901

降龙十巴掌 egon 知识产权没有用出版社 20 20190705

葵花宝典 yuan 知识产权没有用出版社 33 20190802

学python从开始到放弃|alex|人民大学出版社|50|20180701

学mysql从开始到放弃|egon|机械工业出版社|60|20180603

学html从开始到放弃|alex|机械工业出版社|20|20180401

学css从开始到放弃|wusir|机械工业出版社|120|20180502

学js从开始到放弃|wusir|机械工业出版社|100|20180730

利用python操作

#第一步手动创建表

# create table book(

# id int primary key ,

# book_name char(20) not null,

# author char(12) not null,

# press char(20) not null,

# price float(6,2),

# pub_date date

# );

# 写入数据

import pymysql

conn = pymysql.Connection(host='127.0.0.1', user='root', password="",

database='daycs')

cur = conn.cursor()#右边

with open('book.txt',encoding='utf-8') as f:

try:

for line in f:

line = line.strip()

if '\t' in line:

lst = line.split('\t')

elif '|' in line:,

lst = line.split('|')

sql = 'insert into book(book_name,author,press,price,pub_date) values (%s,%s,%s,%s,%s);'

cur.execute(sql,lst)

except Exception:

conn.rollback()#操作不成功 回滚

conn.commit()

cur.close()

conn.close()

# select book_name,price from book where author = 'egon'

# 2.找出最贵的图书的价格

# select max(price) from book;

# select price,book_name from book order by price desc limit 1;

# 3.求所有图书的均价

# select avg(price) from book;

# 4.将所有图书按照出版日期排序

# select * from book order by pub_date;

# 5.查询alex写的所有书的平均价格

# select avg(price) from book where author = 'alex'

# 扩展: 求所有人自己出版的图书的平均价格

# select author,avg(price) from book group by author

# 扩展: 求所有人自己出版的图书的平均价格>30的所有人

# select author from book group by author having avg(price)>30

# 6.查询人民音乐不好听出版社出版的所有图书

# select * from book where press = '人民音乐不好听出版社';

# 7.查询人民音乐出版社出版的alex写的所有图书和价格

# select * from book where press = '人民音乐不好听出版社' and author = 'alex';

# 8.找出出版图书均价最高的作者

# select author,avg(price) as avg_p from book group by author order by avg_p desc limit 1;

# 9.找出最新出版的图书的作者和出版社

# select author,press from book order by pub_date desc limit 1;

# 10.显示各出版社出版的所有图书

# select press,group_concat(book_name) from book group by press;

# 11.查找价格最高的图书,并将它的价格修改为50元

# select max(price) from book;

# update book set price = 50 where price = 70

# 12.删除价格最低的那本书对应的数据

# select min(price) from book;

# delete from book where price = 5;

# 13.将所有alex写的书作者修改成alexsb

# update book set author = 'alexsb' where author = 'alex';

# 14.select year(publish_date) from book

# 自己研究上面sql语句中的year函数的功能,完成需求:

# 将所有2017年出版的图书从数据库中删除

# delete from book where year(publish_date) = 2017;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
毕业设计,基于SpringBoot+Vue+MySQL开发的公寓报修管理系统,源码+数据库+毕业论文+视频演示 现代经济快节奏发展以及不断完善升级的信息化技术,让传统数据信息的管理升级为软件存储,归纳,集处理数据信息的管理方式。本公寓报修管理系统就是在这样的大环境下诞生,其可以帮助管理者在短时间内处理完毕庞大的数据信息,使用这种软件工具可以帮助管理人员提高事务处理效率,达到事半功倍的效果。此公寓报修管理系统利用当下成熟完善的Spring Boot框架,使用跨平台的可开发大型商业网站的Java语言,以及最受欢迎的RDBMS应用软件之一的MySQL数据库进行程序开发。公寓报修管理系统有管理员,住户,维修人员。管理员可以管理住户信息和维修人员信息,可以审核维修人员的请假信息,住户可以申请维修,可以对维修结果评价,维修人员负责住户提交的维修信息,也可以请假。公寓报修管理系统的开发根据操作人员需要设计的界面简洁美观,在功能模块布局上跟同类型网站保持一致,程序在实现基本要求功能时,也为数据信息面临的安全问题提供了一些实用的解决方案。可以说该程序在帮助管理者高效率地处理工作事务的同时,也实现了数据信息的整体化,规范化与自动化。 关键词:公寓报修管理系统;Spring Boot框架;MySQL;自动化;VUE
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值