内容正文:
河北省(计算机类)对口招生
《数据库原理与应用技术-MySQL》复习讲义
模块3 MySQL数据库管理
考点 13 视图
【考纲要求】
1. 理解视图的概念;
2. 掌握视图的作用;
3. 掌握创建视图的语句:CREATE VIEW...AS SELECT;
4. 掌握查看视图的语句:SHOW CREATE VIEW;
5. 掌握修改视图的语句: ALTER VIEW;
6. 掌握更新视图数据的相关语句: INSERT 、UPDATE 、 DELETE;
7. 掌握删除视图的语句:DROP VIEW;
【知识网络】
【知识和技能要点】
一、视图的概念
视图是基于查询结果虚拟出来的虚拟表,本身不存储真实数据,也不占用物理存储空间。
视图本质是一条被保存的SELECT查询语句。用户操作视图时,本质是在操作视图对应的原始数据表。
1.特点
(1)视图是虚拟表,无真实物理数据;
(2) 数据来源于底层原始数据表;
(3)原始表数据更新,视图数据会同步更新。
二、视图的作用
1. 简化复杂查询
对于多表联查、条件复杂的查询语句,可以封装为视图,后续直接查询视图即可,无需重复编写复杂SQL。
2. 提高数据安全性
可以隐藏原始表的敏感字段(如手机号、密码、身份证号),只开放用户可查看的字段,实现数据权限控制。
3. 统一查询接口
固定查询逻辑,所有人员统一使用视图查询,避免查询语句不一致导致的数据误差。
4. 逻辑解耦
底层数据表结构微调时,可通过视图屏蔽差异,减少程序SQL修改成本。
三、创建视图语句
1.语法格式
CREATE VIEW 视图名
AS
SELECT 查询语句;
2.说明
(1)CREATE VIEW 为创建视图固定关键字;
(2)AS 后面必须跟合法的SELECT查询语句;
(3)视图名称不能与数据表名重复;
(4)视图创建成功后,可以像数据表一样直接查询。
四、查看视图
1.功能
查看视图的创建语句、结构、定义源码。
2.语法格式
SHOW CREATE VIEW 视图名;
五、修改视图
1.功能
修改已有视图的查询逻辑、字段、查询条件,不会修改原始数据表。
2.语法格式
ALTER VIEW 视图名
AS
SELECT 新的查询语句;
说明
(1)ALTER VIEW 是专门修改视图的语句,不能修改数据表;
(2)修改视图只会覆盖原有视图的查询逻辑,不影响原表数据和结构。
六、更新视图
视图无真实数据,对视图进行增、改、删,本质是操作原始数据表。
1. 视图插入数据 INSERT
INSERT INTO 视图名(字段1,字段2) VALUES(值1,值2);
2.视图修改数据 UPDATE
UPDATE 视图名 SET 字段=值 WHERE 条件;
3.视图删除数据 DELETE
DELETE FROM 视图名 WHERE 条件;
七、删除视图
1.功能
删除指定视图,只删除虚拟视图结构,不会删除原始数据表和数据。
2.语法格式
DROP VIEW 视图名;
3.说明
(1)DROP VIEW:删除视图,不删数据、不删原表;
(2)DROP TABLE:删除数据表,会删除真实数据与表结构;
(3)DELETE:删除表/视图中的数据,不删结构。
八、视图与索引对比
对比维度
视图(View)
索引(Index)
本质
虚拟表、保存的SELECT语句
数据查询目录、优化结构
物理存储
不占用物理空间
占用物理存储空间
核心功能
简化查询、数据安全、权限控制
提升查询速度、约束数据唯一性
数据操作
支持增删改查(简单视图)
仅辅助查询,不能操作数据
对增删改影响
无影响
降低增删改效率
删除影响
只删视图逻辑,原表数据不变
只删索引结构,原表数据不变
【练习题】
一、填空题
1.视图的本质是数据库中被保存的一条________语句。
2.创建视图的标准语法关键字为________ VIEW。
3.向视图插入数据的SQL关键字是________。
4.创建视图时,CHECKOPTION短语的可选参数CASCADED为默认值,是保证更新视图满足所有________的条件。
5.视图是从基本表或已定义的视图中导出的表,数据库中实际存放的是视图的________而不是数据。
二、选择题
1.下列关于视图本质的说法正确的是( )
A. 真实的数据表 B. 保存的SELECT查询语句(虚拟表) C. 索引结构 D. 存储过程
2.原始数据表数据发生更新后,视图的数据会()
A. 同步更新 B. 保持不变 C. 自动清空 D. 报错
3.下列不属于视图核心作用的是( )
A. 简化复杂查询 B. 提升数据表查询速度 C. 提高数据安全性 D. 统一查询接口
4.创建视图的核心关键字组合是( )
A. CREATE TABLE B. CREATE VIEW C. CREATE INDEX D. ALTER VIEW
5.下列关于视图名称的规则说法正确的是( )
A. 可以和数据表名重复 B. 不能和数据表名重复
C. 必须以v_开头 D. 可以使用特殊符号
6.修改视图后,对原始数据表的影响是( )
A. 修改表结构 B. 删除表数据 C. 无任何影响 D. 同步修改数据
7.删除视图的标准语法关键字是( )
A. DELETE VIEW B. DROP VIEW C. REMOVE VIEW D. CLEAR VIEW
8.视图和索引的共同特点是( )
A. 都是虚拟表 B. 都不是真实数据表 C. 都可增删改数据 D. 都能优化查询速度
9.下列关于视图与索引的说法正确的是()
A. 二者都占用物理空间 B. 索引占用物理空间,视图不占用
C. 都能简化查询 D. 都能加快查询
10.执行DROP VIEW语句的后果是( )
A. 删除原表数据 B. 删除原表结构
C. 仅删除视图,原表无变化 D. 清空索引数据
3、 判断题
1.视图和索引都不是真实数据表。( )
2. 视图存储数据,索引不存储数据。( )
3. 索引可以简化复杂查询。( )
4.视图可以提升查询速度。( )
5. 删除索引会导致数据表数据丢失。( )
6. 删除视图会删除底层数据表。( )
7.视图可以统一查询逻辑,避免查询数据不一致问题。()
8.SHOW CREATE VIEW 语句可以查看视图的创建源码。()
9.DELETE语句可以删除视图中的数据,不删除视图结构。()
10.视图支持增删改查,索引不能直接操作数据。()
4、 命令题
1. 已知学生表 student(id,name,age,gender),请编写SQL语句,创建视图 v_stu,查询表中所有学生的 id、name、age 字段。
2. 已知已有视图 v_stu,请修改该视图,只查询年龄大于18岁的学生id、name。
3. 通过视图 v_stu,向原始学生表插入一条数据:id=101,name=张三,age=19。请写出对应SQL语句。
4. 通过视图 v_stu,将id=101的学生年龄修改为20岁,写出对应SQL语句。
5. 删除视图 v_stu(仅删除视图结构,保留原表数据)。
【答案】
一、填空题
1. SELECT 2.CREATE 3. INSERT 4. 相关视图和表 5. 定义
二、选择题
1. B 2.A 3. B 4. B 5.B 6. C 7. B 8. B 9.B 10. C
三、判断题
1. √ 2. × 3. × 4.× 5.× 6. × 7.√ 8. √ 9.√ 10. √
四、命令题
1.CREATE VIEW v_stu AS SELECT id,name,age FROM student;
2.ALTER VIEW v_stu AS SELECT id,name FROM student WHERE age>18;
3.INSERT INTO v_stu(id,name,age) VALUES(101,'张三',19);
4.UPDATE v_stu SET age=20 WHERE id=101;
5.DROP VIEW v_stu;
原创精品资源学科网独家享有版权,侵权必究
学科网(北京)股份有限公司
学科网(北京)股份有限公司
$