我对RDBMS中的这些术语感到非常困惑: 键和索引:它们是相同的概念吗?例如:
CREATE TABLE FOO_TABLE (
THE_KEY INTEGER PRIMARY KEY
FOO INTEGER NOT NULL,
BAR INTEGER NOT NULL,
QUZ INTEGER UNIQUE,
CONSTRAINT UNQ_FOO UNIQUE (FOO, BAR)
);
在这张表中,哪个是关键?哪个可以称为索引?这张表中有'非主键'吗?它们如何提高搜索效率? 感谢。
答案 0 :(得分:0)
密钥用于唯一标识记录。主键是识别给定表中记录的主要方式,应存在于数据库的每个表中。唯一键是附加键。
索引用于加速查询。通常会为每个键自动创建索引,因为使用键作为搜索条件非常常见。
在您的示例中,您有一个名为“THE_KEY”的单列主键和由“FOO”和“BAR”列组成的两列唯一键。您也应该有两个索引,每个索引一个。
答案 1 :(得分:-1)
从我之前的回答here复制到一个不同但相关的问题。