视图概述
视图(View)是一种虚拟存在的表、视图并不是数据库中实际存在的、通俗的来讲视图就是SELECT语句执行后的返回结果集、所以我们在创建视图的时候、主要工作就落在创建这条SQL查询语句上视图相对于普通的表的优势主要包括一下几项。
- 简单:使用视图的用户完全不需要关心后面对应的表的结构、关联条件和筛选条件、对用户来说是过滤好的扶额和条件的结果集
- 安全:使用视图的用户只能访问他们被允许查询的结果集、对表的权限管理并不能限制到某个行某个列、但是通过视图就可以简单的实现
- 数据独立:一旦视图的结构确定、可以屏蔽表结构变化对用户的影响、源表增加列对视图没有影响、源表修改列名、则可以通过修改视图来解决、不会造成对访问者的影响。
创建视图或者修改视图
创建视图的语法为:
CREATE 【OR REPLACE】 【ALGORITHM】 = {UNDEFINED | MERGE | TEMPTABLE}
VIEW view_name 【(column_list)】
AS select_statement
【WITH 【CASCADED | LOCAL】CHECK OPTION】
create view view_city_country as select c.* from city c,country t where c.country_id = t. country_id
更新视图的语法为:
update view_city_country set city_name = '西安市' where city_id = '1';
查看视图:
从Mysql5.1开始、使用SHOW TABLES命令时不仅显示表的名字、同时也会显示视图的名字、而不存在单独显示视图的SHOW VIEWS命令
删除视图:
DROP VIEW [IF EXISTS] view_name [,view_name] ... [RESTRICT | CASCADE]
DROP VIEW IF exists city_country_view;