ITPUB??ì3
12月微软Hyper-V虚拟化沙龙主题征集
ITPUB论坛 » Oracle开发 » 数据库几种类型约束的异同

标题: 数据库几种类型约束的异同
在线/呼叫 biti_rainy
人生就是如此



精华贴数 38
个人空间 0
技术积分 111199 (4)
社区积分 11832 (132)
注册日期 2001-12-12
论坛徽章:41
现任管理团队成员ITPUB长老会成员ITPUB元老年度论坛发贴之星年度论坛发贴之星ITPUB北京九华山庄2008年会纪念徽章
管理团队2007贡献徽章参与2007年甲骨文全球大会(中国上海)纪念ITPUB北京香山2007年会纪念徽章管理团队2006纪念徽章会员2007贡献徽章会员2006贡献徽章

发表于 2002-1-8 10:48 
数据库几种类型约束的异同

主键
索引
唯一索引
唯一性约束
……


如果没有主键
但是创建成  唯一索引  可以么

对一个字段分别建立索引和唯一性约束行么?
主键的特殊性(外键?不能修改?)

索引字段可以修改?

他们之间到底有什么异同(当然不局限于字面意思了,操作上?)
看大家有相关一些问题
所以提出来让大家讨论清楚  :)








__________________
眼界决定边界,态度决定高度
blog:
人生就是如此
只看该作者    顶部
离线 yangtingkun
版主


精华贴数 12
个人空间 24196
技术积分 47673 (12)
社区积分 3185 (444)
注册日期 2001-12-29
论坛徽章:109
现任管理团队成员NBA季后赛大富翁2008北京奥运纪念徽章:足球2008北京奥运纪念徽章:羽毛球2008北京奥运纪念徽章:跳水2008北京奥运纪念徽章:拳击
2008北京奥运纪念徽章:柔道2008北京奥运纪念徽章:皮划艇静水2008北京奥运纪念徽章:体操2008北京奥运纪念徽章:曲棍球2008北京奥运纪念徽章:篮球2008北京奥运纪念徽章:举重

发表于 2002-1-8 13:07 
唯一索引也是不允许字段重复,感觉和主键差不多。不过可以创建两个字段的联合唯一索引,而主键似乎不成。


__________________
学习ORACLE最大的障碍是什么——浮躁

http://yangtingkun.itpub.net

个人BLOG文章索引:http://www.itpub.net/showthread.php?s=&threadid=699527

11g的一点研究:http://www.itpub.net/852861.html
只看该作者    顶部
离线 jlandzpa
版主


精华贴数 29
个人空间 0
技术积分 45953 (15)
社区积分 53561 (10)
注册日期 2001-10-12
论坛徽章:16
现任管理团队成员ITPUB元老授权会员生肖徽章2007版:牛ITPUB新首页上线纪念徽章 
      

发表于 2002-1-8 13:11 
也可以创建联合主键呀?

QUOTE:
最初由 yangtingkun 发布
唯一索引也是不允许字段重复,感觉和主键差不多。不过可以创建两个字段的联合唯一索引,而主键似乎不成。




__________________
my blog: http://blog.itpub.net/jlandzpa
mail: “id”@itpub.net

注意: [投资理财版] 业已提供上证指数菠菜,欢迎参与 :)

[头像] 黑木明纱 Meisa Kuroki  :)
只看该作者    顶部
在线/呼叫 biti_rainy
人生就是如此



精华贴数 38
个人空间 0
技术积分 111199 (4)
社区积分 11832 (132)
注册日期 2001-12-12
论坛徽章:41
现任管理团队成员ITPUB长老会成员ITPUB元老年度论坛发贴之星年度论坛发贴之星ITPUB北京九华山庄2008年会纪念徽章
管理团队2007贡献徽章参与2007年甲骨文全球大会(中国上海)纪念ITPUB北京香山2007年会纪念徽章管理团队2006纪念徽章会员2007贡献徽章会员2006贡献徽章

发表于 2002-1-8 13:32 
说来说去

都没有到点子上啊

那唯一索引可以取代 主键的地位么

唯一索引可以修改么?(其实测试一下就知道了)


__________________
眼界决定边界,态度决定高度
blog:
人生就是如此
只看该作者    顶部
离线 strongenough
中级会员



精华贴数 0
个人空间 0
技术积分 510 (3855)
社区积分 41 (5441)
注册日期 2001-10-8
论坛徽章:1
授权会员     
      

发表于 2002-1-8 19:04 
不是很懂……

