视图是一个或从多个表中导出来的表,是一种虚拟存在的表。视图就像一个窗口,通过这个窗口可以看到系统专门提供的数据,这样用户可以不看整个数据库表中的数据,而只关心对自己有用的数据。视图可以使用户的操作更方便,而且可以保障数据库系统的安全性。
为什么要使用视图
对我个人而言来时,比如大学生在学校里参加期末考试,最终的学生考试的成绩一般都是老师在网上上传成绩,学生是无法改的而且只能看到自己的成绩别人的成绩是不知道的,学生看到的表就是视图。
为了提高复杂的SQL语句的复用性和表的操作的安全性,MySQL数据库管理系统提供了视图特性。所谓视图,本质上是一种虚拟表,其内容与真实的表相似,包含一系列带有名称的列和行数据。但是,视图并不在数据库中以存储数据值的形式存在,行和列数据来自定义视图的查询所引用的基本表,并且在具体引用视图时动态生成。
视图使程序员只关心感兴趣的某些特定数据和他们所负责的特定任务。这样程序员只能看到视图中所定义的数据,而不是视图所引用表中的数据,从而提高数据库中数据的安全性。
创建视图
虽然视图可以被看成是一种虚拟表,但是其物理上是不存在的,即MySQL并没有专门的位置为视图存储数据,根据视图的概念可以发现其数据来源于查询语句,因此创建视图的基本语法如下:
CREATE[OR REPLACE] VIEW viewname[columnlist]AS SELECT statement;
其中,CREATE表示创建新的视图。REPLACE表示替换已经创建的视图。viewname为视图的名称。columnlist为属性列。select statement表示SELECT语句。
注意:创建视图需要登录用户有相应的权限,查看权限方法如下:
mysql> select user,Select_priv,Create_view_priv from mysql.user; #查看权限