1、什么是视图
2、视图相对基本表的优势
3、创建视图
//1、algorithm表示视图选择的算法,undefined表示MySQL自动选择算法;merge表示将使用的视//图语句与视图定义合并起来,使得视图定义的某一部分取代语句对应的部分;temptable表示将//视图的结果存入临时表,然后用临时表来执行语句。//2、[with [cascaded | local] check option]表示视图在更新时保证在视图的权限范围之内//cascaded与local为可选参数,cascaded为默认值,表示更新视图时要满足所有相关视图和表//的条件;local表示更新视图时满足该视图本身定义的条件即可。//3、创建的视图默认属于当前数据库,如果要创建属于其他数据库的视图,则db_name.view_namecreate [or replace] [algorithm = {undefined | merge | temptable}] view view_name [(column_list)] as select_statement [with [cascaded | local] check option] 1》在单表上创建视图,可以给视图指定不同的字段名,创建的时候会与基本表对齐。
mysql> create view v_test as select * from test; Query OK, 0 rows affected (0.00 sec) mysql> select * from v_test; +----+-------+--------+--------+----------+------+ | id | name | deptId | salary | t_time | str | +----+-------+--------+--------+----------+------+ | 1 | Lucy | NULL | 1000 | 10:28:33 | NULL | | 2 | Lura | NULL | 1200 | 10:28:33 | NULL | | 3 | Kevin | NULL | 1500 | 10:28:33 | NULL | | 4 | Nancy | NULL | 1000 | 22:08:38 | NULL | | 5 | Bob | NULL | 1200 | 22:08:38 | NULL | +----+-------+--------+--------+----------+------+ 5 rows in set (0.01 sec) mysql> desc v_test; +--------+-------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +--------+-------------+------+-----+---------+-------+ | id | int(10) | NO | | 0 | | | name | varchar(25) | NO | | NULL | | | deptId | int(11) | YES | | NULL | | | salary | float | YES | | NULL | | | t_time | time | YES | | NULL | | | str | varchar(4) | YES | | NULL | | +--------+-------------+------+-----+---------+-------+ 6 rows in set (0.00 sec) mysql> desc test; +--------+-------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +--------+-------------+------+-----+---------+----------------+ | id | int(10) | NO | PRI | NULL | auto_increment | | name | varchar(25) | NO | | NULL | | | deptId | int(11) | YES | | NULL | | | salary | float | YES | | NULL | | | t_time | time | YES | | NULL | | | str | varchar(4) | YES | | NULL | | +--------+-------------+------+-----+---------+----------------+ 6 rows in set (0.00 sec) mysql>
describe / desc view_name;
show table status like 'view_name';
show create view view_name;
select * from information_schema.views;
mysql> select * from information_schema.views where table_name='v_test' \G *************************** 1. row *************************** TABLE_CATALOG: def TABLE_SCHEMA: mybatis TABLE_NAME: v_test VIEW_DEFINITION: select `mybatis`.`test`.`id` AS `id`,`mybatis`.`test`.`nam e` AS `name`,`mybatis`.`test`.`deptId` AS `deptId`,`mybatis`.`test`.`salary` AS `salary`,`mybatis`.`test`.`t_time` AS `t_time`,`mybatis`.`test`.`str` AS `str` f rom `mybatis`.`test` CHECK_OPTION: NONE IS_UPDATABLE: YES DEFINER: root@localhost SECURITY_TYPE: DEFINER CHARACTER_SET_CLIENT: gbk COLLATION_CONNECTION: gbk_chinese_ci 1 row in set (0.00 sec) mysql>
4、
来源:博客园
作者:ZeroMZ
链接:https://www.cnblogs.com/ZeroMZ/p/11462750.html