语法形式:
create [algorithm = {undefined|merge|temptable}] view 视图名 [(属性清单)] as select语句 [with [cascaded|local] check option]
1.algorithm 可选参数,表示视图选择的算法
undefined表示自动选择
merge表示将使用视图的语句与视图定义合并起来,使得视图定义的某一部分吧取代语句的对应部分。
temptable表示将视图的结果存入临时表,然后使用临时表执行语句。
2.cascaded 表示更新视图需要满足所有相关视图和表的条件
3.local 表示更新视图时,要满足视图本身的定义条件即可
注:
创建视图最好加上with check option 参数,而且加上cascaded参数,这样,从视图派生的新视图更新时需要考虑父视图的约束条件,保证数据安全
查询创建视图权限:
select select_priv,create_view_priv from mysql.user where user='用户名';
创建两张表
创建视图前先创建两张表department和worker
mysql> create table department(
d_id int(4) primary key,
d_name varchar(20) not null unique,
function varchar(50),
address varchar(50));