外观
创建视图
查看创建视图的权限
查询是否具有操作视图的权限由Create View语句和select语句实现,代码如下:
SELECT Selete_priv,Create_view_priv FROM mysql.user WHERE user = '用户名';其中Selete_priv代表用户是否具有SELECT权限,Y表示具有SELECT权限,N表示没有。
Create_view_priv代表是否具有CREATE VIEW的权限,mysql.user表示查看mysql下的user表。
如我们查看管理员root是否具有这两个权限:
select select_priv,create_view_priv from mysql.user where user = 'root';
结果中select_priv和create_view_priv权限都为Y,表示root具有这两个权限。
创建视图
创建视图的语法如下:
CREATE [ALGORITHM={UNDEFINED|MERGE|TEMPTABLE}] VIEW 视图名 [(属性清单)] AS SELECT语句 [WITH[CASCADED|LOCAL] CHECK OPTION];ALGORITHM:表示视图选择的算法。
(属性清单):可选参数,指定视图中各个属性的名词,默认情况下与SELECT语句中查询的属性相同。
SELECT语句:一个完整的查询语句,表示从某个表中查出满足条件的记录,将这些记录导入视图中。
WITH...:可选参数,表示更新视图时要保证在该视图的权限范围之内。
创建视图的注意事项:
- 运行创建视图的语句需要用户具有CREATE_VIEW的权限
- SELECT语句不能包含FROM字句中的子查询
- 在定义中引用的表或者视图必须存在
- 在定义中不能使用多个temporary表,不能创建temporary视图
- 在视图中允许定义ORDER BY,但是若从特定视图中选择,而该视图中使用了具有自己定义的ORDER BY的语句,它将被忽略
如我们为一个员工信息表创建视图。
在创建视图之前先创建数据表。
第一个数据表为员工信息表,此表中的id代表编号,name代表员工姓名,sex代表员工性别,salary代表员工工资,section代表员工部门,telephone代表员工电话号码,number代表员工编号。

在此数据表中,我们设定工资、部门、员工编号为隐私信息,那么我们就可以创建一个只显示字段id、name、sex、telephone的视图。
create view v_employees (id,name,sex,tele) as select id,name,sex,telephone from employees;
到这里视图创建成功。