您好,登錄后才能下訂單哦!
視圖:
視圖是用于包裝sql查詢語句的,有時候一條查詢語句可能要寫幾十行,如果每次給服務器都要發送這么長的查詢語句不太好,而且每次都要寫這么長的語句也比較麻煩和消耗時間,所以視圖就是用來解決這種問題的,視圖將查詢語句包裝成一張表。所以視圖又稱為偽表、虛擬表,因為其實使用視圖時和使用表差不多。
創建視圖:
視圖關鍵字是VIEW。
代碼示例:
視圖有三種引擎MERGE、TEMPTABLE、UNDEFINED:
一般情況下大多數都是使用MERGE引擎,UNDEFINED引擎是mysql的一個算法引擎。
代碼示例:
修改視圖:
修改視圖使用修改關鍵字就可以了,跟修改表一樣,只不過這張表里的數據是一條sql查詢語句。
代碼示例:
刪除視圖:
刪除視圖和刪除表格一樣用DROOP刪除。
代碼示例:
表格設計:
設計表格時在多方面考慮,并且表格設計下來后一般是不進行更改的,所以設計表格的時候就要思考,如何設計表格以后不會出改動表結構的情況,并且設計的表格需要有彈性,能夠適應一些可能會出現的情況。
錯誤的表格設計方式示例:
上圖設計錯誤的地方有:1.不應該使用自動編號 2.性別不應該使用Boolean類型 3.電話號碼不應該使用int類型 4.愛好不應該設計在此表中
問題1:使用int類型自動編號的話,萬一哪一天數據量積累到一定程度int類型不夠用了怎么辦?一個系統會運作多久你不得而知,萬一運作很多年積累的數據量可能會超出int類型能夠存儲的范圍,所以在公司里開發不應該使用自動編號,可以使用varchar類型。
問題2:Boolean類型只有兩個值true和false,雖然性別看上去只有男和女兩個性別,但是萬一需要一個保密的選項或者需要其他選項的情況呢?所以應該使用varchar類型會比較好一些,即便是使用枚舉類型也不是太好,因為枚舉類型也是定死了選項。
問題3:雖然國內的電話號碼普遍是11位,但是萬一需要存儲國外的電話號碼或者特別行政區的電話號碼和座機號碼呢?所以不能使用int類型,應該使用varchar類型。
問題4:一個人的愛好可以有很多的,如果所有的愛好都存儲在一個字段里,需要修改、刪除、更改某個愛好的時候無法單個的去操作。應該把愛好單獨放在另一個表里,然后與學生這個表形成對應關系,這樣才能更好的操作數據。
正確的表格設計方式示例:
設計思想
1.如何去設計表
1.必須有主鍵
2.每一行要能區分開來
3.一個列里面不能含有多種值
4.多用字符串類型
5.在表格設計的時候不要使用大數據類型
6.不能有重復值出現,其中一張表不能重復其他表格里已經存在的數據
2.我們怎么把業務形成表
一對多 一個主鍵對多個外鍵
一對一 主鍵對主鍵
多對多 需要三張表來維護
例如
一個人可以學習多門課程
一門課程可以給多個學生學習
一個角色可以有很多功能
一個功能可以分配到很多個角色
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。