注册 登录
编程论坛 SQL Server论坛

SQL中 2表之间的主外键设置问题???到底有什么作用???

苍浪剑赋 发布于 2008-03-29 17:50, 2293 次点击
create table jimmy(
id int identity(1,1) not null primary key(id),
dep varchar(50) not null unique,
)

新建了一个表 jimmy

create table ruby(
bid int identity(1,1) not null primary key(bid),
vname varchar(50) not null,
id int not null,
)

新建了一个表ruby

这2个表之间都有一个字段id 但是我并没有设置主键和外键的关系依然能够查询出来数据
select a.dep,b.vname,b.sarlay from jimmy as a,ruby as b where a.id = b.id

那么设置主键与外键又有什么用呢?????????????这是我想问的

希望大家解答
2 回复
#2
makebest2008-03-29 22:42
个人意见:
主键同时也是唯一索引,可以避免存入重复数据,
外键是另一个表的主键,可以确保表之间链接的有效性(无法存入不是另一个表主键的数据)
#3
wuhui52017172008-05-16 23:11
主键可以把一列的值确定为是各不相同的
外键是为了实现数据的完整性:表有主从之分,如果主表中没有该数据,就无法向从表中插入对应的数据;删除的时候从表的该行数据没删除就没法删除主表中对应的该行数据
比如:银行有个帐号表,如帐号,金额,开户日期等字段;还有个帐号资金的存储信息表,如支出,存入金额等信息
如果帐号表不存在该帐号就没发向存储信息表插入该帐号的支出金额等信息
1