Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2583094
  • 博文数量: 323
  • 博客积分: 10211
  • 博客等级: 上将
  • 技术积分: 4934
  • 用 户 组: 普通用户
  • 注册时间: 2006-08-27 14:56
文章分类

全部博文(323)

文章存档

2012年(5)

2011年(3)

2010年(6)

2009年(140)

2008年(169)

分类: Oracle

2009-03-02 13:15:59

1.主键约束: 一个表只能有一个主键约束。主键可以是单个字段,也可以是多个字段。无论是哪种情况,其所有字段都是NOT NULL。

2.Unique约束:一个表可以有多个Unique约束,Unique的字段可以为NULL。

3.主键与Unique:不同点在于一个表只能有一个主键约束,但是可以有多个Unique约束;主键所有字段都是not null,unique可以是null。相同点在于都能保证唯一性。

4.主键、Unique与索引:主键约束与Unique约束默认会成为索引。当主键和Unique有多个字段时,有索引前缀性问题,即where语句中的条件必须有主键或者unique的第一个字段,否则不会使用索引。

5. 外键与主键、Unique:外键必须为另外一张表(父表)的主键或者唯一索引。如果要添加记录,而父表中没有则报错。反之,如果要删除父表中的记录,而子表中有记录,也会报错。但是如果在创建外键约束时,如果使用on delete cascade,则删除父表中数据时,不报错而直接把子表关联的数据删除。如果要删除父表,则需要加上cascade constraints,此时子表的foreign key被去除,表中记录保持不变。
--标红色的部分是外企的一道DBA面试题。其实主键约束和unique约束的区别也可以出一道题。
阅读(6827) | 评论(1) | 转发(2) |
给主人留下些什么吧!~~

Thott2014-05-21 16:26:04

谢谢楼主对知识的分享,学习了。