51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 4224|回复: 5
打印 上一主题 下一主题

[讨论] 还没明白主键、外键的意思。

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2005-12-5 17:40:41 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
两个问题
1,主键&外键的意思,这是看到的定义:
主键( Primary key )是能唯一标识行的一列或一组列的集合。
由多个列构成的主键称为连接键(Concatenated key)、组合键(Compound key ),或称作为复合键(Composity key )。
外部键(Foreign key )是一个表中的一列或一组列,它们在其它表中作为主键而存在。一个表中的外部键被认为是对另外一个表中主键的引用。实体完整性原则简洁地表明主键不能全部或部分地空缺或为空,引用完整性原则简洁地表明一个外键必须为空或者它所引用的主键当前存在值相一致。
我的理解:主键和外部键是不是可以看作是一个指针?是不是主键指向外部键所在的表(是否可以称作主键所在表的子表)?看书上说父表子表什么的,为什么不叫父键子键啊?
这样一个命令:
CREATE TABLE  test1 ('name'  CHAR(10) PRIMARY KEY,price NUMBER(5,2),amount NUMBER(10));
主键是 name,那price 和 amount是什么?
2,书上原话:
   为了是两个表之间存在关系,必须使两件事为真:
-父表必须有一列唯一标识它所包含的每个记录
-子表必须有一个相同的列包含唯一标识父记录的值
现在我上面的test1表中有商品 '内存’,子表里放的是内存的种类(128m,256m),其子表是否必须这样建立:
CREATE TABLE  test2 ('name'  CHAR(10),......);
然后我要看256m内存的价格就访问test1,test1通过主键name指向test2的name,然后返回256的价格啊?如果是这样的话就要外键没用了呀。
今天真的很晕.......:|
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
发表于 2005-12-6 08:43:20 | 只看该作者
我也晕倒了,哈哈。test1是主表么?他的主键时name。那么用以联系test2并且是在test2中作为主键的那个字段应该就叫做外键吧。如果两个表的主键是一样的都是name,那么直接查test2不就得了?迷糊~~~~!!!!
回复 支持 反对

使用道具 举报

该用户从未签到

3#
发表于 2005-12-6 10:04:41 | 只看该作者
不要被概念迷惑,找一些简单的数据表结构的例子自然一目了然
回复 支持 反对

使用道具 举报

该用户从未签到

4#
发表于 2005-12-6 19:23:22 | 只看该作者
例如有两个表格:

        AAA表
字段有:A1             字段A1为AAA表的主健
        a2
        a3
        a4       

        BBB表
字段有:B1             字段B1为BBB表的主健
        A1
        b2
        b3
        b4


现在就用以上两个表来回答主键、外键的意思:

AAA.A1是AAA表的主健,BBB.A1是AAA表的外键。


以上回复是我对主键和外键的理解,如果有错就指正

[ 本帖最后由 lovevike 于 2005-12-6 19:26 编辑 ]
回复 支持 反对

使用道具 举报

该用户从未签到

5#
发表于 2005-12-7 08:32:35 | 只看该作者
我认为应该是A1是BBB的外键吧。
回复 支持 反对

使用道具 举报

该用户从未签到

6#
 楼主| 发表于 2005-12-7 10:02:21 | 只看该作者
应该是:针对表AAA说A1是主键,针对表BBB说A1是外键,所以说AAA.A1是主键,BBB.A1是外键,有点OOB的意思。
回复 支持 反对

使用道具 举报

本版积分规则

关闭

站长推荐上一条 /1 下一条

小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

GMT+8, 2024-9-21 03:22 , Processed in 0.066041 second(s), 27 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

快速回复 返回顶部 返回列表