SQL Server数据库主键与索引的几点区别

我们在使用SQL Server数据库的时候常常会创建主键索引,那么主键和索引到底有什么样的不同呢?本文我们主要介绍了主键和索引的区别。

主键和索引的区别如下:

主键是索引,但索引不一定是主键。

主键具有唯一性,而只有唯一性索引才具有唯一性;主键的值不能为空,不能重复。 索引可以在程序中动态创建删除。也可以是任何有序的字段。

如果在一个表中,列A、B、C   被设为主键的情况下,当需要将A,B,C 设为索引时,A,B,C被设为主键,数据库自动会建立索引,不需要再建索引;另外需要对列A,B,C,D,E建立索引时,不能只对D,E建立索引,必须在索引中包含所有的索引列即:A,B,C,D,E。

主键、外键、索引:

索引只是为了排序与加快浏览度!也可对表数据作证!一个表只能有一个主键,外键与主键差不多!两者都能将表联系起来,定义规则!

主键,每一张表中必须有的,它是唯一的,唯一能标识每一条记录。

外键,一张表中的外键在另一张表中只能是主键,一般情况下,要删除一张表中的主键必须首先要确保其它表中的没有相同外键(即该表中的主键没有一个外键和它相关联)

索引只是加快查询,排序速度,主键和外键定义后可保证数据完整性,省去编写某些触发器。主键最好每张表上都定义,小数据库用唯一索引也可以。

每个表最好有主键,用来保证数据完整性。表的外键是另一表的主键,外键将两表联系起来。   索引只是提高查询排序的速度。

时间: 2024-11-06 09:59:51

SQL Server数据库主键与索引的几点区别的相关文章

数据库主键和索引关联

一直以来不能够分清主键和索引的关系,在此梳理以备不时之需 1.主键 主键就是能够唯一标识表中某一行的属性或属性组,一个表只能有一个主键,但可以有多个候选索引. 主键主要作用:1.惟一地标识一行. 2.作为一个可以被外键有效引用的对象. 2.索引 包含着对数据表里所有记录的引用指针. 区别:  一个表中可以有多个唯一性索引,但只能有一个主键.  主键列不允许空值,而唯一性索引列允许空值. 主键一定是唯一性索引,唯一性索引并不一定就是主键. 联系: 主键是为了标识数据库记录唯一性,不允许记录重复,且

关于MySql数据库主键及索引的区别

一.什么是索引?索引用来快速地寻找那些具有特定值的记录,所有MySQL索引都以B-树的形式保存.如果没有索引,执行查询时MySQL必须从第一个记录开始扫描整个表的所有记录,直至找到符合要求的记录.表里面的记录数量越多,这个操作的代价就越高.如果作为搜索条件的列上已经创建了索引,MySQL无需扫描任何记录即可迅速得到目标记录所在的位置.如果表有1000个记录,通过索引查找记录至少要比顺序扫描记录快100倍.  二.索引的类型MySQL提供多种索引类型供选择: 普通索引这是最基本的索引类型,而且它没

SQL Server MYSQL 对外键建立索引的必要性

背景: 大家知道在定义外键时,都会给出on delete .....   on update .....; 这里指定的就是当主表的列发生变化时,从表的列要用怎么样的变化去迎合.对从表中的外键,建立索引的价值就在这里, 当主表的主键发生变化时,这就要把变化传播到从表,首先要找到从表中的行才行啊.想一想如果没有索引,就要对从表 进行scan,如果有索引就可以对表进行index seek:这就可以大大的提高速度.

oracle 数据库主键自动增长sql

我们都知道,在MySQL中,要实现主键的自动递增非常简单.只需要在主键定义的后面加上auto_increment即可, 但是在Oracle中就不是这样,需要分几步来完成 1.建立一个表 create table 户口本  (    户号                   INTEGER                         not null,    户别                   CHAR(20)                        not null,    户主

SQL 数据库主键 ,外键

主键 数据库主键是指表中一个列或列的组合,其值能唯一地标识表中的每一行.这样的一列或多列称为表的主键,通过它可强制表的实体完整性.当创建或更改表时可通过定义 PRIMARY KEY约束来创建主键.一个表只能有一个 PRIMARY KEY 约束,而且 PRIMARY KEY 约束中的列不能接受空值.由于 PRIMARY KEY 约束确保唯一数据,所以经常用来定义标识列. 主键的作用 主键的主要作用如下: (1)保证实体的完整性: (2)加快数据库的操作速度: (3) 在表中添加新记录时,数据库会自

数据库主键

在我们的数据库设计中,不可逃避的就是数据库表的主键,可能有很多朋友没有深入思考过,主键的设计对整个数据库的设计影响很大,因此我们不得不要重视起来. 主键的必要性 : 在有些数据库中,虽然主键不是必需的,但最好为每个表都设置一个主键,不管是单主键还是复合主键.它存在代表着表结构的完整性,表的记录必须得有唯一区分的字段,主键主要是用于其他表的外键关联,以及本记录的修改与删除. 主键的无意义性 : 在开发过程中,读者可能会看到将一些表使用有意义的字段表示主键,例如"用户登录信息表"将&quo

数据库主键和外键

1 什么是主键 外键 学生表(学号,姓名,性别,班级)   学号是一个主键 课程表(课程号,课程名,学分) 课程号是一个主键 成绩表(学号,课程号,成绩) 学号和课程号的属性组构成一个主键 成绩表中的学号不是成绩表的主键,不过是学生表的主键,成绩表的外键,同理课程号也是成绩表的外键 定义:如果公共关键字在一个关系中是主关键字,那么这个公共关键字被称为另一个关系的外键 以一个关系的外键作主关键字的表被称为主表,具有此外键的表被称为主表的从表 2 外键的作用 外键用于保持数据一致性,完整性 主要目的

数据库主键的设计和思考

转载至:http://blog.csdn.net/likika2012/article/details/9949949 1. 何谓数据库主键 数据库主键是指表中一个列或列的组合,其值能唯一地标识表中的每一行.这样的一列或多列称为表的主键,通过它可强制表的实体完整性.当创建或更改表时可通过定义 PRIMARY KEY约束来创建主键.一个表只能有一个 PRIMARY KEY 约束,而且 PRIMARY KEY 约束中的列不能接受空值.由于 PRIMARY KEY约束确保唯一数据,所以经常用来定义标识

关于数据库主键和外键

一.什么是主键.外键: 关系型数据库中的一条记录中有若干个属性,若其中某一个属性组(注意是组)能唯一标识一条记录,该属性组就可以成为一个主键 比如  学生表(学号,姓名,性别,班级) 其中每个学生的学号是唯一的,学号就是一个主键 课程表(课程编号,课程名,学分) 其中课程编号是唯一的,课程编号就是一个主键 成绩表(学号,课程号,成绩) 成绩表中单一一个属性无法唯一标识一条记录,学号和课程号的组合才可以唯一标识一条记录,所以 学号和课程号的属性组是一个主键   成绩表中的学号不是成绩表的主键,但它