概念の主键、外键

  • 主键

  定义:能够唯一标识一个事物的一个字段或多个字段的组合,被称为主键

  语法:student_id int primary key identity;指定identity,该编号自动增长,从1开始增长;identity(100,5):以100开始,按5个数递增!

    dbcc checkkident('emp',reseed,0);将emp表的主键值从新从1开始。

  附注:

  1. 含有主键的表叫做主键表
  2. 主键通常都是整数,不建议使用字符串当主键(除非主键是用于集群式服务,才可以考虑使用字符串当主键)(集群式服务:跨数据库服务,即用户的请求需要通过不同的数据库联合使用)
  3. 主键的值通常不允许修改,除非本记录被删除。如果主键经常被修改,肯定主键定义有问题。
  4. 主键不要定义定义成id,而要定义成标明ID或者表名_id
  5. 要用代理主键,不要用业务主键

    任何一张表,清冽建议不要使用有业务含义的字段充当主键

    我们通常都是在表中单独添加一个整型编号充当主键字段

  • 外键

  定义:如果一个表中的若干个字段来自于另外若干个表的主键或者唯一键,则这若干个字段就是外键。

  语法:student_id int foreign key;

  注意:

  1. 外键通常是来自另外表的主键而不是唯一键,因为唯一键可能为null
  2. 外键不一定来自于另外的表,也可能来自于本表的主键。比如上司编号来自于员工编号,两个位于同一张表。
  3. 含有外键的表叫做外键表,外键字段来自的那张表叫做主键表。

  问题:主键表和外键表的删除问题?

  答案:先删除外键表,如果先删除主键表,会导致外键表的数据引号失败!

 

posted @ 2012-10-20 19:26  xiaolongxia  阅读(179)  评论(0)    收藏  举报