←

数据库(MySQL) · MySQL

视图和索引

视图和索引

结构化讲义

S2-4 · 3 个大纲考点讲义 · 已精编

练本节题目

S2-4.1

创建和查看视图。

精编讲义 v1#

视图(View)的本质、创建、查看与删除语法

必记
  • 视图的本质:视图是从一张或多张基本表导出的虚拟表,数据库中只存放视图的定义(SELECT 查询语句),不存放视图对应的数据;基本表数据变化会自动反映到视图中。
  • 创建或替换视图:CREATE [OR REPLACE] VIEW 视图名[(列名列表)] AS SELECT查询语句 [WITH CHECK OPTION];(其中 WITH CHECK OPTION 保证通过视图增删改时必须满足视图的 WHERE 条件)。
  • 查看与删除视图:DESCRIBE 视图名; 或 SHOW CREATE VIEW 视图名; 查看定义;DROP VIEW [IF EXISTS] 视图名; 删除视图。
随堂自测(3 题 · 共 157 道关联题)展开作答
填空2 分自测不计入学习进度

从基本表或其它视图中导出的表称为____。

单选2 分自测不计入学习进度

下列关于 SQL用户视图的叙述中,错误的是_________。

单选2 分自测不计入学习进度

在视图的定义语句中, 只能包含 ____。

S2-4.2

用视图检索和修改基本表中数据。

精编讲义 v1#

视图查询与不可更新视图的判定条件

必记
  • 通过视图查询:语法与查询普通表完全一致(SELECT * FROM 视图名 WHERE ...;),系统在底层自动合并视图定义查询基本表。
  • 不可更新视图(必考判断):若视图定义中包含 聚合函数(SUM/AVG/COUNT/MAX/MIN)、DISTINCT、GROUP BY、HAVING、UNION 或算术表达式计算列,则不能对该视图执行 INSERT / UPDATE / DELETE。
随堂自测(3 题 · 共 79 道关联题)展开作答
单选2 分自测不计入学习进度

对于 UPDATE 语句的实现说法正确的是____。

填空2 分自测不计入学习进度

当对视图进行 UPDATE、INSERT 和 DELETE 操作时,为了保证被操作的行满足视图定义中子查询语句的谓词条件,应在视图定义语句中使用可选择项 ____。

填空2 分自测不计入学习进度

用 SQL 语句将学号为 100 的学生的专业改为“计算机”。

S2-4.3

创建索引。

精编讲义 v1#

索引的作用、分类与创建/删除语法

必记
  • 索引的利弊:索引能大幅加快 SELECT 查询、连接与排序速度,但会占用额外磁盘空间,并降低 INSERT / UPDATE / DELETE 的写操作速度(需同步维护索引树)。
  • 创建索引三种方式:① CREATE [UNIQUE | FULLTEXT] INDEX 索引名 ON 表名(列名 [ASC|DESC]);;② ALTER TABLE 表名 ADD [UNIQUE] INDEX 索引名(列名);;③ 建表时在 CREATE TABLE 内写 INDEX 索引名(列名)。
  • 查看与删除索引:SHOW INDEX FROM 表名; 查看表上的索引;DROP INDEX 索引名 ON 表名; 或 ALTER TABLE 表名 DROP INDEX 索引名; 删除索引。
随堂自测(3 题 · 共 136 道关联题)展开作答
填空2 分自测不计入学习进度

使用CREATE TABLE语句的____子句,在创建基本表时可以启用全文搜索。

单选2 分自测不计入学习进度

表 test(a int,b int,time date)涉及以下 3 条 sql: select * from test where a=1 and b=1; select * from test where b=1; select * from test where b=1 order by time desc; 只建一个索引,如何建最优()

单选2 分自测不计入学习进度

ALTER TABLE 创建各类索引,错误的是()