如果关系没有索引,SQL 查询是否有效?
Whether SQL query will work if there are no indexes on the relations?
GATE1999_2.25
以下哪项 is/are 正确?
A) An SQL query automatically eliminates duplicates
B) An SQL query will not work if there are no indexes on the relations
C) SQL permits attribute names to be repeated in the same relation
D) None of the above
这是 GATE 1999 竞争性考试题。 A、C选项很容易排除,请回答B选项是否正确,为什么?
我浏览了多个数据库的 SQL 章节并在网上搜索,但我没有找到任何关于索引对 SQL 查询的影响的参考资料,可以回答这个问题。
在任何合理的数据库中,您可以创建一个没有索引或键(这将隐式生成索引)的 table,向其中插入数据并查询它。
请考虑以下内容(语法可能略有不同,具体取决于您使用的 RDBMS,尽管我已尝试尽可能通用):
CREATE TABLE mytable (mycol INT);
INSERT INTO mytable VALUES (1);
SELECT * FROM mytable;
没有任何索引,查询完美运行。答案 B 只是不正确。
SQL 查询不会自动消除重复项,明确地我们必须使用 distinct 关键字从结果集中删除重复项。
如果没有索引,它会自动创建索引。
两列不能同名。
因此上述None为真
GATE1999_2.25
以下哪项 is/are 正确?
A) An SQL query automatically eliminates duplicates
B) An SQL query will not work if there are no indexes on the relations
C) SQL permits attribute names to be repeated in the same relation
D) None of the above
这是 GATE 1999 竞争性考试题。 A、C选项很容易排除,请回答B选项是否正确,为什么?
我浏览了多个数据库的 SQL 章节并在网上搜索,但我没有找到任何关于索引对 SQL 查询的影响的参考资料,可以回答这个问题。
在任何合理的数据库中,您可以创建一个没有索引或键(这将隐式生成索引)的 table,向其中插入数据并查询它。
请考虑以下内容(语法可能略有不同,具体取决于您使用的 RDBMS,尽管我已尝试尽可能通用):
CREATE TABLE mytable (mycol INT);
INSERT INTO mytable VALUES (1);
SELECT * FROM mytable;
没有任何索引,查询完美运行。答案 B 只是不正确。
SQL 查询不会自动消除重复项,明确地我们必须使用 distinct 关键字从结果集中删除重复项。
如果没有索引,它会自动创建索引。
两列不能同名。
因此上述None为真