设为首页 加入收藏

TOP

MySQL视图的基本操作
2017-04-07 10:23:50 】 浏览:3945
Tags:MySQL 基本操作

  视图是数据库中的虚拟表。包含一系列带有名称的行和列数据。视图是从一个或者多个表中导出的,视图的行为与表非常相似,用户可以使用SELECT语句查询数据,以及使用INSERT、UPDATE和DELETE修改记录,视图使用户操作更加方便而且保障数据库系统的安全。


  视图一旦定义便存储在数据库中,与其对应的数据并没有像表那样在数据库中再存储一份,通过视图看到的数据只是存放在基本表中的数据。对视图的操作与对表的操作一样,可以对其进行查询、修改和删除。当对通过视图看到的数据进行修改时,相应的基本表的数据也要发生变化,同时若基本表的数据放生变化,则这种变化也会自动地反应到视图中。


  创建视图的基本语法格式为:CREATE [OR REPLACE] [ALGORITHM={UNDEFINED|MERGE|TEMPTABLE}] VIEW view_name [(column_list)] AS SELECT_statement [WITH [CASCADED|LOCAL] CHECK OPTION] 其中CREATE用来创建新的视图,REPLACE表示替换已经创建的视图,ALGORITHM表示视图选择的算法,view_name为视图名称,column_list为属性列,SELECT_statement表示SELECT语句,WITH[CASCADED|LOCAL] CHECK OPTION参数表示视图在更新时保证在视图的权限范围内。


  ALGORITHM的取值有3个,分别是UNDEFINED|MERGE|TEMPTABLE,UNDEFINED表示MySQL将自动选择算法,MERGE表示将使用的视图与视图定义合并起来,使得视图定义的某一部分取代语句对应的部分,TEMPTABLE表示将视图的结果存入临时表,然后用临时表来执行语句。


  CASCADED与LOCAL为可选参数,CASCADED为默认参数,表示更新视图时要满足所有相关视图和表的条件,LOCAL表示更新视图时满足该视图本身定义的条件即可。


  视图属于数据库。在默认情况下,将在当前数据库创建新视图。想要在给定数据库中明确创建视图,创建时应将名称指定为db_name.view_name.


   如下图在单表上创建视图(CREATE VIEW view_student(sID,sName,sAddress) AS SELECT id,name,address FROM tb_student); 选择表tb_student的id,name和address列作为视图view_student的列。



  若想创建包含学生id,name和班级的视图呢?语法格式为:CREATE VIEW view_s_class(sID,sName,sClass) AS SELECT tb_student.id,tb_student.name,tb_class.name FROM tb_student,tb_class WHERE tb_student.classID=tb_class.id;



  查看视图有4种方式,包括:DESCRIBE、SHOW TABLE STATUS、SHOW CREATE VIEW以及在views表中查看视图详细信息。


  修改数据库中存在的视图,当基本表的某些字段发生变化时,可以通过修改视图来保持与基本表的一致性MySQL通过CREATE OR REPLACE VIEW语句和ALTER语句来修改视图。


  更新视图是指通过视图来插入、更新、删除表中的数据,因为视图是一个虚表,其中没有数据。通过视图更新的时候其实是对基本表的更新,本节将介绍视图更新的3种方法:INSERT、UPDATE和DELETE。


  删除一个或多个视图可以使用DROP VIEW语句,语法格式为:DROP VIEW [IF EXISTS] view_name[,view_name][RESTRICT|CASCADE] 其中,view_name是要删除的视图名称,可以添加多个视图,各个名称之间使用逗号分隔。如下是删除view_student视图。



】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇MySQL 触发器详解 下一篇MySQL从库列类型不一致导致复制异..

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目