sql - 访问关系表是什么意思?
问题描述
所以我有一个关系表:
书(bNum,bName,bPubDate,bSubject,bCost)
和一个索引
ID(bPubDate, bSubject, bCost)
我的任务是执行一条 SQL 语句,该语句将以下列方式使用索引:
SELECT 语句的执行必须垂直遍历索引,并且不能访问关系表 BOOK。
令我困惑的是“不得访问关系表 BOOK ”的声明。
这是否意味着如果我要选择不在索引中的东西,它将访问关系表?
例如
SELECT bName FROM BOOK;
这是否也意味着如果我要选择索引的一部分,它将不会访问关系表?
例如
SELECT bPubDate, bSubject, bCost FROM BOOK;
希望有人可以为我澄清这一点。谢谢。
解决方案
这是否意味着如果我要选择不在索引中的东西,它将访问关系表?
对,那是正确的。
这是否也意味着如果我要选择索引的一部分,它将不会访问关系表?
例如
从书中选择 bPubDate、bSubject、bCost;
是的,您提供的示例查询应该满足该问题。如果要确保还“垂直遍历索引”,则可能还需要ORDER BY
索引中的列:
SELECT bPubDate, bSubject, bCost FROM BOOK ORDER BY bPubDate, bSubject, bCost
虽然我怀疑这ORDER BY
是不必要的,但结果无论如何都会按照这个顺序结束。
推荐阅读
- python - 用 Python 用 Selenium 选择一个孩子
- python - 在 Python 中求解一阶和二阶微分方程组
- python - 如何在具有不同索引级别的熊猫中合并多索引?
- python - AssertionError:未实现的方法 'GET' - API FLASK
- php - 严重性:警告消息:mysqli::real_connect(): (HY000/1049): Unknown database 'asboha'
- javascript - 如何在 VueJS 中的按钮上切换背景颜色
- vba - 如何在多选列表框中过滤 MS Access 交叉表查询以进行多项选择
- java - 呼叫权限不起作用 - 您如何在 Android Studio 的应用程序中拨打电话?
- python - 将多索引 Pandas 数据框转换为 JSON
- javascript - VueJS:在路由器之间传递数据