從頭到尾寫SQL 一

2021-07-07 03:01:17 字數 1797 閱讀 2237

大二的時候學長說,要學東西真的要從頭到尾寫到部落格上,現在作為大五老學渣來看,真的好有道理。

那就從這個貼開始吧,寫乙個sql的系列。

現在來看,怎樣能把計算機內的各種資料儲存在一起並且將之分類呢?資料庫提供了很好的解決辦法,廣義上資料庫就是存放資料的倉庫,便於我們查詢歸納。當資料越來越多時,你會發現使用資料庫是必須的選擇。

雖然將資料放入了倉庫中,可是各種資料不能雜亂無章吧,說到這裡,真覺得**座是個完美的星座,哈哈,因為建造乙個完美的資料庫,需要將各種型別的資料區分開,這難道不正符合了**座麼,楊蔓蔓看到肯定又會笑我了。。言歸正傳,table即表,是資料庫下面的存放單元,存放著各種各樣的資料,比如person表,fish表~

同樣是人,當然也有區分,比如身高,體重,顏值

身高175

體重70

顏值爆表

這樣是不是很清晰~

所以列是表下面的乙個單元,用來描述資料的特徵。有時候列也叫做字段,上面的身高,體重,顏值,都可以稱為字段。那175、70、爆表這些就是對應欄位的值,也就是基本資料。

仔細想想,這些資料是有規律的組織在一起的,那這些資料的格式型別也是需要規定好的。資料型別規定了乙個列裡面可以是什麼型別的資料,比如身高字段裡面只接受儲存數字型別的資料~

上面的資料,比如175、70、爆表等,簡單地描述了乙個人得特徵。這些資料,可以從邏輯上歸為橫向的資料,這一套橫向的資料就稱為記錄。

假如一張表中好多條記錄,好比一張person表中,好多套描述各種人得資料,那麼問題來了,怎麼將他們區分開呢,姓名也有重複的時候,不是嗎,所以給這些記錄增加乙個字段,能夠唯一標示代表這條資料,同時保證不會重複,那麼就叫做主鍵。一般主鍵用一串數字代表,一張表可以沒有主鍵,可是最好是要有主鍵~

當使用資料庫的查詢功能時,比如想查詢顏值爆表的記錄,我需要挨個逐條遍歷一遍嗎。。太費勁了,可不可以事先準備好呢,可不可以,先按照顏值高低將這些資料排序呢,真相只有乙個,那就是索引,哈哈。索引相當於漢字字典裡面的,按照筆畫查詢的目錄,說到這懷疑大家是不是已經忘了小學時候,每個課桌上都擺著的那一本新華字典了。。

索引是一把雙刃劍,缺點是它佔據儲存空間,比如漢字字典裡面,有了索引,書頁數不是變多了麼。。還有,索引會減慢插入和刪除的速度,因為每次插入和刪除都需要額外更新索引呢。但是索引的優點就是增加了查詢速度,比如我實現按筆畫排好名字的順序,那麼我查詢筆畫是13畫的名字時,只需要按索引查到14就不用再往下查了,這樣速度確實很快呀,哈哈。

看下面一張表

商品編號

規格生產廠家

廠家位址

廠家**

001優質

金星肉聯廠

大光路0533-******

002優質金星肉聯廠

大光路0533-******

003優質金星肉聯廠

大光路0533-******

生產廠家都是金星肉聯廠呢。。假如儲存好幾百商品,我需要寫好幾百這個廠家名稱,位址,**。。太多重複了,假如以後更改的話。。我要改好幾百遍?

廠家編號

廠家名稱

廠家位址

101金星肉聯

大光路102

皇家肉聯

環泰路 然後再來看之前那張表

商品編號

規格生產廠家編號

001優質

101002

優質101

003優質

101 看,我只需要填寫廠家編號101,是不是簡單多了,同時更改廠家位址的時候,我只需要更新一下廠家表裡面的內容,啊哈,ok。這就是表關聯,一條記錄中擁有其他表記錄的主鍵,根據這條主鍵,可以確定另外一條記錄,這樣資料冗餘很好的避免了。 上表中,生產廠家編號,叫做外來鍵,即儲存其他表主鍵的字段。

發現寫到現在才剛寫到sql這個字

從頭到尾寫SQL 三

之前操作的都是資料庫的架構,把架子搭好後便可以填充資料了,運算元據,無非增刪改查 insert into person fname,fage values tom 18 向person表中插入一條記錄,fname,fage分別為tom,18 insert 語句中字段的順序是可以任意的,並且不需要將所...

從頭到尾列印鍊錶

輸入乙個鍊錶的頭節點,從尾到頭反過來返回每個節點的值 用陣列返回 題目描述了乙個先進後出的結構,很容易想到棧,進而想到遞迴,遞迴也可以實現先進後出,只要將本節點的操作置於遞迴之後即可。棧 definition for singly linked list.public class listnode ...

從頭到尾列印鍊錶

牛客網上面的乙個題 題目描述 輸入乙個鍊錶,按鍊錶從尾到頭的順序返回乙個arraylist。struct listnode class solution for vector reverse iterator riter list.rbegin riter list.rend riter retur...