今天簡單的過了一遍mysql的主要知識點,下面做一個簡單小結
今天主要看了下面五個部分
- 多表查詢
- 合并查詢
- 内連接配接和外連接配接
- 事務隔離級别
- Mysql 存儲類型
多表查詢
如果第一張表t1有M條記錄,第二張表t2有N條記錄。那麼select * from t1,t2;的多表查詢結果會得到M*N條記錄,結果是一個笛卡爾集。是以不做過濾的話,多表查詢的結果數量會快速增長。可以用相同的字段值進行過濾。
select * from t1,t2 where t1.No = t2.No;類似于這種形式。
合并查詢
合并查詢涉及到兩個關鍵字union 和union all。union 能夠去掉重複的記錄, union all不會去掉重複記錄。從菜鳥課程上抄一個例子
SELECT country FROM Websites
UNION
SELECT country FROM apps
ORDER BY country;
可以将兩個查詢結果合并在一起。
内連接配接和外連接配接
内連接配接涉及的基本文法是
select * from t1 inner join t2 on t1.no=t2.no
inner join 起到的作用有點類似于逗号 ,on 類似于 where
外連接配接分為左連接配接和右連接配接
左連接配接和右連接配接本質是一樣的
表示完全顯示左邊的表還是右邊的表
左連接配接是left join,右連接配接是 right join
事務隔離級别
這個詞聽過很多次了,但是一直不知道是什麼。今天終于有了一個簡單的認識。
mysql中事務隔離級别分為四種
- 讀未送出(Read uncommitted)
- 讀已送出(Read committed)
- 可重複度(Repeatable read)
-
可串行化(Serializable)
圖截取至韓順平老師的課件。
Mysql學習小結多表查詢合并查詢内連接配接和外連接配接事務隔離級别Mysql存儲類型小結 事務的隔離級别可以由語句
set session transaction isolation level (事務隔離級别)得到
mysql 預設事務隔離級别是repeatable read ,這已經可以滿足大部分需求
這些事務隔離級别是以四個标準衡量的,髒讀,不可重複讀,幻讀,加鎖讀。
髒讀:一個會話會讀取到另一個會話沒有送出(commit)的修改資料
不可重複讀:同一查詢在同一個事務中多次進行,由于其他送出事務所做的修改和删除,每次傳回不同的結果集,此時發生不可重複讀。
幻讀:同一查詢在同一個事務中多次進行,由于其他送出事務所做的插入操作,每次傳回不同的結果集,此時發生不可重複讀。
Mysql存儲類型
剛剛看,還沒有深入了解。不支援事務的存儲引擎查詢效率普遍高一些。
小結
最近因為項目開發需要使用資料庫,但是很多基本概念都不清楚,是以找了個視訊簡單過了一遍,讓腦子裡對整個mysql有個大緻的認識。填補一下空白,确實是學會了很多。很多認為很難的東西,其實看一下就懂了,并不難。