Mysql 简明教程
MySQL - CREATE VIEW
MySQL 视图是一种虚拟表格。它们与一个相关名称一起存储在数据库中。它们允许用户执行以下操作:
-
以用户或用户类别觉得自然或直观的方式构建结构化数据。
-
限制对数据访问, 以便用户只能看到(有时可以修改)他们需要看到的内容, 不会更多。
-
总结可以用来生成报告的不同表中的数据。
视图可以从一个或多个表格建立,其中包含了所有或选择自其中的行列。除非已建立索引,否则视图不会存在于数据库中。
MySQL Create View Statement
创建视图只是使用一个查询创建一张虚拟表。视图是存储在数据库中并拥有关联名称的一条 SQL 语句。它实际上是通过预定义 SQL 查询形成的一张表。
Example
假设我们使用下面的 Select 语句创建了一张表:
CREATE TABLE CUSTOMERS (
ID INT NOT NULL,
NAME VARCHAR(15) NOT NULL,
AGE INT NOT NULL,
ADDRESS VARCHAR(25),
SALARY DECIMAL(10, 2),
PRIMARY KEY(ID)
);
让我们在以上创建的表中插入 7 条记录:
INSERT INTO CUSTOMERS VALUES
(1, 'Ramesh', '32', 'Ahmedabad', 2000),
(2, 'Khilan', '25', 'Delhi', 1500),
(3, 'Kaushik', '23', 'Kota', 2500),
(4, 'Chaitali', '26', 'Mumbai', 6500),
(5, 'Hardik','27', 'Bhopal', 8500),
(6, 'Komal', '22', 'MP', 9000),
(7, 'Muffy', '24', 'Indore', 5500);
以下查询基于以上创建的表创建一个视图:
CREATE VIEW first_view AS SELECT * FROM CUSTOMERS;
With REPLACE and IF NOT EXISTS Clauses
通常情况下,如果你尝试通过一个与现有视图相同的名称创建视图,将生成一个错误,如下所示:
CREATE VIEW first_view AS SELECT * FROM CUSTOMERS;
因为视图已存在,所以将引发以下错误:
ERROR 1050 (42S01): Table 'first_view' already exists
因此,你可以使用 Replace 子句以及 Create View 来替换现有视图。
CREATE OR REPLACE VIEW first_view AS SELECT * FROM CUSTOMERS;