首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

初学者的有关问题:什么是联合主键

2012-09-25 
菜鸟的问题:什么是联合主键?小弟在这里请教各位大侠:什么是联合主键(5分)?他是有什么作用的,能举出一个实

菜鸟的问题:什么是联合主键?
小弟在这里请教各位大侠:什么是联合主键(5分)?他是有什么作用的,能举出一个实际应用的例子吗?(10分)怎么建立联合主键在sql2005中(5分)

[解决办法]
联合主键,就是用多个列来做主键.?

作用.
如一个关系模式
 学生成绩(学号,课程号,成绩)
那学号和课程号就可以做为联合主键.
因为学号和课程号决定了成绩.也就是说.你要知道成绩..你就要知道学号,知道学号,但还不能知道某一科的成绩.还要知道课程号.
所以函数依赖关系是{学号,课程号}->{成绩}

alter table tb
add constraint PK_ID primary key(学号,课程号)
go
[解决办法]
一个确定不了唯一,需要多个组合来确定唯一。
[解决办法]
联合主键就是表中2个或者2个以上的字段做为这个表的主键,通常多对多的关系表中使用联合主键.例如有表学生,表课程,另外一个表选课,选课表用来记录每个学生所选的课程,这个选课表就可以用联合主键.
SQL 2005中可以用

SQL code
CREATE TABLE [学生](    [学生ID]   [int] NOT NULL,    [学生姓名] [varchar(20)] NULL, CONSTRAINT [PK_学生] PRIMARY KEY CLUSTERED (    [学生ID]))CREATE TABLE [课程](    [课程ID] [int] NOT NULL,    [课程名称] [varchar(50)] NULL, CONSTRAINT [PK_课程] PRIMARY KEY CLUSTERED (    [课程ID]))CREATE TABLE [选课](    [学生ID] [int] NOT NULL,    [课程ID] [int] NOT NULL, CONSTRAINT [PK_选课] PRIMARY KEY CLUSTERED (    [学生ID],    [课程ID])) 

热点排行