當前位置:首頁 » 編程語言 » sql修改視圖數據

sql修改視圖數據

發布時間: 2022-05-11 08:47:46

A. sql中視圖的創建。修改,刪除

1、創建視圖

CREATE [OR REPLACE] VIEW 視圖名(列1,列2...)

AS SELECT (列1,列2...)

FROM ...;

[WITH [CASCADED|LOCAL] CHECK OPTION]

(1)sql修改視圖數據擴展閱讀:

SQL語言基本上獨立於資料庫本身、使用的機器、網路、操作系統,基於SQL的DBMS產品可以運行在從個人機、工作站到基於區域網、小型機和大型機的各種計算機系統上,具有良好的可移植性。

可以看出標准化的工作是很有意義的。早在1987年就有些有識之士預測SQL的標准化是「一場革命」,是「關系資料庫管理系統的轉折點」。

資料庫和各種產品都使用SQL作為共同的數據存取語言和標準的介面,使不同資料庫系統之間的互操作有了共同的基礎,進而實現異構機、各種操作環境的共享與移植。

參考資料:網路-SQL

B. sql 修改視圖

資料庫中視圖的值只能通過 select語句從一個或多個表中查詢出來的結果,並不能修改值。需要修改值還得到視圖引用的表中去改

C. SQL資料庫里是否可以通過視圖更改表中的數據

對於沒有復雜處理的 單表 視圖, 是可以 UPDATE 的。

例如這樣的視圖:

CREATE VIEW v_1 AS SELECT * FROM 某表。

但是假如你的視圖, 是單表的, 帶統計的, 那恐怕是不能 直接 UPDATE 了。

例如這樣的視圖:

CREATE VIEW v_2 AS SELECT id, COUNT(*) as num FROM 某表--前面是單表的, 下面說多表的 ---

對於2張表的,假如你的查詢裡面, 這2張表是 一對一的關系。 且視圖裡面, 包含了主鍵,那麼是可以 UPDATE 的。

例如下面這樣的視圖:

CREATE VIEW temp_view AS

SELECT

t1.name AS t1Name,

t1.age AS t1Age,

t2.name AS t2Name,

t2.age AS t2Age

FROM

t1, t2

WHERE

t1.name = t2.name

然後直接更新視圖。

UPDATE temp_view SET t1Age = t2Age;

完整的例子, 可參考:

http://hi..com/wangqing999/blog/item/767be28f634ddb00c8fc7aba.html

但是假如你的視圖裡面的 2個表, 不是一一對應的。

或者是帶了 SUM / COUNT 等統計函數的, 那麼可能是沒辦法更新了。

D. 利用sql語句如何更新視圖

更新視圖有以下三條規則:
(1)
若視圖是基於多個表使用聯接操作而導出的,那麼對這個視圖執行更新操作時,每次只能影響其中的一個表。
(2)
若視圖導出時包含有分組和聚合操作,則不允許對這個視圖執行更新操作。
(3)
若視圖是從一個表經選擇、投影而導出的,並在視圖中包含了表的主鍵字或某個候選鍵,這類視圖稱為『行列子集視圖』。對這類視圖可執行更新操作。
視圖只有滿足下列條件才可更新:
1、select語句在選擇列表中沒有聚合函數,也不包含TOP,GROUP
BY,UNION(除非視圖是分區視圖)或DISTINCT子句。聚合函數可以用在FROM子句的子查詢中,只要不修改函數返回的值。
2、select語句的選擇列表中沒有派生列。派生列是由任何非簡單列表達式(使用函數、加法或減法運算符等)所構成的結果集列。
3、select語句中的FROM子句至少引用一個表。select語句不能只包含非表格格式的表達式(即不是從表派生出的表達式)。
4、INSERT,UPDATE和DELETE語句在引用可更新視圖之前,也必須如上述條件指定的那樣滿足某些限制條件。只有當視圖可更新,並且所編寫的UPDATE或INSERT語句只修改視圖的FROM子句引用的一個基表中的數據時,UPDATE和INSERT語句才能引用視圖。
只有當視圖在其FROM子句中只引用一個表時,DELETE語句才能引用可更新的視圖。

E. SQL 資料庫里是否可以通過視圖更改表中的數據

