首页 > 试题广场 >

关系型数据库创建表都有主键。以下对主键描述正确的是:

[单选题]
关系型数据库创建表都有主键。以下对主键描述正确的是:
  • 主键是唯一索引,唯一索引也是主键
  • 主键是一种特殊的唯一性索引,只可以是聚集索引
  • 主键是唯一、不为空值
    的列
  • 对于聚集索引来说,创建主键时,不会自动创建主键的聚集索引
主键是一种约束,唯一索引是一种索引,两者在本质上是不同的。 主键创建后一定包含一个唯一性索引,唯一性索引并不一定就是主键。 唯一性索引列允许空值,而主键列不允许为空值。 主键列在创建时,已经默认为空值 + 唯一索引了。 主键可以被其他表引用为外键,而唯一索引不能。 一个表最多只能创建一个主键,但可以创建多个唯一索引。 主键更适合那些不容易更改的唯一标识,如自动递增列、身份证号等。 在 RBO 模式下,主键的执行计划优先级要高于唯一索引。 两者可以提高查询的速度。
发表于 2020-01-01 16:31:25 回复(1)
主键索引是唯一索引的一种特殊类型,两者有区别,比如主键索引不能为空,唯一索引可以
发表于 2019-05-24 15:38:42 回复(0)
聚集索引:类似字典的拼音目录。表中的数据按照聚集索引的规则来存储的。就像新华字典。整本字典是按照A-Z的顺序来排列。这也是一个表只能有一个聚集索引的原因。因为这个特点,具体索引应该建在那些经常需要order by,group by,按范围取值的列上。因为数据本身就是按照聚集索引的顺序存储的。不应该建在需要频繁修改的列上,因为聚集索引的每次改动都以为这表中数据的物理数据的一次重新排序。就想新华字典一样。聚集索引适合建立在大数据量但是小数目不同值的列上,就像新华字典有收录了一两万的汉字,但是其拼音只有A-Z一样。但是并不是不同值越少越好。如果一个列只有极少值,如性别只有男女,在大数据量下无论是聚集索引和非聚集索引都是不适合建立的。因为其不同值辣么少。就像要查性别为男的,那么平均有一半就符合条件。就算建立索引也用处不大。值得注意的是有些数据库如sql server在你创建主键时会默认主键即为聚集索引,如果没有指定主键数据库本身也会创建一个不可见的索引,因为表本身总要有个排序规则是吧。主键作为聚集索引与大数据量但是小数目不同值适合建立聚集索引的规则是相违背的。即使这样也需要这样做的原因刚才说过,表总是需要一个排序规则的。如果你有更加合适的列适合做聚集索引是可以修改聚集索引的,但是聚集索引的修改一定一定一定要谨慎,因为聚集索引涉及要数据的物理存放数据。不合理的聚集索引会十分严重的拖累数据库的性能。注意,虽然一般主键默认就是聚集索引,但是并不代表聚集索引的值具有唯一约束,主键不等于具体索引。
发表于 2020-06-21 21:16:15 回复(0)
聚集索引只可以是主键,但主键不是聚集索引,它不是索引,B选项主谓关系和主语都错了
发表于 2021-06-30 15:41:13 回复(0)
A. 主键=无空值+唯一索引,主键是约束不是索引
B. 主键是约束不是索引,可以有聚集或非聚集索引
D. 会自动创建,默认主键有聚集索引

发表于 2023-02-25 15:48:04 回复(0)
在创建修建的时候,会自动创建聚集性索引,所有的查询语录(除了添加了复合索引,覆盖索引),最后都是通过主键进行聚集性索引
发表于 2020-06-19 19:55:10 回复(0)
null 具有不通值
发表于 2019-08-24 18:31:56 回复(0)
c选项如果我用唯一约束和非空约束约束一列就是主键了?主键不是必须可以被引用吗?
发表于 2019-05-27 15:54:30 回复(4)