1)
ALTER TABLE a
ADD  ( PRIMARY KEY (no) ) ;
----
2)
CREATE UNIQUE INDEX No_INDEX
ON   a(No)   ;
-----
3)
ALTER TABLE a
ADD CONSTRAINT NO_INDEX
PRIMARY KEY (NO);

4)
ALTER TABLE a
ADD CONSTRAINT NO_INDEX
UNIQUE (NO) ;

2)和4) 是否一样?
??
^_^


__________________
首先:非常感谢那些无私奉献的人们……希望:看我的帖子你会有新的收获……这是我希望做到的……目前就是学习没有规律,系统……工作忙到哪儿我学到哪儿……
只看该作者    顶部
离线 eric
中级会员


精华贴数 0
个人空间 0
技术积分 457 (4323)
社区积分 288 (1985)
注册日期 2001-10-17
论坛徽章:1
      
      

发表于 2002-1-8 21:22 
UNIQUE可以取空值,但和PK一样,不允许字段重复。
PRIMARY KEY是不能为空值且不允许字段重复,它可以是一个或者多个字段。
ORACLE中更奇妙的是,一个表可以让REFERENCE KEY指向本身的PK。这点的作用到现在还没想通。


__________________
-----------------------------------------------------不是我不明白,这世界变化快。
只看该作者    顶部
离线 ericlma
中级会员



精华贴数 0
个人空间 0
技术积分 274 (7206)
社区积分 0 (49256)
注册日期 2001-11-16
论坛徽章:1
授权会员     
      

发表于 2002-1-9 09:03 
Good point eric!  

When you declare a primary key or a unique constraint, Oracle automatically creates a unique index for you to enforce the constraint.  As eric pointed out the major difference between primary key and unique constraints is that the latter allows nulls.

It is very common to have a FK in a table pointing to the PK in the same table.  One good example is the "emp" table under the "scott" schema when you install the Oracle sample database.  Such a relationship is called a recursive relationship, which allows unlimited levels of parent-child relationship.


只看该作者    顶部
在线/呼叫 biti_rainy
人生就是如此



精华贴数 38
个人空间 0
技术积分 111199 (4)
社区积分 11832 (132)
注册日期 2001-12-12
论坛徽章:41
现任管理团队成员ITPUB长老会成员ITPUB元老年度论坛发贴之星年度论坛发贴之星ITPUB北京九华山庄2008年会纪念徽章
管理团队2007贡献徽章参与2007年甲骨文全球大会(中国上海)纪念ITPUB北京香山2007年会纪念徽章管理团队2006纪念徽章会员2007贡献徽章会员2006贡献徽章

发表于 2002-1-9 09:47 
呵呵

本来当初提出这个问题的时候想加上  not  null约束的
我想问,在not  null的情况下,它们还有什么差异的

主键会自动创建唯一索引

可它究竟多了哪些特性呢?(not  null)

索引列能修改?是不是处理起来实际是先删除再插入啊?


__________________
眼界决定边界,态度决定高度
blog:
人生就是如此
只看该作者    顶部
离线 olive
高级会员


精华贴数 1
个人空间 0
技术积分 4252 (339)
社区积分 8316 (192)
注册日期 2002-1-9
论坛徽章:14
会员2007贡献徽章会员2006贡献徽章生肖徽章2007版:猴2008北京奥运纪念徽章:蹦床2008年新春纪念徽章操作系统板块每日发贴之星
操作系统板块每日发贴之星     

发表于 2002-1-9 12:19 
加上not null就没有区别了。实际上PK就是相当于建立一个not null 的UC


__________________
下面这句话是真的
上面那句话是假的
只看该作者    顶部
离线 流云飞天
孤影萍踪



精华贴数 0
个人空间 0
技术积分 186 (10122)
社区积分 0 (51176)
注册日期 2002-1-10
论坛徽章:0
      
      

发表于 2002-1-10 16:27 
我的想法是……

主键就是为了约束“非空且唯一”。算是一种快捷方式吧。还有,一个表的主键可以用做其它表的外键,我不知道这个功能,“非空+唯一”索引能否取代,我想恐怕不能吧。


__________________
忧郁的眼睛真诚的心,相识相知愿与君。redsun_shine@sina.com路漫漫,吾上下而求索之修者,远兮!小的时候,不知道理想是什么;长大以后,又不知什么是理想……
只看该作者    顶部
相关内容


CopyRight 1999-2006 itpub.net All Right Reserved.
北京皓辰广域网络信息技术有限公司. 版权所有
E-mail:Webmaster@itpub.net
京ICP证:010037号 联系我们 法律顾问