SQL 创建视图
SQL视图是什么
SQL中的视图是以关联名称存储在数据库中的虚拟表。它实际上是一个预定义的SQL查询形式的表的组合。视图可以包含现有表中的行(全部或选定的)。一个视图可以由一个或多个表创建。除非被索引,否则视图在数据库中不存在。
视图中的数据在数据库中并不存在物理上。视图通常由数据库管理员创建,并用于:
- 以对用户或用户类别自然或直观的方式组织数据。
- 以限制访问数据,使用户只能查看并(有时)修改所需的内容,而不会超出。
- 对来自不同表的数据进行汇总,用于生成报告。
SQL CREATE VIEW语句
要在数据库中创建视图,可以使用SQL CREATE VIEW语句。
语法
以下是SQL CREATE VIEW语句的语法-
示例
假设我们使用以下查询语句使用 CREATE TABLE 语句创建了名为CUSTOMERS的表−
现在,使用INSERT语句将值插入到这个表中,如下所示:
现在,使用INSERT语句将值插入到这个表中,如下所示−
以下查询基于以上创建的表创建一个视图 −
验证
您可以使用如下所示的 select 查询验证视图的内容 –
视图显示如下:
ID | NAME | AGE | ADDRESS | SALARY |
---|---|---|---|---|
1 | Ramesh | 32 | 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 | Hyderabad | 4500.00 |
7 | Muffy | 24 | Indore | 10000.00 |
使用WHERE子句创建视图
我们还可以使用WHERE子句和SQL CREATE VIEW语句一起,从表中只选择特定的记录来创建视图,如下所示:
验证
以下是上述创建视图的内容-
视图显示如下−
ID | NAME | AGE | ADDRESS | SALARY |
---|---|---|---|---|
4 | Chaitali | 25 | Mumbai | 6500.00 |
5 | Hardik | 27 | Bhopal | 8500.00 |
6 | Komal | 22 | Hyderabad | 4500.00 |
7 | Muffy | 24 | Indore | 10000.00 |
WITH CHECK OPTION子句
WITH CHECK OPTION是CREATE VIEW语句的一个选项。WITH CHECK OPTION的目的是确保所有UPDATE和INSERT语句都满足WHERE子句指定的条件。
如果它们不满足条件,UPDATE或INSERT语句将返回错误。以下示例使用WITH CHECK OPTION子句创建名为 BUYERS_VIEW 的视图。
在这种情况下,WITH CHECK OPTION应该禁止年龄值大于或等于25的记录的录入和更新。
验证
以下是上述创建的视图的内容。
视图显示如下:
NAME | AGE |
---|---|
Ramesh | 32 |
Khilan | 25 |
Chaitali | 25 |
Hardik | 27 |