SQL server的基础学习3
一、什么是关系
定义:表与表之间的联系
实现方法:通过设置不同形式的外键来体现表和表的不同关系
一对一
既可以把表A的主键充当表B的外键,也可以把表B的主键充当表A的外键(一个人只有一把钥匙,一把钥匙只给一个人)
一对多
一对多:把表A的主键充当表B的外键(一个部门有多个员工,一个员工只能在一个部门)
在多的一方添加外键(在员工表中添加外键即:员工表为外键表,部门表是主键表)
多对多
多对多:必须通过单独的一张表来实现(一个老师多个学生,一个学生多个老师)班级一张表,老师一张表,班级和老师的关系一张表
二、主键和外键
主键
定义:能够唯一标示一个事物的一个字段或者多个字段的组合
附注:
1、含有主键的叫做主键表,主键通常都是整数,不建议用字符串当主键(如果主键是用于集群式服务,才可以考虑用字符串当主键)
2、主键的值通常都不允许修改,除非本记录被删除
3、主键不要定义成id,而要定义成表面_id
4、要用代理主键,不要用业务主键(任何一张表都不建议使用有业务含义的字段充当主键,我们通常都是在表中单独添加一个整型的编号充当主键字段)
外键
定义:如果一个表中的若干个字段是来自另外若干个表的主键或唯一键,则这若干个字段就是外键
附注:
1、外键通常都是来自另外表的主键而不是唯一键,因为唯一键可能为null
2、外键不一定是来自另外的表,也可能来自表的主键(员工表中上层管理人员也是员工中的数据)
3、含有外键的表叫外键表,外键字段来自的呢一张表叫做主键表
问题:先删除主键表还是外键表?
答:先删除外键表
如果先删除主键表会报错,因为这会导致外键表中的数据引用失败
来源:oschina
链接:https://my.oschina.net/u/4257773/blog/4898251