1. 程式人生 > 其它 >第十週內容回顧(包含部分資料庫)

第十週內容回顧(包含部分資料庫)

目錄

python操作MySQL

import pymysql

# 1.連線sql服務端
conn = mysql.connect(
	user='root'		# 登入的賬號
	password='123'	# 登入的密碼
	host='127.0.0.1'  # 登入的ip地址
	db='db1' 		# 訪問的資料庫
	charset='utf8mb4'	# 資料庫編碼
 	port=33306			# 埠號
 	autocommit='true'	# 增改刪二次確認預設不需要
)


使用pymysql進行使用者註冊
import pymysql

conn = pymysql.connect(
    user='root',
    password='123',
    port=3306,
    charset='utf8',
    autocommit=True,
    host='127.0.0.1',
    db='day_44'
)
cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)
username = input('請輸入你的賬號>>>:').strip()
password = input('請輸入你的密碼>>>:').strip()
sql = 'insert into userinfo(username,password) values(%s,%s)'
cursor.execute(sql, (username, password))
print('註冊成功')


使用python進行使用者登入
import pymysql

conn = pymysql.connect(
    user='root',
    password='123',
    port=3306,
    charset='utf8',
    autocommit=True,
    host='127.0.0.1',
    db='day_44'
)
cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)
username = input('請輸入你的賬號>>>:').strip()
password = input('請輸入你的密碼>>>:').strip()
sql = 'select * from userinfo where username=%s and password=%s'  # 寫查詢sql語句
cursor.execute(sql, (username, password))   # 傳送sql語句
res = cursor.fetchall()   # 接收返回的,判斷是否有值,有的話證明可以登入
if res:
    print('登入成功')
else:
    print('賬號或者密碼錯誤')

SQL注入問題

SQL注入:利用特殊符號的組合產生特殊的含義,從而避開正常的業務邏輯

針對sql注入問題,核心在於手動拼接了關鍵資料,交給execute處理即可

檢視

檢視就是通過查詢得到一張虛擬表,然後儲存下來,下次直接使用

1.檢視的表只能用來查詢,不能做增刪改操作
2.儘量少使用檢視,會跟真正的表產生混淆,從而干擾操作者

觸發器

達到某個條件之後自動觸發執行
在MySQL中更加的詳細的說明是觸發器:針對表繼續增/刪/改操作能夠自動觸發
主要有6種情況:增前,增後,改前,改後,刪前,刪後

事務

事務的4大特性:
    原子性
   '事務中的各項操作是不可分割的整體,要麼同時成功要麼同時失敗'
    一致性
   '使資料庫從一個一致性狀態變到另一個一致性狀態'
    隔離性
   '多個事務之間彼此不干擾'
    永續性
   '也稱為永久性指的是一個事務一旦提交,他最資料庫的改變是永久性的'
事務先關的關鍵字:
start transaction		開啟事務
rollback			   回滾
commit					儲存
sevepoint				建立回滾的埠

在sql標準中定義了四種隔離級別
InnoDB支援所有隔離級別
1.read uncommitted(未提交讀)
2.read committed(提交讀)
3.repeatable read(可重複讀)
4.serializable(可序列讀)

儲存過程

檢視儲存過程具體資訊
	show create procedure prol;
檢視所有儲存過程
	show procedure status;
刪除儲存過程
	drop procedure prol; 

函式

1.移除執行字元
Trim	LTrim	RTrim
2.大小寫轉換
Lower	Upper
3.獲取左右起始指定個數字元
Left	Right
4.日期格式
date_format

索引的相關概念

1.索引就好比一本書的目錄,它能讓你更快的找到自己想要的內容
2.讓獲取的資料更有目的性,從而提高資料檢索資料的效能

索引在MySQL中也叫做鍵,是儲存引擎用於快讀找到記錄的一種資料結構
主鍵:primary key
唯一鍵;	unique
index key  
1.上述的三個key都可以加快資料查詢
2.primary key和unique除了可以加快查詢本身還自帶限制條件而index key很單一就是用來加快資料查詢的

索引可以加快資料查詢,但是也降低增刪的速度
'原因是:我們在增刪的時候索引也要發生改變,需要重新新增索引,所以速度會相對比較慢'

聚集索引:
	主鍵,也叫主鍵索引
輔助索引:
	非主鍵索引都被稱為輔助索引

索引資料結構

索引底層其實是樹結構>>>:樹是計算機底層的資料結構
    
