標籤:ar 資料 sp on 時間 bs 演算法 sql as
前期準備:
1、create table person # 假設這張表用來收錄所以有地球人的基本資料。
(ID bigint ,
Name varchar(16),
Country varchar(16));
2、create view Chinise # 這個視圖用於查詢所以有中國人的基本資料。
as
select ID,Name,Country from Person
where Country = ‘China‘;
3、尋找中國叫張三的人
select ID,Name,Country from Chinese where Name = ‘張三‘;
--------------------------------------------------------------------------------------------------------------------------------------------------------
方法 1、
合并演算法
這中演算法中、視圖的資料還是只儲存在表中、並沒有從表中分離出來;也就是說我們對 張三 的查詢會轉化為
select ID,Name,Country from Chinese where Name = ‘張三‘ and Country = ‘China‘;引擎會幫我們完成
條件的合并。合并演算法內部是一個映射關係,如果 view的第一行 對就table 的X 行,view的第二行對應table 的第y 行。
既然是一種映射對view第一行的修改也就是對 table 第X行的修改。delete時同理。
也就是說合并演算法支援對view 的 insert update delete select;(上文說的映射是 一對一映射)
然、
有些時候合并演算法是沒有辦法完成的、也就是說對view 的 insert update delete select;都會引發錯誤。
如:create view viewXXX as select Name ,count(*) from person group by Name;這樣就不存在一對一的映射了,也就不能用合并演算法了
方法 2、
暫存資料表演算法
就是把view 查詢出來的資料儲存到一張暫存資料表中、以後對view的操作就是對這張表的操作,哪怕是多個使用者也是一張表。引擎會在合適的時間內
更新這張表、
SQL Sever MYSQL 檢視實現的 2 種方式