引用别人的,供以后学习使用,谢谢! 很多人会把Primary Key和聚集索引搞混起来,或者认为这是同一个东西.这个概念是非常错误的. 主键是一个约束(constraint),他依附在一个索引上,这个索引可以是聚集索引,也可以是非聚集索引. 所以在一个(或一组)字段上有主键,只能说明他上面有个索引,但不一定就是聚集索引. 例如下面: 复制代码代码如下: USE [pratice] GO CREATE TABLE #tempPKCL ( ID INT PRIMARY KEY CLUSTERED -…
目录结构: contents structure [-] 聚集索引和非聚集索引的区别 聚集索引和主键的区别 主键和(非)聚集索引的常规操作 聚集索引.非聚集索引在SqlServer.MySQL.Oracle...等数据库中都有这个概念,只不过在SqlServer中叫做聚集索引和非聚集索引而已.下面笔者将会以SqlServer数据库来讲解. 1.聚集索引和非聚集索引的区别 聚集索引:该索引中键值的逻辑顺序决定了表中相应行的物理顺序.非聚集索引:该索引中索引的逻辑顺序与磁盘上行的物理存储顺序不同.索…
1. 数据库有六大约束 主键(primary key) 外键(foreign key):被参照的键必须有唯一约束或是主键 非空(not null) 默认(default) 检查(check):oracle独有 唯一(unique) 2. 六大约束的用法 以下所有演示的SQL语句都是基于Oracle,可能在MySQL中使用有些出入.不过不用担心,后面会指出一些MySQL与Oracle的不同之处 -- 1.创建部门表dept 用于演示外键create table test_dept( deptno…
1.主键(PRIMARY KEY)和自增(AUTO_INCREMENT)同时使用两种写法:    a.主键(PRIMARY KEY)和自增(AUTO_INCREMENT)分两行写        创建一个名为[userinfo2]的表        create table userinfo2(            user_id int(6) not null auto_increment,            primary key(user_id),            user_na…
Oracle/PLSQL: 主键(Primary Key)说明 1 目标 通过演示样例解说怎样创建.删除.禁用和开启主键. 2 前言之-什么是主键 在Oracle中,主键指能唯一标识一条记录的单个数据表列或联合的数据表列(联合主键|复合主键).主键用到的数据表列数据不能包括空值.并且,一张表仅仅能包括一个主键. 说明:在Oracle数据库中,联合主键的列不能超过32个.主键能够在创建表时定义或者通过ALTER TABLE语法定义. 3 创建主键之 - 在创建表时定义主键 单列主键演示样例: CR…
1)主键一定是唯一性索引,唯一性索引并不一定就是主键. 2)主键就是能够唯一标识表中某一行的属性或属性组,一个表只能有一个主键,但可以有多个候选索引. 3)主键常常与外键构成参照完整性约束,防止出现数据不一致. 4)主键可以保证记录的唯一和主键域非空,数据库管理系统对于主键自动生成唯一索引,所以主键也是一个特殊的索引. 5)一个表中可以有多个唯一性索引,但只能有一个主键. 6)主键列不允许空值,而唯一性索引列允许空值. 7)索引可以提高查询的速度. 8)主键一般都要建,主要是用来避免一张表中有相…
主键是一个约束(constraint),他依附在一个索引上,这个索引可以是聚集索引,也可以是非聚集索引. 所以在一个(或一组)字段上有主键,只能说明他上面有个索引,但不一定就是聚集索引. 例如下面: 1 USE [pratice] 2 GO 3 CREATE TABLE #tempPKCL 4 ( 5 ID INT PRIMARY KEY CLUSTERED --聚集索引 6 ) 7 8 9 --------------------------------- 10 USE [pratice] 1…
如果由两个列共同组成主键,而且一个子表将主键作为可为空值的外键来继承,就可能得到错误的数据.可在一个外键列中插入有效的值,但在另一个外键列中插入空值.然后,可添加一个数据表检查约束,在可为空的外键中检查数据的有效性. 任何多列外键都可能遇到同样的问题.所以,你需要添加一个检查约束来检测异常.最初,检查约束将检查构成外键的所有列中可能为空的值.检查约束还要检查这些列中不能为空的值.如两个检查都通过,问题就解决了.     ##1 二.SQL数据库数据体系结构SQL数据库的数据体系结构基本上是三级结…
SQLSERVER聚集索引与非聚集索引的再次研究(上) 上篇主要说聚集索引 下篇的地址:SQLSERVER聚集索引与非聚集索引的再次研究(下) 由于本人还是SQLSERVER菜鸟一枚,加上一些实验的逻辑严谨性, 单写<SQLSERVER聚集索引与非聚集索引的再次研究(上)>就用了12个小时,两篇文章加起来最起码写了20个小时, 本人非常非常用心的努力完成这两篇文章,希望各位看官给点意见o(∩_∩)o 为了搞清楚索引内部工作原理和结构,真是千头万绪,这篇文章只是作为参考,里面的观点不一定正确 有…
索引类型 1.          唯一索引:唯一索引不允许两行具有相同的索引值 2.          主键索引:为表定义一个主键将自动创建主键索引,主键索引是唯一索引的特殊类型.主键索引要求主键中的每个值是唯一的,并且不能为空 3.          聚集索引(Clustered):表中各行的物理顺序与键值的逻辑(索引)顺序相同,每个表只能有一个 4.          非聚集索引(Non-clustered):非聚集索引指定表的逻辑顺序.数据存储在一个位置,索引存储在另一个位置,索引中包含指…