Sql 简明教程
SQL - CREATE View
What is SQL View
SQL 中的视图是存储在数据库中的虚拟表,并具有关联的名称。它实际上是以预定义 SQL 查询的形式组成的一个表。视图可以包含现有表中的行(全部或选定的)。视图可以从一个或多个表创建。除非编制索引,否则视图在数据库中不存在。
视图中的数据在数据库中物理不存在。视图通常由数据库管理员创建,并用于 −
-
以用户或用户类别觉得自然或直观的方式构建结构化数据。
-
限制对数据访问, 以便用户只能看到(有时可以修改)他们需要看到的内容, 不会更多。
-
总结可以用来生成报告的不同表中的数据。
The SQL CREATE VIEW Statement
如要在数据库中创建视图, 可以使用 SQL CREATE VIEW 语句。
Syntax
以下是 SQL CREATE VIEW 语句的语法:
CREATE VIEW view_name AS
SELECT column1, column2....
FROM table_name
WHERE [condition];
Example
假设我们使用以下查询使用 CREATE TABLE 语句创建名为 CUSTOMERS 的表:
CREATE TABLE CUSTOMERS(
ID INT NOT NULL,
NAME VARCHAR (20) NOT NULL,
AGE INT NOT NULL,
ADDRESS CHAR (25) ,
SALARY DECIMAL (18, 2),
PRIMARY KEY (ID)
);
现在,使用如下所示的 INSERT 语句向此表中插入值:
INSERT INTO CUSTOMERS VALUES
(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 );
以下查询基于上述创建的表格创建一个视图 −
CREATE VIEW CUSTOMERS_VIEW AS SELECT * FROM CUSTOMERS;
Verification
你可以使用 select 查询验证视图的内容,如下所示 −
SELECT * FROM CUSTOMERS_VIEW;
视图显示如下 −
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 |
Create View With WHERE Clause
还可以使用 where 子句连同 SQL CREATE VIEW 语句一起从表中创建带有限定记录的视图,如下所示:
CREATE VIEW BUYERS_VIEW as SELECT * FROM CUSTOMERS
WHERE SALARY > 3000;
The WITH CHECK OPTION Clause
WITH CHECK OPTION 是 CREATE VIEW 语句选项。WITH CHECK OPTION 的目的是确保所有 UPDATE 和 INSERT 语句都满足 WHERE 子句指定的条件。
如果它们不满足条件,则 UPDATE 或 INSERT 语句返回错误。以下示例使用 WITH CHECK OPTION 子句创建名为 BUYERS_VIEW 的视图。
CREATE VIEW MY_VIEW AS
SELECT name, age
FROM CUSTOMERS
WHERE age >= 25
WITH CHECK OPTION;
在这种情况下,WITH CHECK OPTION 应拒绝输入和更新年龄值大于或等于 25 的记录。