天天看點

Mysql學習小結多表查詢合并查詢内連接配接和外連接配接事務隔離級别Mysql存儲類型小結

今天簡單的過了一遍mysql的主要知識點,下面做一個簡單小結

今天主要看了下面五個部分

  1. 多表查詢
  2. 合并查詢
  3. 内連接配接和外連接配接
  4. 事務隔離級别
  5. 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中事務隔離級别分為四種

  1. 讀未送出(Read uncommitted)
  2. 讀已送出(Read committed)
  3. 可重複度(Repeatable read)
  4. 可串行化(Serializable)

    圖截取至韓順平老師的課件。

    Mysql學習小結多表查詢合并查詢内連接配接和外連接配接事務隔離級别Mysql存儲類型小結

    事務的隔離級别可以由語句

    set session transaction isolation level (事務隔離級别)得到

    mysql 預設事務隔離級别是repeatable read ,這已經可以滿足大部分需求

    這些事務隔離級别是以四個标準衡量的,髒讀,不可重複讀,幻讀,加鎖讀。

髒讀:一個會話會讀取到另一個會話沒有送出(commit)的修改資料

不可重複讀:同一查詢在同一個事務中多次進行,由于其他送出事務所做的修改和删除,每次傳回不同的結果集,此時發生不可重複讀。

幻讀:同一查詢在同一個事務中多次進行,由于其他送出事務所做的插入操作,每次傳回不同的結果集,此時發生不可重複讀。

Mysql存儲類型

Mysql學習小結多表查詢合并查詢内連接配接和外連接配接事務隔離級别Mysql存儲類型小結

剛剛看,還沒有深入了解。不支援事務的存儲引擎查詢效率普遍高一些。

小結

最近因為項目開發需要使用資料庫,但是很多基本概念都不清楚,是以找了個視訊簡單過了一遍,讓腦子裡對整個mysql有個大緻的認識。填補一下空白,确實是學會了很多。很多認為很難的東西,其實看一下就懂了,并不難。