SQL Server数据库主键与索引的几点区别
2015-08-19 10:07
471 查看
我们在使用SQL Server数据库的时候常常会创建主键和索引,那么主键和索引到底有什么样的不同呢?本文我们主要介绍了主键和索引的区别。
主键和索引的区别如下:
主键是索引,但索引不一定是主键。
主键具有唯一性,而只有唯一性索引才具有唯一性;主键的值不能为空,不能重复。 索引可以在程序中动态创建删除。也可以是任何有序的字段。
如果在一个表中,列A、B、C 被设为主键的情况下,当需要将A,B,C 设为索引时,A,B,C被设为主键,数据库自动会建立索引,不需要再建索引;另外需要对列A,B,C,D,E建立索引时,不能只对D,E建立索引,必须在索引中包含所有的索引列即:A,B,C,D,E。
主键、外键、索引:
索引只是为了排序与加快浏览度!也可对表数据作证!一个表只能有一个主键,外键与主键差不多!两者都能将表联系起来,定义规则!
主键,每一张表中必须有的,它是唯一的,唯一能标识每一条记录。
外键,一张表中的外键在另一张表中只能是主键,一般情况下,要删除一张表中的主键必须首先要确保其它表中的没有相同外键(即该表中的主键没有一个外键和它相关联)
索引只是加快查询,排序速度,主键和外键定义后可保证数据完整性,省去编写某些触发器。主键最好每张表上都定义,小数据库用唯一索引也可以。
每个表最好有主键,用来保证数据完整性。表的外键是另一表的主键,外键将两表联系起来。 索引只是提高查询排序的速度。
主键和索引的区别如下:
主键是索引,但索引不一定是主键。
主键具有唯一性,而只有唯一性索引才具有唯一性;主键的值不能为空,不能重复。 索引可以在程序中动态创建删除。也可以是任何有序的字段。
如果在一个表中,列A、B、C 被设为主键的情况下,当需要将A,B,C 设为索引时,A,B,C被设为主键,数据库自动会建立索引,不需要再建索引;另外需要对列A,B,C,D,E建立索引时,不能只对D,E建立索引,必须在索引中包含所有的索引列即:A,B,C,D,E。
主键、外键、索引:
索引只是为了排序与加快浏览度!也可对表数据作证!一个表只能有一个主键,外键与主键差不多!两者都能将表联系起来,定义规则!
主键,每一张表中必须有的,它是唯一的,唯一能标识每一条记录。
外键,一张表中的外键在另一张表中只能是主键,一般情况下,要删除一张表中的主键必须首先要确保其它表中的没有相同外键(即该表中的主键没有一个外键和它相关联)
索引只是加快查询,排序速度,主键和外键定义后可保证数据完整性,省去编写某些触发器。主键最好每张表上都定义,小数据库用唯一索引也可以。
每个表最好有主键,用来保证数据完整性。表的外键是另一表的主键,外键将两表联系起来。 索引只是提高查询排序的速度。
相关文章推荐
- MySQL索引的查看创建和删除
- You have an error in your SQL syntax;解决方法
- MYSQL优化
- 数据库基础知识概述
- 类似百度的搜索提示框,数据库中查询关键字
- Java代码链接mysql数据库和oracle数据库
- sql 语句分列
- mysql 命令篇
- MYSQL事务处理
- 16、SQL Server 复制及常见错误处理
- SQL 执行计划(二)
- 获取postgresql字段信息
- 浅析Mysql Join语法以及性能优化
- sparksql链接mysql
- mybatis在控制台显示sql语句
- SQL 执行计划(一)
- 向Oracle数据库中插入数据出错:ORA-01036 无效的变量名或数据
- mybatis实现oracle批量插入,带序列(记录一下)
- SQL语言的发展
- 数据库增删改查例子