期末總結(基礎)
(一)問題總結
期末了,同學們學習數據庫的情緒高漲,問題湧現,讓我們總結一下都出現了哪些問題呢?
- delete,remove,drop都是“刪除”分別在啥時候用呢?alter什麽時候用呢?
- DML,DCL,DDL都是啥?
- 5種連接我還是不懂。。。。。。
- 範式的概念根本看不懂啊。。。(暫未寫完)
- 。。。。。(歡迎添加)
(二)問題解決
1.delete,remove,drop都是“刪除”分別在啥時候用呢?alter什麽時候用呢?
想解決這個問題我們可以先查查F1
- DELETE只有一行簡單的解釋:從表中刪除行。
- REMOVE則出現在ALTER目錄下:
- DROP則有多個目錄:
那麽現在你有兩個選擇:1.背下來remove,drop,alter,delete它們都在什麽時候出現。
2.找到規律
有什麽規律呢?
先說delete,它最單純,它只負責刪除“行”(刪除數據)別的地方你不會見到他
再說drop,它最復雜,它負責刪除“東西”(刪除一些數據庫特有的“東西”),這裏我將東西加了引號,什麽意思?這裏的東西指數據庫的“庫”、“表”、“視圖”。。。。。。一些非實體且數據庫特有。(非實體:不是文件)
最後說 ALTER 和 REMOVE ,你可以將ALTER看成一個“高等級的”關鍵詞, REMOVE, ADD, MODIFY等是它的“附庸”關鍵詞
換個角度講,那去掉ALTER行不行呢?答案是不行,為什麽?我們的每一條語句都遵從一個最高原則:不能引起歧義.REMOVE, ADD, MODIFY這些關鍵詞只作用與(文件,數據庫的某些屬性)這些往往都是可能和其他數據庫混淆的,必須有一個關鍵詞來標識我要對哪個數據庫ADD,對哪個數據庫REMOVE......所以ALTER出現在這些具體操作前是必須的很有必要的.
2.DML,DCL,DDL都是啥?
先看看它們的英文全拼:DML:data manipulation(操作) language,DCL:Data Control Language,DDL:data definition(定義) language
它們都有一個Data開頭language結尾,所以它們各自代表一類操作數據(Data)的語言(language),其中我們常用的是DDL和DML,DCL幾乎不會用到,下面我們看看它們各自都包含哪些具體的關鍵詞.
DDL:
DML:
從這裏我們也能看出(DROP和ALTER)都和DELETE不是一個類型的關鍵詞.
最後還有DCL:(不常用也只能先記住)
跟著數據庫學英語:manipulation(操作)
3.五種連接
先來了解一下"連接"的樣子:
1 SELECT * FROM XS *** JOIN JY ON XS.借書證號 = JY.借書證號
簡單解釋一下這句話,這句話意思是:以***這種方式連接兩個表,返回兩個表的所有列(區分XS,JY的即若兩表都存在的列也會輸出成兩列)
"***"三個星號省略的是連接方法,都有哪些連接方法呢?
ps:我接下來將用我們最熟悉的XS(學生信息表),JY(借閱信息表)為例來說明以下三種連接
先讓我們看看兩張表XS,JY原來是什麽樣的:
兩個表的連接大類分可以分為三大類:1.內連接(重要:自然連接,數據庫默認連接)2.外連接3.交叉連接.這其中最簡單的是交叉連接,我們先說交叉連接
1.交叉連接(cross join):重點:(沒有代碼示例中的ON及以後的代碼)
最粗暴的一種連接方式,將A表的每一個數據與B表的每一個數據"懟"在一起,不太能想象出來那個情形????
下面看一下交叉後的結果吧:
和你想的一樣麽?
XS表的第一行王娟的記錄與JY表的所有記錄來了個依次連接,這張新連接的表有99行!!(9×11)XS表有9行JY表有11行,現在你理解什麽是交叉連接了麽?
2.內連接(inner join):內連接的小名有很多:自然連接,數據庫默認連接,這些一定熟記,內連接相比其他連接的特點就是(短)它往往行數最少
在A表與B表同時滿足條件時它才會將兩行記錄連接在一起.我們先看一下結果再來仔細分析.
可以看出這張表中以趙朋中為首的不借書黨沒有出現在連接表中,why?因為我的要求是XS.借書證號 = JY.借書證號,必須兩張表裏都有的借書證號才能連接
3.外連接(outer join):外連接分為左外連接,右外連接,全連接
左右連接比較粗暴(沒有交叉連接粗暴→_→)所以先講這兩個:
左(右)連接搞懂一個另一個就懂了
以左連接為例 : 首先, 左表全部輸出, 再檢查符合條件的借書證號在右表裏是否存在,若存在則連接並輸出,不存在用NULL補全
我們來看看實際情況:
王娟的記錄在左邊有,而且借了了6次書,所以在新表裏她的記錄出現了6次,趙朋中為首的不借書黨也出現了,但是右邊是NULL,因為他們沒有借過書.
那右連接你能想到是什麽樣的嗎?
可以翻到上面看一下XS,JY表,依據這兩張表自己想一下,再看答案
↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓答案在下面↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓答案在下面↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓答案在下面↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓答案在下面↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓答案在下面↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓答案在下面↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓答案在下面↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓答案在下面↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
今天2018-06-18 22:46:40太晚了,明天繼續更新.....
動作描述 | 使用聚集索引 | 使用非聚集索引 |
列經常被分組排序 | 應 | 應 |
返回某範圍內的數據 | 應 | 不應 |
一個或極少不同值 | 不應 | 不應 |
小數目的不同值 | 應 | 不應 |
大數目的不同值 | 不應 | 應 |
頻繁更新的列 | 不應 | 應 |
外鍵列 | 應 | 應 |
主鍵列 | 應 | 應 |
頻繁修改索引列 | 不應 | 應 |
期末總結(基礎)