常见的数据库对象
表 TABLE
数据字典
约束 CONSTRAINT
视图 VIEW
索引 INDEX
存储过程 PROCESS
存储函数 FUNCTION
触发器 TRIGGER
视图VIEW
1、引入
为什么使用视图?
视图可以帮助我们使用表的一部分,针对不同的用户制定不同的查询视图。
对视图作出的修改,相当于在表中作出修改,可以得到及时的反馈。
2、视图的理解
视图是一种虚拟表,本身不存储数据,占用很少内存空间。它是SQL中的一个重要概念。
视图建立在已有表的基础上,视图赖以建立的这些表称为基表。
视图是向用户提供基表数据的一种表现形式,一般情况下,小型项目的数据库可以不使用视图,但大型项目中,视图具有无可替代的价值。
关于视图操作的特点:
(1)视图的创建和删除只影响视图本身,不影响对应的基表。
(2)对视图中的数据进行增删改操作时,数据表中的数据会发生相应的变化。反之亦然。
(3)向视图提供数据内容的语句为SELECT语句,可以将试图理解为存储起来的SELECT语句。
视图操作的优点:简化查询,控制数据的访问。
3.创建视图
①单表的视图创建
CREATE VIEW 视图名
AS
SELECT 字段
FROM 表
(WHERE ……);
举例:
②多表的视图创建
视图的创建也可以选择多表中不同的内容,使用JOIN ON 对不同的表进行连接
③格式化数据
视图也可以通过对选择语句的整合修改(利用函数)创建新的字段,格式化数据
④基于视图,创建新视图
4、查看视图
查看,是视图的主要功能。
5、更新视图
UPDATE 视图名
SET ……
WHERE ……
不可更新的视图
①在定义视图的时候指定了“ALGORITHM = TEMPTABLE”,视图将不支持INSERT和DELETE操作;
②视图中不包含基表中所有被定义为非空又未指定默认值的列,视图将不支持INSERT操作;
③在定义视图的SELECT语句中使用了 JOIN联合查询 ,视图将不支持INSERT和DELETE操作;
④在定义视图的SELECT语句后的字段列表中使用了 数学表达式 或 子查询 ,视图将不支持INSERT,也不支持UPDATE使用了数学表达式、子查询的字段值;
⑤在定义视图的SELECT语句后的字段列表中使用 DISTINCT 、 聚合函数 、 GROUP BY 、 HAVING 、UNION 等,视图将不支持INSERT、UPDATE、DELETE;
6、删除视图
DROP VIEW IS EXSITS 视图名;
7、视图的优点
(1)操作简单
(2)减少数据的冗余
(3)数据安全
(4)适应灵活多变的需求
(5)能够分解复杂的查询逻辑
8、视图的不足
(1)如果数据表的变更了,我们需要及时对相关的视图进行相关的维护。维护成本高。