樹有很多種型別
	二叉樹/b樹/b+樹/B*樹......

二叉樹
	二叉樹裡面還可以細分很多領域
    二叉意味著每個節點最大隻能分兩個子節點

B樹
	所有的節點都可以存放完整的資料
 
B+\*樹
	只有葉子節點才會存放真正的資料,其他節點只存放索引資料
    B+葉子節點增加了指向其他葉子節點的指標
    B*葉子節點和枝葉節點都有指向其他節點的指標
 
輔助索引在查詢資料的時候最後還是需要藉助於聚集索引
	輔助索引葉子節點存放的是資料的主鍵值

有時候就算採用索引欄位查詢資料,也可能不會走索引
如:沒有查詢條件,或者查詢條件沒有建立索引
   查詢結果集是原表中的大部分資料,應該是30%以上
   查詢條件使用函式在索引列上,或者對索引列進行運算,運算包括(+,-,*,/,! 等) 
   隱式轉換導致索引失效

慢查詢優化

explain	SQL語句之前使用返回等級
1.index		最差的情況,儘量避免
2.range
3.ref
4.eq_ref
5.const
6.system
7.null

前端之HTML

前端三劍客:
	HTML
  	CSS
	JS

HTTP協議

1.四大特性
	a.基於請求響應
 	b.基於TCP/IP作用於應用層之上的協議
 	c.無狀態
	d.無/短連線
2.資料格式
	1.請求格式
    	請求首行
       請求頭
    	換行
       請求體
   	2.相應格式
    	響應首行
       響應頭
    	換行
       響應體
3.響應狀態碼
1XX:用來標識服務端已經收到你的請求正在處理,客戶端可以繼續傳送或者等待
2XX:200 OK標識:請求成功,服務端傳送了對應的響應
3XX:重定向
4XX:403沒有許可權,404訪問的資源不存在
5XX:服務端內部錯誤

HTML概覽

超文字標記語言

1.HTML註釋語法:
    <!--註釋-->
2.HTML文件結構
	<html>		固定格式 html包裹
    	<head>主要放跟瀏覽器互動的配置</head>
       <body>主要放給使用者檢視的內容</body>
    </html>
3.HTML標籤分類
單標籤
<img/>	不需要在寫一個結束標籤
<h1></h1> 需要寫一個結束的標籤

head內常見標籤

1.title網頁標題
2.meta定義網頁源資訊(很多配置)
	<meta name="keywords" content="查詢關鍵字">
 	<meta name="description" content="網頁簡介">
3.style內建支援編寫css程式碼
4.link引入外部css檔案
5.script試吃內部編寫js程式碼也可以引入外部js檔案

body內基本標籤

1.標題系列
	h1~h6
2.段落標籤
	<p></p>
 3.其他標籤
    u	下劃線
    i	斜體
    s	刪除線
    b	加粗
標籤的分類二:
	行內標籤: u  i  s   b
    塊兒級標籤: h系列,p

常見符號

1.&nbsp:		空格
2.&gt:			大於
3.&lt:			小於
4.&amp:			&符
5.&yen:			¥
6.&copy:		©
7.&reg			®

body內佈局標籤

div
	塊兒級標籤,佔一塊區域,基本上都是div佔位置,配合其他標籤使用
span
	行內標籤

body內常用標籤

a標籤	連線標籤
	主要用來填寫網址的,具備跳轉功能
img標籤	圖片標籤
	src	可以填寫圖片的地址
    titile	滑鼠懸浮在圖片上面上面顯示的文字
    alt		圖片載入失敗的提示資訊

列表標籤

無序列表
<ul>
	<li></li>
<ul>
有序列表
<ol>
	<li></li>
<ol>

表格標籤

	<body>
        <table>
            <thead>
                <tr>  # 一個tr標籤就表示一行
                    <th>編號</th>
                    <th>姓名</th>
                    <th>年齡</th>
                </tr> tr標籤結束
            </thead>
            <tbody>
                <tr>
                    <td>1</td> #td主要用於表達資料
                    <td>jason</td>
                    <td>18</td>
                </tr>
            	</tbody>
        	</table>
		</body>

表單標籤

可以獲取到使用者的資料併發送給服務端
form標籤
	action	控制資料的提交地址
 	method	控制資料的提交方法