有的可以,有的不可以,視圖與表是兩個概念,UPDATE視圖,實際就是修改了視圖對應的表中的數據,自己可以測試一下!但如果視圖中沒有表(因為有的視圖並不一定有表),則不能更新!比如:
create view ass (a, b, c) AS select 0, 's', 0 就不依賴表,當然不能更新,如果在生成視圖的SQL語句中有UNION關鍵字時,也不能更新,其它很多視圖是可以更新和修改的,修改的列是對應的表中的列。

F. sql中修改了基本表的數據視圖也會自動隨之修改嗎

本期我們用 MySQL 提供的 DBUG 工具來研究 MySQL 的 SQL 處理流程。

起手先造個實例

本次實驗中,我們藉助了 MySQL 的 DBUG 包,來讓 MySQL 將處理過程暴露出來。MySQL 中類似的技術還有不少,比如 performance_schema,OPTIMIZER_TRACE 等等。

這些技術將 MySQL 的不同方向的信息暴露出來,方便大家理解其中機制。

G. sql中如果修改了基本表的數據,視圖也會自動隨之修改嗎

如果改動了基本表,視圖來源於這個基本表,那視圖給呈現的結果也會隨之發生變化。因為視圖是一個虛擬表,其內容有查詢定義。視圖中的數據是由一張或多張表中的數據組成的。

view還是materialized view,如果是前者肯定會修改,因為view只是個sql,查詢的還是基本表,後者需要定製刷新,才會自動修改。

(7)sql修改視圖數據擴展閱讀

SQL語言主要是高級的非過程化編程語言,允許用戶在高層數據結構上工作。它不要求用戶指定對數據的存放方法,也不需要用戶了解具體的數據存放方式。

具有完全不同底層結構的不同資料庫系統,可以使用相同的結構化查詢語言作為數據輸入與管理的介面。SQL語言語句可以嵌套,這使他具有極大的靈活性和強大的功能。

H. sql 資料庫中可以用創建好的視圖來修改表的內容嗎

只要滿足下列條件,即可通過視圖修改基礎基表的數據:

1、任何修改(包括 UPDATE、INSERT 和 DELETE 語句)都只能引用一個基表的列。

2、視圖中被修改的列必須直接引用表列中的基礎數據。不能通過任何其他方式對這些列進行派生,如通過以下方式:
1)聚合函數:AVG、COUNT、SUM、MIN、MAX、GROUPING、STDEV、STDEVP、VAR 和 VARP。
2)計算。不能從使用其他列的表達式中計算該列。使用集合運算符 UNION、UNION ALL、CROSSJOIN、EXCEPT 和 INTERSECT 形成的列將計入計算結果,且不可更新。

3、被修改的列不受 GROUP BY、HAVING 或 DISTINCT 子句的影響。

4、TOP 在視圖的 select_statement 中的任何位置都不會與 WITH CHECK OPTION 子句一起使用。

上述限制適用於視圖的 FROM 子句中的任何子查詢,就像其應用於視圖本身一樣。通常情況下,資料庫引擎必須能夠明確跟蹤從視圖定義到一個基表的修改

I. 對sql視圖進行修改時是否會改變基本數據表數據

會的。

視圖只是資料庫在磁碟上的一個縮小范圍的邏輯影像,任何修改都會修改到基本數據表的。

熱點內容
oracle存儲過程使用變數 發布:2025-05-11 00:10:07 瀏覽:739
用安卓下載蘋果的軟體叫什麼 發布:2025-05-11 00:08:22 瀏覽:113
斷牙腳本 發布:2025-05-11 00:04:21 瀏覽:68
sim卡的密碼怎麼設置密碼 發布:2025-05-10 23:41:09 瀏覽:716
自定義緩存註解 發布:2025-05-10 23:40:06 瀏覽:118
sqltext類型長度 發布:2025-05-10 23:30:21 瀏覽:979
圖形AI演算法 發布:2025-05-10 23:30:19 瀏覽:183
java上傳的文件在哪裡 發布:2025-05-10 23:30:06 瀏覽:160
議長訪問台灣 發布:2025-05-10 23:22:46 瀏覽:434
啟動電機如何配置開關 發布:2025-05-10 23:21:21 瀏覽:960