第61练 项目八 创建索引《数据库原理与应用技术-MySQL》(河北科学技术出版社)一课一练(河北省)

2026-05-07
| 2份
| 7页
| 38人阅读
| 0人下载

内容正文:

编写说明:依托三阶支架资源编写方案,《一课一练》明确基础层具象化支架定位,作为课堂同步配套资源,其内容与课堂教学深度绑定,并且精准匹配中职学生知识基础与学习特质,遵循"由浅入深、循序渐进"的认知规律,聚焦基础性与实效性核心,通过拆解知识点、简化认知难度,切实降低学习门槛,为后续知识巩固与能力提升筑牢根基,是优质课后作业首选。 本卷是《数据库原理与应用技术-MySQL》(河北科学技术出版社)《一课一练》第61练,内容是创建索引。 《数据库原理与应用技术-MySQL》(河北科学技术出版社)《一课一练》 第61练 创建索引 一、单项选择题 1. 关于MySQL中索引的说法,下列选项中正确的是( )。 A. 索引是一种用于修改数据的数据结构,可以加速UPDATE和DELETE操作 B. 在InnoDB存储引擎中,数据表的物理存储顺序由唯一索引决定 C. 索引可以创建在任意数据类型的列上,包括BLOB和TEXT类型 D. 一张InnoDB表可以拥有多个聚簇索引 2.某电商系统中,订单表orders含有字段order_id(主键)、user_id、order_date、amount。为了提高按user_id查询订单,同时又要保证user_id列的值不重复(但允许有空值),应创建哪种类型的索引? A. 普通索引 B. 唯一索引 C. 主键索引 D. 全文索引 3.在MySQL中,对于复合索引(a, b, c),下列哪个查询条件能够完全使用该复合索引进行快速查找? A. WHERE b = 10 AND c = 20 B. WHERE a = 5 AND c = 30 C. WHERE a = 5 AND b = 15 AND c = 25 D. WHERE c = 40 AND a = 8 4.下列关于CREATE INDEX语句的说法,错误的是( )。 A. CREATE INDEX idx_name ON student(score DESC); 可以创建降序索引 B. CREATE UNIQUE INDEX idx_phone ON users(phone); 可以创建唯一索引 C. CREATE FULLTEXT INDEX idx_content ON articles(content); 可以创建全文索引 D. CREATE PRIMARY INDEX idx_id ON student(id); 可以创建主键索引 5.在MySQL 8.0中,执行以下SQL语句创建表: CREATE TABLE employee ( id INT PRIMARY KEY, name VARCHAR(50), dept_id INT, INDEX idx_dept (dept_id) INVISIBLE ); 关于索引idx_dept,以下说法正确的是( )。 A. 该索引在创建时不可见,但在查询时优化器仍会强制使用它 B. 该索引不可见,优化器在执行查询时会忽略此索引,但索引本身仍在维护(如插入、更新时更新) C. 该索引不可见,且MySQL不会维护该索引,相当于索引被删除 D. 该索引创建失败,因为普通索引不能设置为INVISIBLE 二、填空题 1.在InnoDB存储引擎中,数据的物理存储顺序与________索引的顺序一致,这种索引被称为聚簇索引。 2.在CREATE INDEX语句中,创建唯一索引使用的关键字是________。 3.在创建表时,若希望索引不被优化器使用,可以在索引定义后添加关键字________将其设置为不可见索引。 4.全文索引可以在CHAR、VARCHAR或________类型的列上创建,用于对文本中的关键词进行快速搜索。 5.使用ALTER TABLE语句向已有表中添加索引的基本语法为:ALTER TABLE 表名 ADD [索引类型] INDEX 索引名 (字段名); 其中,用于创建唯一索引的索引类型关键字是________。 原创精品资源学科网独家享有版权,侵权必究! 学科网(北京)股份有限公司 $ 编写说明:依托三阶支架资源编写方案,《一课一练》明确基础层具象化支架定位,作为课堂同步配套资源,其内容与课堂教学深度绑定,并且精准匹配中职学生知识基础与学习特质,遵循"由浅入深、循序渐进"的认知规律,聚焦基础性与实效性核心,通过拆解知识点、简化认知难度,切实降低学习门槛,为后续知识巩固与能力提升筑牢根基,是优质课后作业首选。 本卷是《数据库原理与应用技术-MySQL》(河北科学技术出版社)《一课一练》第61练,内容是创建索引。 《数据库原理与应用技术-MySQL》(河北科学技术出版社)《一课一练》 第61练 创建索引 一、单项选择题 1. 关于MySQL中索引的说法,下列选项中正确的是( )。 A. 索引是一种用于修改数据的数据结构,可以加速UPDATE和DELETE操作 B. 在InnoDB存储引擎中,数据表的物理存储顺序由唯一索引决定 C. 索引可以创建在任意数据类型的列上,包括BLOB和TEXT类型 D. 一张InnoDB表可以拥有多个聚簇索引 【答案】C 【解析】 A错误:索引主要用于快速查询数据,虽然索引可以加速带条件的UPDATE和DELETE(因为需要先定位记录),但索引本身不是为修改数据设计的,相反索引会降低插入、更新、删除的速度(因为需要维护索引结构)。 B错误:在InnoDB中,决定物理存储顺序的是主键索引(聚簇索引),而非唯一索引。唯一索引属于辅助索引,不决定物理存储顺序。 C正确:MySQL官方文档指出“所有数据类型都可以被索引”,BLOB和TEXT类型也可以创建索引,但通常需要指定前缀长度。 D错误:InnoDB表中只能有一个聚簇索引(通常是主键),其他索引均为辅助索引。 2.某电商系统中,订单表orders含有字段order_id(主键)、user_id、order_date、amount。为了提高按user_id查询订单,同时又要保证user_id列的值不重复(但允许有空值),应创建哪种类型的索引? A. 普通索引 B. 唯一索引 C. 主键索引 D. 全文索引 【答案】B 【解析】 A错误:普通索引允许重复值和空值,但题目要求“不重复”,不满足。 B正确:唯一索引(UNIQUE INDEX)要求列值唯一,但允许NULL值(多个NULL值被视为不同值,在MySQL中唯一索引允许存在多个NULL)。符合“不重复但允许空值”的要求。 C错误:主键索引要求值唯一且不能为空,不符合“允许有空值”的要求。且一张表只能有一个主键,order_id已为主键。 D错误:全文索引用于文本关键词搜索,不适用于普通数值或短字符串的唯一性约束。 3.在MySQL中,对于复合索引(a, b, c),下列哪个查询条件能够完全使用该复合索引进行快速查找? A. WHERE b = 10 AND c = 20 B. WHERE a = 5 AND c = 30 C. WHERE a = 5 AND b = 15 AND c = 25 D. WHERE c = 40 AND a = 8 【答案】C 【解析】 最左前缀原则:复合索引(a, b, c)只能从索引的最左侧列开始匹配,跳过前面的列则后续索引列无法使用。 A错误:查询条件缺少a,无法使用索引的第一个列,因此不能完整使用该复合索引(可能部分使用或全表扫描)。 B错误:条件包含a但跳过了b,只能用到索引的第一列a,c无法使用。 C正确:同时使用了a、b、c三个列,且顺序与索引定义顺序一致,可以完全使用复合索引。 D错误:虽然包含a,但条件的顺序不影响SQL解析,实际上等同于a=8 AND c=40,仍然跳过了b,只能用到a列。 注意:查询条件的书写顺序不影响索引使用,关键是存在的条件列是否从最左侧连续。 4.下列关于CREATE INDEX语句的说法,错误的是( )。 A. CREATE INDEX idx_name ON student(score DESC); 可以创建降序索引 B. CREATE UNIQUE INDEX idx_phone ON users(phone); 可以创建唯一索引 C. CREATE FULLTEXT INDEX idx_content ON articles(content); 可以创建全文索引 D. CREATE PRIMARY INDEX idx_id ON student(id); 可以创建主键索引 【答案】D 【解析】 A正确:CREATE INDEX支持在索引定义中指定ASC或DESC,可以创建降序索引。 B正确:使用UNIQUE关键字可以创建唯一索引。 C正确:使用FULLTEXT关键字可以创建全文索引。 D错误:CREATE INDEX语句不能创建主键索引。主键索引必须通过PRIMARY KEY约束在CREATE TABLE或ALTER TABLE中定义。这是题目考查的关键知识点。 5.在MySQL 8.0中,执行以下SQL语句创建表: CREATE TABLE employee ( id INT PRIMARY KEY, name VARCHAR(50), dept_id INT, INDEX idx_dept (dept_id) INVISIBLE ); 关于索引idx_dept,以下说法正确的是( )。 A. 该索引在创建时不可见,但在查询时优化器仍会强制使用它 B. 该索引不可见,优化器在执行查询时会忽略此索引,但索引本身仍在维护(如插入、更新时更新) C. 该索引不可见,且MySQL不会维护该索引,相当于索引被删除 D. 该索引创建失败,因为普通索引不能设置为INVISIBLE 【答案】B 【解析】 A错误:不可见索引(INVISIBLE)的作用是让优化器忽略该索引,即使使用FORCE INDEX也无法强制使用,而不是“强制使用”。 B正确:不可见索引对优化器不可见,但DML操作(INSERT、UPDATE、DELETE)仍然会维护该索引,以保证如果将索引重新设为可见时数据正确。 C错误:索引仍然存在且被维护,只是查询优化器不使用它。 D错误:从MySQL 8.0开始,支持将普通索引、唯一索引等设置为INVISIBLE(主键索引不能设置不可见)。 二、填空题 1.在InnoDB存储引擎中,数据的物理存储顺序与________索引的顺序一致,这种索引被称为聚簇索引。 【答案】 主键 【解析】 InnoDB表中,主键索引即为聚簇索引,叶子节点存储完整的数据行记录,数据按照主键值的顺序物理存放。若无显式定义主键,InnoDB会自动选择第一个唯一非空索引作为聚簇索引。 2.在CREATE INDEX语句中,创建唯一索引使用的关键字是________。 【答案】 UNIQUE 【解析】 语法格式:CREATE UNIQUE INDEX 索引名 ON 表名(列名); UNIQUE关键字确保索引列中的值唯一(允许空值,但多个NULL视为不同)。 3.在创建表时,若希望索引不被优化器使用,可以在索引定义后添加关键字________将其设置为不可见索引。 【答案】 INVISIBLE 【解析】 语法示例:INDEX idx_name (col_name) INVISIBLE。默认可见(VISIBLE)。不可见索引可用于测试删除索引对查询性能的影响而无需实际删除。 4.全文索引可以在CHAR、VARCHAR或________类型的列上创建,用于对文本中的关键词进行快速搜索。 【答案】 TEXT 【解析】 MySQL中全文索引(FULLTEXT)主要适用于大文本字段,支持CHAR、VARCHAR和TEXT类型。需使用MATCH() AGAINST()进行全文检索。 5.使用ALTER TABLE语句向已有表中添加索引的基本语法为:ALTER TABLE 表名 ADD [索引类型] INDEX 索引名 (字段名); 其中,用于创建唯一索引的索引类型关键字是________。 【答案】 UNIQUE 【解析】 完整示例:ALTER TABLE employee ADD UNIQUE INDEX idx_email (email); 类似地,还可以使用FULLTEXT、SPATIAL等。 原创精品资源学科网独家享有版权,侵权必究! 学科网(北京)股份有限公司 $

资源预览图

第61练 项目八 创建索引《数据库原理与应用技术-MySQL》(河北科学技术出版社)一课一练(河北省)
1
所属专辑
由于学科网是一个信息分享及获取的平台,不确保部分用户上传资料的 来源及知识产权归属。如您发现相关资料侵犯您的合法权益,请联系学科网,我们核实后将及时进行处理。