GATE1999_2.25
以下哪项是正确的?
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查询的影响的参考,这可以回答这个问题。
答案 0 :(得分:7)
在任何合理的数据库中,您都可以创建一个没有索引或键的表(可以隐式生成索引),在其中插入数据并查询它。
请考虑以下内容(语法可能略有不同,具体取决于您使用的RDBMS,尽管我已尝试尽可能通用):
CREATE TABLE mytable (mycol INT);
INSERT INTO mytable VALUES (1);
SELECT * FROM mytable;
无索引,查询完美无缺。答案B是不正确的。
答案 1 :(得分:2)
SQL查询不会自动消除重复项,显然我们必须使用distinct关键字从结果集中删除重复项。
如果没有索引,它将自动创建索引。
没有两列可以具有相同的名称。
因此以上都不是真的