前言:
今天对项目中的表视图进行了修改,一个科班出身的程序员一定要好好的研究一下,要不然对不起我的数据库老师啊。想着用了那么久的东西记录下来,记录下简单的操作方式留个纪念,多少年后回头看看自己走过的路。
**
1.表视图的概念
**
引用广大博客中的话总结一下就是:
视图是MySQL 5.0中增加的三大新功能之一(另外两个是存储过程与触发器)。
MySQL视图是一个虚拟表,其内容由查询定义。同真实的表一样,视图包含一系列带有名称的列和行数据。但是,视图并不在数据库中以存储的数据值集形式存在。行和列数据来自由定义视图的查询所引用的表,并且在引用视图时动态生成。
对其中所引用的基础表来说,MySQL视图的作用类似于筛选。定义视图的筛选可以来自当前或其它数据库的一个或多个表,或者其它视图。通过视图进行查询没有任何限制,通过它们进行数据修改时的限制也很少。
MySQL在定义视图上没什么限制,基本上所有的查询都可定义为视图,并且也支持可更新视图
2.创建视图
1.准备一张普通的表
建表语句:
CREATE TABLE `test` (
`id` int(11) NOT NULL COMMENT 'id',
`name` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '姓名',
`channel` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '渠道',
PRIMARY KEY (`id`, `channel`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic PARTITION BY RANGE COLUMNS (`channel`)
PARTITIONS 4
(PARTITION `pedu` ENGINE = InnoDB MAX_ROWS = 0 MIN_ROWS = 0 ,
PARTITION `pmax` ENGINE = InnoDB MAX_ROWS = 0 MIN_ROWS = 0 ,
PARTITION `psequip` ENGINE = InnoDB MAX_ROWS = 0 MIN_ROWS = 0 ,
PARTITION `ptour` ENGINE = InnoDB MAX_ROWS = 0 MIN_ROWS = 0 )
2.开始分表
创建语句:
视图只供查询使用
CREATE VIEW <视图名> AS <SELECT语句>
创建视图测试:
查询结果一致 成功!
3.更新视图
更新视图有两种方式 分别为: CREATE OR REPLACE VIEW 语句修改视图 和 ALTER 语句修改视图
区别:
- CREATE OR REPLACE VIEW:如果存在视图则更新,如果不存在着创建
- ALTER :只是更新
今天咱们使用第二种:
ALTER VIEW <视图名> AS <更新后的SELECT语句>
测试:
3.删除视图
DROP VIEW IF EXISTS <视图名>
测试:
【注】参考于清华大学出版社《MySQL数据库应用案例课堂》2016年1月第1版