type標籤
	type屬性
   text		普通文字
	password	密碼
   date			日期選項
	email		郵箱
   checkbox		多選
	radio		單選
   file			檔案
	submit		觸發提交動作
   reset		充值表單內容
	button		暫無任何功能
 
select標籤	下拉框
	option	下拉框內的一個個選項
textarea標籤
	獲取一段文字
1.使用者獲取使用者資料的標籤至少應該含有name屬性
	name屬性相當於字典的鍵
使用者輸入的資料都會被儲存的標籤value屬性中
	value屬性相當於字典的值
2.如果不需要使用者填寫資料,只需要選擇,那麼我們需要自己填寫value
<body>
    <form action="">
        <input type="radio" name="gender" value="male" checked>男性
        <input type="radio" name="gender" value="female">女性
    </form>
</body>
預設的是男性
3.標籤的屬性如何屬性值相當,那麼簡寫
4.下拉框和檔案上傳可以複選
	<input type="file" multiple>
   	<select name="" id="" multiple>

CSS層疊樣式

1.主要用來條件html標籤的各種樣式
"""
頁表上面都是由HTML構成的,頁面上有很多相同的HTML標籤,相同的標籤需要區分開
"""
標籤的兩大重要屬性:
    1.class屬性
    	分門別類
    2.id屬性
    	精確查詢,一個HTML頁面,id是不能夠重複的

CSS學習預備知識

1.css語法結構
	選擇器	{
	樣式名:樣式值
	}
2.css註釋語法
/*註釋內容*/
3.因數css的多種方式
1.head內style內部編寫
2.link標籤引入

CSS基本選擇器

1.標籤選擇器
2.類選擇器
3.id選擇器
4.通用選擇器
組合選擇器
1.後代選擇器(空格)
2.兒子選擇器(>)
3.毗鄰選擇器(+)
4.弟弟選擇自(~)
多個選擇器合併查詢
屬性選擇器
偽類選擇器
"a標籤針對沒有點選過的網址,預設是藍色的,點選過則為姿色"
偽類選擇器可以調整a標籤的網址跳轉顏色
偽元素選擇器
可以給文字新增css動態內容無法被複制

CSS樣式調節

字型樣式
font-siez		字型大小
font-weight		 字型粗細
text-align:center		文字居中
text-decoration:none	用於取消a標籤下劃線
text-indent:32px		首行縮排
 
背景屬性
background

CSS邊框

border:新增邊框的粗細,邊框的樣式,顏色
none		無邊框
dotted		點狀虛線邊框
deshed		矩形虛線邊框
solid		實線邊框
畫圓
border-radius:50%
步驟:
    設定塊兒級標籤的高度和寬度要一致
    設定邊框
    border-radius設定為50%就可以

display

徹徹底底的隱藏標籤(頁面不會顯示,也不會保留標籤的位置)

盒子模型

margin: 用於控制元素與元素之間的距離;margin的最基本用途就是控制元素周圍空間的間隔,從視覺角度上達到相互隔開的目的。
padding: 用於控制內容與邊框之間的距離;
Border(邊框): 圍繞在內邊距和內容外的邊框。
Content(內容): 盒子的內容,顯示文字和影象。

浮動

浮動就是用來做頁面佈局的,將字標籤浮動於父標籤之上,這樣就可以將塊兒級標籤變成行內標籤,直接橫向在父標籤內展示

浮動的關鍵字:
	float:left/rigrh		向左或者右浮動
浮動帶來的影響
	浮動的元素是脫離文章文件流的,會造成父標籤坍塌
解決浮動的辦法:
	先提前寫好樣式類
    .clearfix:after {
        content:'':
        display:block;
        clear:both;
    }
誰塌陷了,就給誰新增clearfix樣式類就可以了

溢位

溢位指的是圖片的大小超過了塊兒級標籤的大小,可以調整溢位屬性

定位

針對定位有4種狀態:
    1.static靜態(標籤預設的狀態,無法定位移動)
    2.reletive相對定位(基於標籤原來的位置)
    3.adsolute絕對定位(基於某個定位過的父標籤做定位)
    4.fixed固定定位(基於瀏覽器視窗固定不動)

Z-index

設定物件的層疊順序
1.z-index值表示誰壓著誰,數值大的壓蓋住數值小的
2.只有定位了的元素,才能有z-index,也就說不管相對定位還是固定定位都可以使用z-index
3.z-index值沒有單位,就是一個正整數,預設的z-index的值為0
4.從父現象