sql刪除視圖
1. 怎樣刪除視圖中的全部數據 用sql語言編寫。
刪除視圖用
dropview視圖名;
但是數據沒法刪除,因為視圖的數據來源於其他表或其他視圖,只能通過刪除其他表裡的數據來刪除所謂的視圖數據。
視圖簡介:
計算機資料庫中的視圖是一個虛擬表,其內容由查詢定義。同真實的表一樣,視圖包含一系列帶有名稱的列和行數據。但是,視圖並不在資料庫中以存儲的數據值集形式存在。行和列數據來自由定義視圖的查詢所引用的表,並且在引用視圖時動態生成。也是機械制圖術語,在機械制圖中,將物體按正投影法向投影面投射時所得到的投影稱為「視圖」。
2. 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 行受影響)
對於多表關聯的視圖, 刪除的時候,需要人為的去判斷
例如當 主表 和 子表,都只有一條記錄的情況下。
無法判斷 本次刪除, 是要刪除掉一個子表的記錄,留下主表的。
還是 主表 子表的數據,一同刪除。
3. sql語句中刪除視圖的命令是
1.添加PRIMARY KEY(主鍵索引)
mysql>ALTER TABLE `table_name` ADD PRIMARY KEY ( `column` )
2.添加UNIQUE(唯一索引)
mysql>ALTER TABLE `table_name` ADD UNIQUE (
`column`
)
3.添加INDEX(普通索引)
mysql>ALTER TABLE `table_name` ADD INDEX index_name ( `column` )
4.添加FULLTEXT(全文索引)
mysql>ALTER TABLE `table_name` ADD FULLTEXT ( `column`)
5.添加多列索引
mysql>ALTER TABLE `table_name` ADD INDEX index_name ( `column1`, `column2`, `column3` )
4. 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 變化的
視圖本身是不包含數據的(物化視圖除外,它是一個查詢的快照)
5. 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
6. 如何一次性刪除 資料庫 中的所有視圖
以前我回答過類似問題,是批量刪除表,跟你修改下,批量刪除視圖
--第一步,讀取所有視圖
select identity(int,1,1) flag,[name] names into #tmp
from sysobjects where xtype='v'
--第二步循環刪除
declare @tb varchar(1000) ,@a int,@b int,@sql varchar(8000)
select @a=min(flag),@b=max(flag) from #tmp
while @a<=@b
begin
select @tb=names from #tmp where flag=@a
set @sql='drop view '''+@tb+''''
exec(@sql)
set @a=@a+1
end
7. sql刪除視圖和索引
多寫個drop吧,中間通過分號隔開
8. 在sql中刪除視圖用什麼命令
可以在對象資源管理器中找到要刪除的視圖,右鍵刪除,也可以用命令刪除,命令如下:
drop view 視圖名
如有多個視圖要刪除,可在視圖名後面後逗號隔開即可。
9. sql視圖中的數據怎麼清空
刪除視圖用
1
drop view 視圖名;
但是數據沒法刪除,因為視圖的數據來源於其他表或其他視圖,只能通過刪除其他表裡的數據來刪除所謂的視圖數據。
視圖簡介:
計算機資料庫中的視圖是一個虛擬表,其內容由查詢定義。同真實的表一樣,視圖包含一系列帶有名稱的列和行數據。但是,視圖並不在資料庫中以存儲的數據值集形式存在。行和列數據來自由定義視圖的查詢所引用的表,並且在引用視圖時動態生成。也是機械制圖術語,在機械制圖中,將物體按正投影法向投影面投射時所得到的投影稱為「視圖」。
10. 在SQL語言中,刪除一個視圖的命令是
DROP VIEW 視圖的名字