可以使用 CREATE VIEW 语句来创建视图。
语法格式如下:
CREATE VIEW <视图名> AS <SELECT语句>
语法说明如下。
<视图名>:指定视图的名称。该名称在数据库中必须是唯一的,不能与其他表或视图同名。
<SELECT语句>:指定创建视图的 SELECT 语句,可用于查询多个基础表或源视图。
如果通过以下语句创建视图
CREATE ALGORITHM = UNDEFINED
DEFINER = `xx`@`localhost`
SQL SECURITY DEFINER
VIEW `xxxx` AS
1.ALGORITHM=UNDEFINED:指定视图的处理算法;
2.DEFINER=root
@localhost
:指定视图创建者;
3.SQL SECURITY DEFINER:指定视图查询数据时的安全验证方式;
1.ALGORITHM可取三个值:MERGE、TEMPTABLE或UNDEFINED。
如果没有ALGORITHM子句,默认算法是UNDEFINED(未定义的)。算法会影响MySQL处理视图的方式。
对于MERGE,会将引用视图的语句的文本与视图定义合并起来,使得视图定义的某一部分取代语句的对应部分。
对于TEMPTABLE,视图的结果将被置于临时表中,然后使用它执行语句。
对于UNDEFINED,MySQL自己选择所要使用的算法。如果可能,它倾向于MERGE而不是TEMPTABLE,这是因为MERGE通常更有效,而且如果使用了临时表,视图是不可更新的。
2.‘root‘@‘localhost‘是root用户以本机连接,‘root’@‘%’是root用户允许任何ip的连接。
3.DEFINER 表示按定义者拥有的权限来执行
INVOKER 表示用调用者的权限来执行。默认情况下,系统指定为DEFINER
转载链接https://www.cnblogs.com/cctvyuzhou/p/8985582.html