發表文章

目前顯示的是有「VIEW」標籤的文章

[SQL] 查詢語法基本介紹 Part 5 (視觀表 View)

基本介紹: 視觀表又稱檢視表,是一個虛擬的資料表。 視觀表本身並無儲存資料,只有定義資料,定義從那些資料表或檢視表挑出那些欄位或記錄。 雖然視觀表不是一個真正的資料表,是由SQL Command所產生。但是完全可以當成一般的資料表使用,可以新增、更新、刪除資料,但這些操作實際上是作用在其定義的來源資料表。 另一個角度來看,可以是將特定查詢的SQL Command以View的方式,儲存在資料庫裡。 在建立視觀表時,建議在名稱前方加上特定字串以供區別,如:VW_userinfo_taipei。 優點:隱藏/過濾原始資料,並簡化資料查詢。 達成邏輯資料獨立。 增加資料安全性。 簡化資料查詢。 簡化使用者觀點。 缺點:多一道建立過程,且沒有真正資料,所以有更多的操作限制。 執行效率差。 更多的操作限制。 增加管理的複雜度。 語法範例: 建立一個住在台北市民眾資料的視觀表 CREATE VIEW v_userinfo_taipei AS SELECT userinfo.uid, cname, address FROM userinfo, live, house WHERE userinfo.uid = live.uid AND live.hid = house.hid AND house.address LIKE = '台北市%' 注意!AS後面只能接一個SQL Command (巢狀/UNION ALL) 使用視觀表:與一般查詢資料表相同 --查詢住在台北市民眾資料的所有欄位 select * from v_userinfo_taipei --查詢住在台北市民眾資料共有幾筆 Select count(*) from v_userinfo_taipei 進階練習:查詢平均電話費大於300的費用 --先建立含有平均電話費的視觀表 create view vw_avg_fee as select tel, round(avg(fee),0) as avg_fee from bill group by tel --使用視觀表並篩選資料 select * from vw_avg_fee where avg_fee > 300 其他解法分享 (不使用VIEW的方...