當前位置:首頁 » 編程語言 » sql刪除視圖數據
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

sql刪除視圖數據

發布時間: 2023-01-05 17:59:20

A. sql語句中刪除視圖的命令是

sql中delete,drop
,truncate都代表刪除,但3者又有一些區別
1.
truncate和
delete只刪除數據不刪除表的結構(定義)
drop語句將刪除表的結構被依賴的約束(constrain),觸發器(trigger),索引(index);
依賴於該表的存儲過程/函數將保留,但是變為invalid狀態.
2.delete語句是dml,這個操作會放到rollback
segement中,事務提交之後才生效;如果有相應的trigger,執行的時候將被觸發.
truncate,drop是ddl,
操作立即生效,原數據不放到rollback
segment中,不能回滾.
操作不觸發trigger.
3.delete語句不影響表所佔用的extent,
高水線(high
watermark)保持原位置不動
顯然drop語句將表所佔用的空間全部釋放
truncate
語句預設情況下見空間釋放到
minextents個
extent,除非使用reuse
storage;
truncate會將高水線復位(回到最開始).
4.速度,一般來說:
drop>;
truncate
>;
delete
5.安全性:小心使用drop
和truncate,尤其沒有備份的時候.否則哭都來不及
使用上,想刪除部分數據行用delete,注意帶上where子句.
回滾段要足夠大.
想刪除表,當然用drop
想保留表而將所有數據刪除.
如果和事務無關,用truncate即可.
如果和事務有關,或者想觸發trigger,還是用delete.
如果是整理表內部的碎片,可以用truncate跟上reuse
stroage,再重新導入/插入數據
在實際應用中,三者的區別是明確的。
當你不再需要該表時,

drop;
當你仍要保留該表,但要刪除所有記錄時,

truncate;
當你要刪除部分記錄時(always
with
a
where
clause),

delete.
而alter是對表結構的修改.
希望對你理解有幫助。

B. sql資料庫刪除視圖來源表後視圖還存在嗎

不存在。sql資料庫刪除視圖來源表後視圖不存在,SQL (Structured Query Language) 是具有數據操縱和數據定義等多種功能的資料庫語言,這種語言具有交互性特點,能為用戶提供極大的便利。

C. sql視圖中的數據怎麼清空

刪除視圖用
1
drop view 視圖名;
但是數據沒法刪除,因為視圖的數據來源於其他表或其他視圖,只能通過刪除其他表裡的數據來刪除所謂的視圖數據。
視圖簡介:
計算機資料庫中的視圖是一個虛擬表,其內容由查詢定義。同真實的表一樣,視圖包含一系列帶有名稱的列和行數據。但是,視圖並不在資料庫中以存儲的數據值集形式存在。行和列數據來自由定義視圖的查詢所引用的表,並且在引用視圖時動態生成。也是機械制圖術語,在機械制圖中,將物體按正投影法向投影面投射時所得到的投影稱為「視圖」。

D. sql怎麼清空視圖

視圖是動態查詢你的表的結果的,不能清空。
舉個例子:
create view emp_dept_view
as
select emp.*,dept.dname,dept.loc from emp
inner join dept on emp.deptno=dept.deptno
那麼視圖查詢出來的結果隨著emp,dept 變化的
視圖本身是不包含數據的(物化視圖除外,它是一個查詢的快照)

E. SQL中視圖的創建。修改,刪除

1、創建視圖

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

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

FROM ...;

[WITH [CASCADED|LOCAL] CHECK OPTION]

(5)sql刪除視圖數據擴展閱讀:

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

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

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

參考資料:網路-SQL

F. 在sql中刪除視圖用什麼命令

可以在對象資源管理器中找到要刪除的視圖,右鍵刪除,也可以用命令刪除,命令如下:
drop view 視圖名
如有多個視圖要刪除,可在視圖名後面後逗號隔開即可。

G. sql問題刪除視圖中的數據,表中的數據會刪除嗎

如果你那個視圖,是 單表的, 沒寫 觸發器的。

那麼 如果 刪除視圖中的數據 成功了,那麼 表中的數據 就被刪除了。

如果那個視圖, 寫了個 INSTEAD OF 觸發器. 但是裡面沒有任何刪除的動作。
那麼 可能你 DELETE FROM 視圖, 最後表的數據,一點也沒變化, 也是可以的。

