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 视图的名字