首页 > 试题广场 >

数据库视图的限制

[不定项选择题]
数据库设计里,视图(View)可以使得我们为一个或多个数据表定义一个特殊的表现形式,视图在行为上与数据表没啥特别区别,可以使用基本的select,insert,update等命令修改数据,但对于update操作,也有一些限制,下面那些是受限的原因()
  • 初始View定义的Select语句里如果包含了GROUP BY,DISTINCT,LIMIT或HAVING等命令时
  • 如果视图里数据来自多张字表时
  • 如果视图里缺少主键索引,唯一索引,外键约束条件锁涉及的全部数据列时
  • 当Creat View之后又使用Replace View对已存在视图做了更名操作后
完美避开所有正确答案,233333
发表于 2017-04-22 11:50:50 回复(1)
更多回答
不存在C、D提供的情况。
发表于 2016-01-21 15:39:04 回复(0)
视图包含下列结构是不可以更新的
1:集合运算符 union,union all, intersect,minus
2:distinct关键字
3:group by,order by,connect by,或者start with
4:子查询
5:分组函数
6:需要更新的列不是视图定义的
7:具有连接查询(可以更新键值保存表的数据)
8:违反基表的约束条件;连接视图是指基于多表连接查询创建的视图(一般不容易修改,但通用instead of触发器可以实现修改的功能)
编辑于 2015-09-06 16:52:34 回复(3)
如果视图是从多个基本表使用联接操作导出的,则不允许更新。如果导出的视图使用了分组和聚合操作,也不允许更新。如果视图是从单个基本表使用选择和投影操作导出的,并且包括了基本表的主键或某个候选键,则可以执行操作。
发表于 2015-09-06 21:47:57 回复(1)
视图的可更新性和视图中查询的定义有关,以下类型的视图是不可更新的
  1. 包含以下关键字的SQL语句:  聚合函数(SUM, MIN. MAX, COUNT等)  DISTINCT,     GROUP BY, HAVING, UNION或者UNION ALL
  2. 常量视图
  3. SELECT中包含子查询
  4. FROM一个不能更新的视图
  5. WHERE的子查询引用了FROM中的表
发表于 2016-05-17 09:45:19 回复(0)
如果视图的更新不能唯一的有意义的转换成对应基本表的更新,那么视图就无法更新
编辑于 2016-09-04 16:37:50 回复(1)
视图包含下列结构是不可以更新的 
1:集合运算符 union,union all, intersect,minus 
2:distinct关键字 
3:group by,order by,connect by,或者start with 
4:子查询 
5:分组函数 
6:需要更新的列不是视图定义的 
7:具有连接查询(可以更新键值保存表的数据) 
8:违反基表的约束条件;连接视图是指基于多表连接查询创建的视图(一般不容易修改,但通用instead of触发器可以实现修改的功能)
发表于 2015-09-19 16:02:58 回复(0)
视图包含下列结构是不可以更新的  1:集合运算符 union,union all, intersect,minus  2:distinct关键字  3:group by,order by,connect by,或者start with  4:子查询  5:分组函数  6:需要更新的列不是视图定义的  7:具有连接查询(可以更新键值保存表的数据)  8:违反基表的约束条件;连接视图是指基于多表连接查询创建的视图(一般不容易修改,但通用instead of触发器可以实现修改的功能)
发表于 2017-11-28 22:20:45 回复(0)
链接:https://www.nowcoder.com/questionTerminal/602a1ecca9714005b0138ea05d77101d
来源:牛客网
视图包含下列结构是不可以更新的 
1:集合运算符 union,union all, intersect,minus 
2:distinct关键字 
3:group by,order by,connect by,或者start with 
4:子查询 
5:分组函数 
6:需要更新的列不是视图定义的 
7:具有连接查询(可以更新键值保存表的数据) 
8:违反基表的约束条件;连接视图是指基于多表连接查询创建的视图(一般不容易修改,但通用instead of触发器可以实现修改的功能)
发表于 2017-11-04 09:38:10 回复(0)
视图包含下列结构是不可以更新的 1:集合运算符 union,union all, intersect,minus 2:distinct关键字 3:group by,order by,connect by,或者start with 4:子查询 5:分组函数 6:需要更新的列不是视图定义的 7:具有连接查询(可以更新键值保存表的数据) 8:违反基表的约束条件;连接视图是指基于多表连接查询创建的视图(一般不容易修改,但通用instead of触发器可以实现修改的功能)
发表于 2023-03-23 11:45:21 回复(0)
视图包含 union,union all,intersect,minus disfinct group by,order by,connect by 或者是start with 子查询,分组函数 需要更新的列不是视图定义的 具有连接查询 总结来看,不能是多个表操作出来的,聚合或者分组是不可以的 如果是单个表是可以的
发表于 2024-02-21 23:37:13 回复(0)
这是啥数据库,可以对公视图
发表于 2022-09-14 11:18:38 回复(0)
错别字

  • 如果视图里数据来自多张子表时

发表于 2021-10-04 16:09:04 回复(0)
b选项,最普通的多表关联 VIEW 不是也可以变更的吗。。
发表于 2020-03-31 21:57:57 回复(0)
链接:https://www.nowcoder.com/questionTerminal/602a1ecca9714005b0138ea05d77101d
来源:牛客网
视图包含下列结构是不可以更新的
1:集合运算符 union,union all, intersect,minus
2:distinct关键字
3:group by,order by,connect by,或者start with
4:子查询
5:分组函数
6:需要更新的列不是视图定义的
7:具有连接查询(可以更新键值保存表的数据)
8:违反基表的约束条件;连接视图是指基于多表连接查询创建的视图(一般不容易修改,但通用instead of触发器可以实现修改的功能)
发表于 2019-11-27 17:31:39 回复(0)
replace view是干嘛的?
发表于 2017-07-12 08:36:09 回复(1)
缺少主键索引不是不能更新的吗
发表于 2016-06-19 20:25:43 回复(0)