1> CREATE VIEW v_main_sub AS
2> SELECT
3> test_main.id AS main_id,
4> test_main.value AS main_value,
5> test_sub.id AS sub_id,
6> test_sub.value AS sub_value
7> FROM
8> test_main, test_sub
9> WHERE
10> test_main.id = test_sub.main_id;
11> go

1> SELECT * FROM v_main_sub;
2> go
main_id main_value sub_id sub_value
----------- ---------- ----------- ----------
1 ONE 1 ONEONE
2 TWO 2 TWOTWO

(2 行受影響)

1> UPDATE v_main_sub
2> SET main_value='ONX'
3> WHERE main_id = 1;
4> go

(1 行受影響)

1> UPDATE v_main_sub
2> SET sub_value='ONXONX'
3> WHERE main_id = 1;
4> go

(1 行受影響)

1> DELETE FROM v_main_sub WHERE main_id = 1;
2> go
消息 4405,級別 16,狀態 1,伺服器 GMJ-PC\SQLEXPRESS,第 1 行
視圖或函數 'v_main_sub' 不可更新,因為修改會影響多個基表。

1> CREATE TRIGGER v_main_sub_trigger
2> ON v_main_sub
3> INSTEAD OF DELETE
4> AS
5> DECLARE
6> @main_id INT,
7> @sub_id INT;
8> BEGIN
9> SELECT @main_id=main_id, @sub_id=sub_id FROM deleted;
10>
11>
12> PRINT(@main_id);
13> PRINT(@sub_id);
14> END;
15> go

1> DELETE FROM v_main_sub WHERE main_id = 1;
2> go
1
1

(1 行受影響)
1> DELETE FROM v_main_sub WHERE sub_id = 1;
2> go
1
1

(1 行受影響)

對於多表關聯的視圖, 刪除的時候,需要人為的去判斷
例如當 主表 和 子表,都只有一條記錄的情況下。
無法判斷 本次刪除, 是要刪除掉一個子表的記錄,留下主表的。
還是 主表 子表的數據,一同刪除。

H. sql語言中刪除一個視圖的命令是

sql語言刪除一個視圖的命令是: drop view 視圖名 ;
視圖差不多類似一個別名,並不另外佔用空間,非必要盡量不要刪除吧,如果能查詢順手一點也是好的。

I. SQL中視圖的創建。修改,刪除

  • 創建視圖

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

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

FROM ;

[WITH [CASCADED|LOCAL] CHECK OPTION]

  • 修改視圖

CREATE OR REPLACE VIEW 視圖名 AS SELECT [ ] FROM [ ];

[WITH [CASCADED|LOCAL] CHECK OPTION]

  • 刪除視圖

drop view 視圖名稱

(9)sql刪除視圖數據擴展閱讀:

  • 查看視圖

show tables;

desc 視圖名

  • 查看視圖定義

show create view 視圖名稱G

  • 通過視圖變更數據

insert into 視圖名

update 視圖名

[WITH [CASCADED|LOCAL] CHECK OPTION] 決定了是否允許更新數據記錄不再滿足視圖的條件。

local只要滿足本視圖的條件就可以更新

cascaded則必須滿足所有針對該視圖的所有視圖的條件才可以更新,默認是cascaded。

為了防止通過視圖修改導致數據無故丟失,建議加上WITH CHECK OPTION

參考資料來源:網路-SQL語句

J. SQL實戰新手入門:刪除視圖

刪除視圖

與查詢不同 視圖是一個永久的資料庫對象 必須像刪除對象一樣刪除視圖 刪除視圖時 使用的語法與刪除其他資料庫對象的語法非常類似

DROP VIEW vwBooksONshelves;

對於不同的RDBMS 在DROP VIEW語句中可以指定一些額外的選項 可以在DROP VIEW語句中使用CASCADE和RESTRICT這兩個關鍵字 CASCADE關鍵字指示RDBMS刪除依賴於該視圖的所有其他對象 RESTRICT關鍵字則指示RDBMS只要還有依賴於該視圖的對象存在 就阻止執行該DROP VIEW語句 然而並非每一種資料庫都支持這些語句 一旦視圖被刪除 依賴於該視圖的所有其他對象都將變為無效 刪除一個視圖並不會影響到底層對象中的數據

返回目錄 SQL實戰新手入門

編輯推薦

Oracle索引技術

高性能MySQL

lishixin/Article/program/SQL/201311/16460