Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/85.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql Oracle表索引创建_Sql_Oracle_Indexing - Fatal编程技术网

Sql Oracle表索引创建

Sql Oracle表索引创建,sql,oracle,indexing,Sql,Oracle,Indexing,我创建了一个名为STUDENT的表。它有以下列: 身份证 名字 姓 出生日期 接收日期 出狱日期 此表具有以下主键: 身份证 名字 姓 接收日期 如果要查询此表,只需输入Id和名称,是否需要创建另一个列Id、名称索引?查询时不需要索引。 如果可以使用索引,索引有可能加快查询速度,但会减慢INSERT/UPDATE/DELETE语句的速度 我不清楚Oracle何时启动,但Oracle 10g+将在为表定义主键时自动创建索引。该索引将与构成主键的列相匹配。由于id和name列是主键的一部分,

我创建了一个名为
STUDENT
的表。它有以下列:

  • 身份证
  • 名字
  • 出生日期
  • 接收日期
  • 出狱日期
此表具有以下主键:

  • 身份证
  • 名字
  • 接收日期

如果要查询此表,只需输入Id和名称,是否需要创建另一个列Id、名称索引?

查询时不需要索引。
如果可以使用索引,索引有可能加快查询速度,但会减慢INSERT/UPDATE/DELETE语句的速度


我不清楚Oracle何时启动,但Oracle 10g+将在为表定义主键时自动创建索引。该索引将与构成主键的列相匹配。由于
id
name
列是主键的一部分,因此这对列保证是唯一的,我认为没有必要创建额外的覆盖索引。

主键真的需要四列吗?根据名称判断,它看起来像是
Id
应该是主键(我认为它总是唯一的)。请理解,如果主键确实由四列组成,那么在其他表中,外键约束将有很多列。