PRIMARY KEY 约束
表中经常有一个列或列的组合,其值能唯一地标识表中的每一行。这样的一列或多列称为表的主键,通过它可强制表的实体完整性。当创建或更改表时可通过定义 PRIMARY KEY 约束来创建主键。一个表只能有一个 PRIMARY KEY 约束,而且 PRIMARY KEY 约束中的列不能接受空值。由于 PRIMARY KEY 约束确保唯一数据,所以经常用来定义标识列。当为表指定 PRIMARY KEY 约束时,Microsoft® SQL Server™ 2000 通过为主键列创建唯一索引强制数据的唯一性。当在查询中使用主键时,该索引还可用来对数据进行快速访问。如果 PRIMARY KEY 约束定义在不止一列上,则一列中的值可以重复,但 PRIMARY KEY 约束定义中的所有列的组合的值必须唯一。如下图所示,titleauthor 表中的 au_id 和 title_id 列组成该表的组合 PRIMARY KEY 约束,以确保 au_id 和 title_id 的组合唯一。当进行联接时,PRIMARY KEY 约束将一个表与另一个表相联。例如,若要确定作者与书名的对应关系,可以使用 authors 表、titles 表和 titleauthor 表的三向联接。因为 titleauthor 包含 au_id 和 title_id 两列,对 titles 表的访问可由 titleauthor 和 titles 之间的关联进行。
解决方案 »
- 关于sql中case判断的使用
- 再来请教一个一句话解决的查询语句问题
- SQL Server组里有一个 tangServer\CSMIS 项 tangServer是计算机名请问CSMIS是什么意思?
- 我是菜鸟,现在晕了
- 如何减少表空间的大小
- 请问,广域网上怎样用ODBC连接另一个节点的SQL SERVER?
- 介绍一个提供教程、源代码下载,软件下载、发布的地方(来着有分)
- 如果用日志恢复数据库,如果中间一个时间段的日志丢失,是不以后的日志都无法恢复了,在线等,非常感谢!!!
- declare @psw替换不掉是怎么回事啊
- 求救!!!不同网关内的机器如何访问对方的数据库?
- 小妹求救:日期相减,在Access里实现了,在SQL Server里怎么不行了呢?
- 请问怎样可以读取关联数据库?
书上的定义说:
主键:如果一个属性能惟一标识元组, 且又不含有多余属性, 那么这个属性集称为候选键超键:在关系模式中, 能惟一标识元组的属性集称为超键请问超键的“值”是不是不能重复的?是。
上面说的主键中“且又不含有多余属性”是什么意思比如 id 可以唯一标识元组(记录),id + name 也可以,应为光id就可以了,所以 name是多余的。name就是多余属性