网站优化需要什么,深圳市宝安区中心医院,如何做家教网站,温州 做网站文章目录 一、视图概述二、为什么要使用视图三、创建视图四、查看视图 一、视图概述
小学的时候#xff0c;每年都会举办一次抽考活动#xff0c;意思是从每一个班级里面筛选出几个优秀的同学去参加考试#xff0c;这时候很多班级筛选出来的这些同学就可以临时组成一个班级… 文章目录 一、视图概述二、为什么要使用视图三、创建视图四、查看视图 一、视图概述
小学的时候每年都会举办一次抽考活动意思是从每一个班级里面筛选出几个优秀的同学去参加考试这时候很多班级筛选出来的这些同学就可以临时组成一个班级如果我们把每个班级都当做是一张真实的表这个临时的班级在数据库里就可以当作一个视图也就是说这个临时的班级其实不是真实存在的当考试过后这些学生还是会回到各自的班级中。所以说视图是从一个或多个表中导出来的表是一种虚拟存在的表。视图就像一个窗口通过这个窗口可以看到系统专门提供的数据这样用户可以不看整个数据库表中的数据而只关心对自己有用的数据。视图可以使用用户的操作更方便而且可以保障数据库系统的安全性。
二、为什么要使用视图
数据库中关于数据的查询有时非常复杂例如表连接、子查询等这种查询会让程序员感动非常痛苦因为它的逻辑太复杂、编写语句比较多当这种查询需要重复使用时很难每次都编写正确从而降低了数据库的实用性。 在具体操作表之前有时候要求只能操作部分字段而不是全部字段例如在学校里学生的智商测试结果一般都是保密的如果因为一时疏忽向查询中多写了关于“智商”的字段则会让学生的智商显示给所有能够查看该查询结果的人这时就需要限制使用者操作的字段。 为了提高复杂的SQL语句的复用性和表的操作的安全性MySQL数据库管理系统提供了视图特性。所谓视图本质上是一种虚拟表其内容与真实表相似包含一系列带有名称的列和行数据。但是视图并不在数据库中以存储数据值的形式存在行和列数据来自定义视图的查询所引用的基本表并且在具体引用视图时动态生成。 视图使程序员只关心感兴趣的某些特定数据和他们所负责的特定任务这样程序员只能看到视图中所定义的数据而不是视图所引用表中的数据从而提高数据库中数据的安全性。
三、创建视图
虽然视图可以被看成是一种虚拟表但是其物理上是不存在的即MySQL并没有专门的位置为视图存储数据。根据视图的概念可以发现其数据来源于查询语句因此创建视图的基本语法为
CREATE[OR REPLACE]VIEW viewname[columnlist] AS SELECT statement其中CREATE表示创建新的视图REPLACE表示替换已经创建的视图viewname为视图的名称columnlist为属性列SELECT statement表示SELECT语句。 注意创建视图需要登陆用户有相应的权限查看权限方法。 在单表上创建视图 在多表上创建视图
CREATE[OR REPLACE] VIEW viewname[columnlist] AS SELECT statement其中CREATE表示创建新的视图REPLACE表示替换已经创建的视图viewname为视图的名称columnlist为属性列SELECT statement表示SELECT语句与单表上创建视图不同的是SELECT子句是设计到多表的联合查询语句。
四、查看视图
创建完视图后像数据表一样我们经常需要查看视图信息。在MySQL中有许多可以实现查看视图的语句如DESCRIBE、SHOW TABLES、SHOW CREATE VIEW。如果要使用这些语句首先要确保拥有SHOW VIEW的权限。
1.使用DESCRIBE|DESC语句查看视图基本信息 前面我们已经详细了解使用DESCRIBE语句来查看表的基本定义。因为视图也是一张表只是这张表比较特殊是一张虚拟的表所以同样可以使用DESCRIBE语句来查看视图的基本定义。DESCRIBE语句查看视图的语法如下
DESCRIBE|DESC viewname;在上述语句中参数viewname表示所要查看设计信息的视图名称。 2.使用show create view/table 语句查看视图创建信息
SHOW CREATE TABLE 或 VIEW viewname;3.更新视图数据 更新视图是指通过视图来插入INSERT、更新UPDATE和删除DELETE表中的数据。因为视图实质上是一个虚拟表其中没有数据通过视图更新时都是转换到基本表更新。更新视图时只能更新权限范围内的数据超出范围就不能更新了。 不能更新的情况 视图中包含SUM()、COUNT()、MAX()和MIN()等函数。视图中包含UNION、UNION ALL、DISTINCT、GROUP BY和HAVING等关键字。视图对应的表存在没有默认值的列而且该列没有包含在视图中。包含子查询的视图。 4.修改视图 修改视图是指修改数据库中存在的视图当基本表的某些字段发生变化的时候可以通过修改视图来保持与基本表的一致性。ALTER语句来修改视图。 使用ALTER语句修改视图
ALTER VIEW viewname[columnlist] AS SELECT statement这个语法中的所有关键字和参数除了alter外其他都和创建视图是一样的因此不再赘述。
5.删除视图 删除视图是指删除数据库中已存在的视图删除视图时只能删除视图的定义不会删除数据。在MySQL中可以使用DROP VIEW语句来删除视图但是用户必须拥有DROP权限。删除视图的语法如下
DROP VIEW viewname [,viewname];在上述语句中参数viewname表示所要删除视图的名称可同时指定删除多个视图。