首页 > 解决方案 > 访问关系表是什么意思?

问题描述

所以我有一个关系表:

书(bNum,bName,bPubDate,bSubject,bCost)

和一个索引

ID(bPubDate, bSubject, bCost)

我的任务是执行一条 SQL 语句,该语句将以下列方式使用索引:

SELECT 语句的执行必须垂直遍历索引,并且不能访问关系表 BOOK。

令我困惑的是“不得访问关系表 BOOK ”的声明。

这是否意味着如果我要选择不在索引中的东西,它将访问关系表?

例如

SELECT bName FROM BOOK;

这是否也意味着如果我要选择索引的一部分,它将不会访问关系表?

例如

SELECT bPubDate, bSubject, bCost FROM BOOK;

希望有人可以为我澄清这一点。谢谢。

标签: sqldatabaseindexingrelational-database

解决方案


这是否意味着如果我要选择不在索引中的东西,它将访问关系表?

对,那是正确的。

这是否也意味着如果我要选择索引的一部分,它将不会访问关系表?

例如

从书中选择 bPubDate、bSubject、bCost;

是的,您提供的示例查询应该满足该问题。如果要确保还“垂直遍历索引”,则可能还需要ORDER BY索引中的列:

SELECT bPubDate, bSubject, bCost FROM BOOK ORDER BY bPubDate, bSubject, bCost

虽然我怀疑这ORDER BY是不必要的,但结果无论如何都会按照这个顺序结束。


推荐阅读