在某些較複雜的系統中,常會遇到單一頁面因為要顯示的資料過多,SQL語法都寫的很長和SQL重複的狀況
在維護層面來看,有時候都會忘記當初規則是怎麼制定的

這時候就可以利用DB的View來解決
View是一種存在於記憶體的虛擬表,開發者可以利用SQL指令產生出特定邏輯的View,
View的內容直接受到原始表格的影響,View可以幫助程式方便查詢資料且保障資料的一致性。

建立View:

CREATE VIEW new_view AS 
    SELECT a.id,b.name 
    FROM a LEFT JOIN b ON a.id = b.id 
    ORDER BY b.name;

這時候你就會發現資料庫中多了一張new_view的表,裡面的結果就是建view時所下的sql query出來的值

修改View:

ALTER VIEW new_view AS 
    SELECT a.id,b.name 
    FROM a LEFT JOIN b ON a.id = b.id 
    ORDER BY b.name;

注意:View是會拖慢資料庫的效能,但是以開發者的角度來講是非常方便的,所以中間的取捨必須考慮到整體的狀況

Categories: MySQL