1、概念:
视图,虚拟表,从一个表或多个表中导出来的表,作用和真实表一样,包含一系列带有行和列的数据 视图中,用户可以使用SELECT语句查询数据,也可以使用INSERT,UPDATE,DELETE修改记录,视图可以使用户操作方便,并保障数据库系统安全。
2、语法
创建方法:
CREATE
[OR REPLACE]
[ALGORITHM = {UNDEFINED | MERGE | TEMPTABLE}]
[DEFINER = { user | CURRENT_USER }]
[SQL SECURITY { DEFINER | INVOKER }]
VIEW view_name [(column_list)]
AS select_statement
[WITH [CASCADED | LOCAL] CHECK OPTION]
删除视图:
DROP VIEW [IF EXISTS]
view_name [, view_name] ...
[RESTRICT | CASCADE]
3、优缺点
优点:
简单化,数据所见即所得
安全性,用户只能查询或修改他们所能见到得到的数据
逻辑独立性,可以屏蔽真实表结构变化带来的影响
缺点:
性能相对较差,简单的查询也会变得稍显复杂
修改不方便,特变是复杂的聚合视图基本无法修改
4、举例
查看主表信息 mysql > SELECT * FROM student; +-------+-------+------+ | StuID | Name | Age | +-------+-------+------+ | 1 | tom | 20 | | 2 | jerry | 30 | | 3 | bob | 40 | +-------+-------+------+ 创建视图 mysql > CREATE VIEW view_stu SELECT * FROM student WHERE Age>=25; 查询视图 mysql > SELECT * FROM view_stu; +-------+-------+------+ | StuID | Name | Age | +-------+-------+------+ | 2 | jerry | 30 | | 3 | bob | 40 | +-------+-------+------+ 查看某表是否为视图 mysql > SHOW TABLE STATUS LIKE 'view_stu'G *************************** 1. row *************************** Name: view_stu Engine: NULL Version: NULL Row_format: NULL Rows: NULL Avg_row_length: NULL Data_length: NULL Max_data_length: NULL Index_length: NULL Data_free: NULL Auto_increment: NULL Create_time: NULL Update_time: NULL Check_time: NULL Collation: NULL Checksum: NULL Create_options: NULL Comment: VIEW 此处信息表示为视图 1 row in set (0.00 sec) 删除视图 mysql > DROP VIEW view_stu