SQL 關聯兩個表的視圖總結


視圖就是一條select查詢語句,是一張虛擬表。

table a  , table b  以表a基表(a LEFT  JOIN b) 

1.1 當update view時 更新view中表b字段並且表b中有這條記錄,可執行,並且b表隨之改變。

    當update view時 更新view中表a字段表a中有這條記錄,可執行,並且a表隨之改變。

    當update view時 更新view中表a和表b,不可執行。

總結:更新view時 只能更新單一表字段並且表中有這條記錄,對應表隨之改變。

1.2 當update 表a時 更新表a中view對應的字段時,可執行,並且view隨之改變。

    當update 表b時 更新表b中view對應的字段時,可執行,並且view隨之改變。

總結:更新相關聯的表時,view中對應的字段隨之改變。

2.1 當delete view時,不可執行。

總結:刪除view中某個字段時,會改變兩個表的字段,所以不可執行。

2.2 當delete 表a時,可執行,view中的記錄不會刪掉,只是與表a相對應的字段為空值。

  當delete 表b時,可執行,view中的記錄不會刪掉,只是與表b相對應的字段為空值。

總結:刪除相關聯表時,view中相對應的字段為空值。

3.1當insert view時,插入view中表a相對應的字段,可執行,並且a表隨之插入。

 當insert view時,插入view中表b相對應的字段,可執行,並且b表隨之插入。

  當insert view時,插入view中表a和表b相對應的字段,不可執行。

總結:插入view時,只能插入單一表相對應的字段,對應表也隨之插入

3.2 當insert 表a時,可執行,如果滿足視圖on條件時,view隨之插入相應的新紀錄,否則,view不會隨之插入相應的新紀錄。

  當insert 表b時,可執行,如果滿足視圖on條件時,view隨之插入相應的新紀錄,否則,view不會隨之插入相應的新紀錄。

總結:插入相關聯表時,只要滿足創建view時的on條件,view隨之插入新紀錄。

 

根據以上實驗結果,表的update,insert,delete都可以執行,只要滿足創建view時的on條件,view也會隨之update,insert,delete。

關聯一個表的view,view的update,insert,delete都可以執行,表也會隨之update,insert,delete。

關聯多表的view,view的update,insert, 只有update,insert其中一個表的字段時可執行,這個表也隨之update,insert;view的delete,不可執行。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM