mysql 基礎學習筆記

目錄

查詢:

DML語言:插入,刪除,更新

DDL語言:數據定義語言

數據類型介紹:

TCL語言:事務控制語言

視圖

變量,存儲過程和函數,流程控制結構



查詢:

distinct 去重

  

sql中的不等於:!= 和<>

% 通配符匹配任意多個,_ 匹配一個字符。

between and 帶等號

in 關鍵字:

排序查詢 order by

常見函數:

分組函數:

分組函數:

having 關鍵字用於分組 group by後的刪選

連接查詢:

1.笛卡爾積:

注:在sql中l外連接包括左連接(left join )和右連接(right join),全外連接(full join),等值連接(inner join)又叫內連接。

基本定義:
  left join (左連接):返回包括左表中的所有記錄和右表中連接字段相等的記錄。
  right join (右連接):返回包括右表中的所有記錄和左表中連接字段相等的記錄。
  inner join (等值連接或者叫內連接):只返回兩個表中連接字段相等的行。
  full join (全外連接):返回左右表中所有的記錄和左右表中連接字段相等的記錄。
 

非等值連接:不用值相等去查找,也可能沒有相同列。

 

自連接:同一張表找了兩遍,起了別名e用於區分

內連接,外連接實際上都是在笛卡爾積(join)的基礎上對記錄進行篩選。

等值連接和非等值連接:這兩者同時包含在內連接和外連接中,因爲內連接和外連接都是需要連接條件的,條件爲=則爲等值連接,反之爲非等值連接。

自然連接:等值連接的一種,使用natural join後面可以不使用on接查詢條件,默認會將關聯表中的相同字段進行比較,查詢出的結果相同的字段會去重(值必須相等)。

內連接:使用inner join和join連接都行,重點是要有查詢條件,條件使用on或者where引導查詢都行,查詢出的結果爲兩表都匹配的記錄。

外連接:分爲左外連接,右外連接,要有查詢條件,條件只能使用on引導查詢。左外連接查詢出的結果除了兩表都匹配的記錄外,還會查詢出左表的其餘記錄,同時右表對應記錄置爲null,左外連接則相反。

sql 99 語法:

非等值連接:

外連接:

左連接:

交叉連接就是笛卡爾積:

子查詢:

標量子查詢

列子查詢:any是任意一個,即隨便哪個都行,all是所有。

等價於:

行子查詢:

等價於:

放在select後的子查詢:

1。原始方法

三:from 後面的子查詢,子查詢一般返回一個表

四:放在exists後面的子查詢(相關子查詢)

exists返回一個布爾值。

分頁查詢:

聯合查詢:union

union可以在不同表上使用,這個是優勢,侷限是查詢的內容必須相同。

DML語言:插入,刪除,更新

插入:

兩種方式對比:

修改語句:

刪除語句:

DDL語言:數據定義語言

表的管理:

表的刪除:

表的複製:

ddl常見約束:

面試題:主鍵和唯一的對比:組合是指多個列組合成一個。

外鍵的特點:爲了保證數據一致性,其實是從表必須滿足主表的約束。即這一列的類型必須和主表一致或者兼容。

修改表時添加約束:

修改表時刪除約束:

標識列:自增長列

 

數據類型介紹:

小數:

字符型:

char定義後,輸入數據的長度固定。

日期型:

TCL語言:事務控制語言

事務:

在commit之前,只是把數據保存到了內存,這時可以rollback取消。

事務的隔離性

不可重複讀:一個事物修改了一個字段,在commit之前,被另一個事務讀取,commit之後,另一個事務讀到的是commit後的字段,這個叫不可重複讀。

幻讀:一個事務操作過程中,被另一個事務插入數據,導致更新操作實際改變的數據偏多。

串行化之後,會導致其他事務操作被阻塞,所以實現了最高級別隔離。

delete支持回滾,trancate不支持。

 

視圖

舉個栗子,領導來某學校視察跳舞,學校臨時從每個班抽幾個人組建舞蹈班,這個舞蹈班就是視圖。領導走了之後就解散了。並不真實存在。領導二次來,就可以直接再用這些同學。普通班就是表。

視圖是存儲在數據庫中的查詢的SQL 語句,它主要出於兩種原因:安全原因, 視圖可以隱藏一些數據,如:社會保險基金錶,可以用視圖只顯示姓名,地址,而不顯示社會保險號和工資數等,另一原因是可使複雜的查詢易於理解和使用。這個視圖就像一個“窗口”,從中只能看到你想看的數據列。這意味着你可以在這個視圖上使用SELECT *,而你看到的將是你在視圖定義裏給出的那些數據列:

 

視圖的修改:

視圖的更新:修改視圖的數據,有的能實現原始表更新,有的不能。注意視圖的權限。

變量,存儲過程和函數,流程控制結構

變量:

會話變量:

自定義變量:

局部變量:

存儲過程和函數:

帶in模式參數的存儲過程:

帶out的存儲過程:

帶inout模式的存儲過程:

刪除存儲過程:

desc是錯誤的。

函數:

函數的查看和刪除:

流程控制結構:

 

 

 

 

 

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章