关于视图的定义
《SQLite权威指南》是这么定义的,视图即是虚拟表,也称为派生表,因为它们的内容都派生自其它表的查询结果。虽然视图看起来感觉和基本表一样,但是它们部署基本表。基本表的内容是持久的,而视图的内容是在使用过程中动态产生的。
简单的理解为,视图就是通过一条SELECT语句执行后返回的结果集作为视图表的数据,即create view 视图表名 as select 语句,是对若干张基本表的引用。
一般视图表在命名时,会在其中加上view,另外表名通常会有前缀(如:tb_或者tbl_),因此,视图表的前缀为(tb_view_或者tbl_view_),然后,后面加上表名(注意:视图名不能与基本表名一样)。
为什么使用视图呢?
理由有:复杂查询的需求。我们在定义了一些基本表之后,经常会有一些复杂的关联查询,此时,我们就可以将复杂的关联查询结果集设置为视图。对于,应用层来说,视图的用法和基本表的用法一致。这样带来的好处有:复杂关联语句无需应用层向MySQL数据库发送,只要请求请求相应的视图,除了简化应用层的开发,还能够提升查询速度。
举个栗子:
创建用户信息表:tb_user_center
CREATE TABLE `tb_user_center` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`cuid` int(10) unsigned NOT NULL COMMENT '外部账号uid',
`username` varchar(50) NOT NULL COMMENT '注册用户名',
`staff_id` varchar(50) NOT NULL DEFAULT '' COMMENT '工号