day-44mysql
sql注入
a. 登錄驗(yàn)證寫sql語句的時(shí)候, %傳值的時(shí)候, 需要加引號:sql = "select * from t4 where name = '%s' and pwd = '%s'" % (username, pwd)上面的sql語句帶來的風(fēng)險(xiǎn)是:例一:username = zekai' #select * from t4 where name = 'zekai' #' and pwd = '' 例二:username = dbsahvbdsha' or 1=1 #select * from t4 where name = 'dbsahvbdsha' or 1=1上面出現(xiàn)的問題,我們稱之為 SQL注入
出現(xiàn)問題的根源是:
因?yàn)樘^于相信用戶的輸入, 導(dǎo)致我們在接受用戶輸入的參數(shù)的時(shí)候, 并沒有對他進(jìn)行轉(zhuǎn)義
解決SQL注入:
1. 自己手工對用戶輸入的值進(jìn)行轉(zhuǎn)義
2. 使用execute()自動進(jìn)行過濾
sql = "select * from t4 where name = %s and pwd = %s"
cursor.execute(sql,(username, pwd))
?
#$## 插入一條使用
cursor.execute(sql, ('lxxx', '1234'))
### 插入多條
data = [
('aaaaa', 'aaa'),
('bbbb', 'bbb'),
('ffff', '666'),
('rrrr', '888'),
]
cursor.executemany(sql, data)
try:
cursor.execute(sql, ('lxxx', '1234'))
### 刪除和更新的時(shí)候, 需要事物提交
conn.commit()
except Exception as e:
conn.rollback()
cursor.lastrowid : 最后一行的行數(shù)
事務(wù)
一組操作, 要么都成功, 要么都失敗
特性:
原子性: 一組操作, 要么都成功, 要么都失敗
一致性(Consistency):指事務(wù)發(fā)生前和發(fā)生后,數(shù)據(jù)的總額依然匹配
隔離性(Isolation):簡單點(diǎn)說,某個(gè)事務(wù)的操作對其他事務(wù)不可見的
持久性(Durability):當(dāng)事務(wù)完成后,其影響應(yīng)該保留下來,不能撤消,只能通過“另開起一個(gè)事物”來抵消之前的錯(cuò)誤
解決方法:
開啟事務(wù) (start transaction)
(執(zhí)行sql操作)
commit : 提交上面的SQL, 讓其生效
rollback: 回滾
show full tables; 顯示全部類型
?
視圖
產(chǎn)生的原因:
如果有一個(gè)SQL語句頻繁的會被使用到,比如說:
select * from t4 where id>12 and id <24;
搞一個(gè)映射,或者取一個(gè)別名
select * from t4 where id>12 and id <24 === > v1
視圖:
select * from v1;
創(chuàng)建視圖:
create view v1 as select * from t4 where id>12 and id <24;
修改視圖:
alter view v1 as sql語句;
刪除視圖:
drop view v1;
問題:
如果原生的表數(shù)據(jù)發(fā)生了變化, 那視圖會不會發(fā)生變化? 也會變化
視圖中的數(shù)據(jù)會不會發(fā)生修改? 不會發(fā)生修改
應(yīng)用場景:
MySQL: (DBA)
生成視圖View
程序:
調(diào)用 select * from v1;
函數(shù):
不要輕易使用
在程序中, 用代碼計(jì)算, 計(jì)算好了, 再傳給SQL語句執(zhí)行
存儲過程:
將一大堆 SQL 語句進(jìn)行封裝, 類似于函數(shù), 結(jié)果就是存儲過程
MySQL服務(wù)端:
DBA (寫)
觸發(fā)器:
向用戶表中添加一條數(shù)據(jù)的同時(shí), 在日志表中也添加一條記錄
?
轉(zhuǎn)載于:https://www.cnblogs.com/klw1/p/11032644.html
總結(jié)
以上是生活随笔為你收集整理的day-44mysql的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 军人保障卡丢失的危害
- 下一篇: 呼和浩特戎辉小区是部队房子