sql-第13章 视图

三葉Leaves
三葉Leaves Author

引言

视图可以理解为查询后得出的结果表。此时有一个疑惑: 那直接把查询后得出的结果存为表不就行了?和视图有什么区别 答案是:前者当基本表作出修改后不会同步更新,而后者可以

1.视图的创建

1.1 语法

1
2
3
4
5
CREATE VIEW 视图名
[WITH ENCRYPTION] --可选,表示视图是否加密--
AS
SELECT 查询语句
[WITH CHECK OPTION] --可选,表示是否限制视图修改--

1.2 别名

在视图名后面列出字段名可以给视图中的字段起别名,如下

1
2
3
4
5
6
7
CREATE VIEW V_Sal(平均工资,最高工资,最低工资)

AS

SELECT AVG(salary),MAX(salary),MIN(salary)

FROM customer

括号内无需单引号

1.3 创建视图时的注意事项

imagepng
imagepng
如第二点所述,故要想排序,只能在查询时用 ORDER BY 语句,而非创建时

1.4 创建加密视图

若使用 WITH ENCRYPTION ,则视图被加密。主要作用在于定义视图的语句会被隐藏,而非视图本身

1.5 细说 WITH CHECK OPTION

  1. 对于 update 和 Insert ,若有 with check option ,则须保证修改或插入的数据在视图创建时的 WHERE 语句的条件范围内

    简单来说就是加的东西要能被查到 若创建视图时候没有用 with check option , update 和 Insert 的数据即便在条件之外也仍然可以运行,但是在视图中看不到,而基本表中却可以显现

  2. 对于 delete ,有无 with check option 都一样;

  3. 对于没有 where 子句的视图,使用with check option是多余的。

2. 视图的查询

没啥别的可以说,就和查询表一样的语句

3. 视图的更新

这里的更新指的是修改其中内容,而非结构 仍然可以使用

  • UPDATE 更新数据

    更新数据时有一些注意点如下

    imagepng
    imagepng

实验:不可更新视图测试

  • INSERT 插入数据
  • DELETE 删除数据

4. 视图的删除

1
DROP VIEW 视图名称

删的挺干净,资源管理器里都查不到了,没啥好说

  • 标题: sql-第13章 视图
  • 作者: 三葉Leaves
  • 创建于 : 2024-05-16 00:00:00
  • 更新于 : 2026-09-24 14:18:26
  • 链接: https://blog.oksanye.com/21b6168ed609/
  • 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。
评论