CREATE OR REPLACE VIEW
语法说明
CREATE OR REPLACE VIEW 用于创建一个新的视图,也可以用作当视图已经存在时,则替换已有的视图。这表示在视图已经存在时更新视图的定义,而不需要删除已有的视图。
语法结构
1. > CREATE OR REPLACE VIEW view_name AS
2. SELECT column1, column2, ...
3. FROM table_name
4. WHERE condition;
语法释义
view_name:要创建或替换的视图的名称,需要为视图指定一个唯一的名称。AS:用于指示以下的查询语句是视图的查询定义。SELECT column1, column2, ...:在 AS 关键字之后,你需要指定视图的查询定义。这是一个 SELECT 语句,可以选择表中的特定列,也可以使用计算字段、表达式等等。视图会将这个查询的结果作为其自身的数据。FROM table_name:FROM子句,用于指定要查询的表名。你可以选择一个或多个表,并在视图中进行相关操作。WHERE condition:可选的WHERE子句,用于筛选查询结果。
示例
1. -- 创建表 t1 包括两列 a 和 b
2. create table t1 (a int, b int);
4. -- 向表 t1 插入三行数据
5. insert into t1 values (1, 11), (2, 22), (3, 33);
7. -- 创建视图 v1,该视图包含表 t1 中的所有数据
8. create view v1 as select * from t1;
10. -- 查询视图 v1 的所有数据
11. mysql> select * from v1;
12. +------+------+
13. | a | b |
14. +------+------+
15. | 1 | 11 |
16. | 2 | 22 |
17. | 3 | 33 |
18. +------+------+
19. 3 rows in set (0.01 sec)
21. -- 查询视图 v1 中列 a 大于 1 的数据
22. mysql> select * from v1 where a > 1;
23. +------+------+
24. | a | b |
25. +------+------+
26. | 2 | 22 |
27. | 3 | 33 |
28. +------+------+
29. 2 rows in set (0.00 sec)
31. -- 替换视图 v1,新的视图仅包含表 t1 中列 a 小于 2 的数据
32. create or replace view v1 as select * from t1 where a < 2;
34. -- 再次查询视图 v1,现在只包含满足新条件的数据
35. mysql> select * from v1;
36. +------+------+
37. | a | b |
38. +------+------+
39. | 1 | 11 |
40. +------+------+
41. 1 row in set (0.08 sec)
