加入收藏 | 设为首页 | 会员中心 | 我要投稿 汽车网 (https://www.0577qiche.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

SQL如何更新视图

发布时间:2023-06-05 13:15:51 所属栏目:MsSql教程 来源:
导读:在SQL视图上也可以使用修改数据的DML语句,如 INSERT、UPDATE和DELETE。

视图可以在特定的情况下更新:

SELECT 子句不能包含 DISTINCT 关键字
SELECT 子句不能包含任何汇总函数(summary functions)
SELECT
在SQL视图上也可以使用修改数据的DML语句,如 INSERT、UPDATE和DELETE。

视图可以在特定的情况下更新:

SELECT 子句不能包含 DISTINCT 关键字
SELECT 子句不能包含任何汇总函数(summary functions)
SELECT 子句不能包含任何集合函数(set functions)
SELECT 子句不能包含任何集合运算符(set operators)
SELECT 子句不能包含 ORDER BY 子句
视图不能包含连接操作符
视图不能包含伪列或表达式
FROM 子句中不能有多个数据表
WHERE 子句不能包含子查询(subquery)
查询语句中不能有 GROUP BY 或者 HAVING
计算得出的列不能更新
视图必须包含原始数据表中所有的 NOT NULL 列,从而使 INSERT 查询生效。
 如果视图满足以上所有的条件,该视图就可以被更新。下面的例子中,Ramesh 的年龄被更新了:

SQL > UPDATE CUSTOMERS_VIEW
      SET AGE = 35
      WHERE name='Ramesh';
 最终更新的还是原始数据表,只是其结果反应在了视图上。现在查询原始数据表,SELECT 语句将会产生以下结果:

+----+----------+-----+-----------+----------+
| ID | NAME     | AGE | ADDRESS   | SALARY   |
+----+----------+-----+-----------+----------+
|  1 | Ramesh   |  35 | Ahmedabad |  2000.00 |
|  2 | Khilan   |  25 | Delhi     |  1500.00 |
|  3 | kaushik  |  23 | Kota      |  2000.00 |
|  4 | Chaitali |  25 | Mumbai    |  6500.00 |
|  5 | Hardik   |  27 | Bhopal    |  8500.00 |
|  6 | Komal    |  22 | MP        |  4500.00 |
|  7 | Muffy    |  24 | Indore    | 10000.00 |
+----+----------+-----+-----------+----------+

向视图中插入新行

可以向视图中插入新行,其规则同(使用 UPDATE 命令)更新视图所遵循的规则相同。

这里我们不能向 CUSTOMERS_VIEW 视图中添加新行,因为该视图没有包含原始数据表中所有 NOT NULL 的列。否则的话,你就可以像在数据表中插入新行一样,向视图中插入新行。

句法:

INSERT INTO view_name
VALUES (value1, value2, value3, ...);

删除视图中的行
视图中的数据行可以被删除。删除数据行与更新视图和向视图中插入新行遵循相同的规则。

下面的例子将删除 CUSTOMERS_VIEW 视图中 AGE=22 的数据行:

SQL > DELETE FROM CUSTOMERS_VIEW
      WHERE age = 22;
 该语句最终会将原始数据表中对应的数据行删除,只不过其结果反应在了视图上。现在查询原始数据表,SELECT 语句将会产生以下结果:

+----+----------+-----+-----------+----------+
| ID | NAME     | AGE | ADDRESS   | SALARY   |
+----+----------+-----+-----------+----------+
|  1 | Ramesh   |  35 | Ahmedabad |  2000.00 |
|  2 | Khilan   |  25 | Delhi     |  1500.00 |
|  3 | kaushik  |  23 | Kota      |  2000.00 |
|  4 | Chaitali |  25 | Mumbai    |  6500.00 |
|  5 | Hardik   |  27 | Bhopal    |  8500.00 |
|  7 | Muffy    |  24 | Indore    | 10000.00 |
+----+----------+-----+-----------+----------+

删除视图
很明显,当我们不再需要某个视图的时候,需要有一种方式可以让我们将其删除。删除视图的语法非常简单,如下所示:

DROP VIEW view_name;
下面的例子展示了如何从 CUSTOMERS 表中删除 CUSTOMERS_VIEW 视图:

DROP VIEW CUSTOMERS_VIEW;

感谢各位的阅读,以上就是“SQL如何更新视图”的内容了,希望大家以后多多支持!

(编辑:汽车网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章