关系型数据库和主键外键

深渊向深渊呼唤

文章目录

SQL server的基础学习3 一、什么是关系 一对一 一对多 多对多 二、主键和外键 主键 外键

SQL server的基础学习3

一、什么是关系

定义:表与表之间的联系
实现方法:通过设置不同形式的外键来体现表和表的不同关系

一对一

既可以把表A的主键充当表B的外键,也可以把表B的主键充当表A的外键(一个人只有一把钥匙,一把钥匙只给一个人)

一对多

一对多:把表A的主键充当表B的外键(一个部门有多个员工,一个员工只能在一个部门)
在多的一方添加外键(在员工表中添加外键即:员工表为外键表,部门表是主键表)
在这里插入图片描述
在这里插入图片描述

多对多

多对多:必须通过单独的一张表来实现(一个老师多个学生,一个学生多个老师)班级一张表,老师一张表,班级和老师的关系一张表
在这里插入图片描述
在这里插入图片描述 在这里插入图片描述

二、主键和外键

主键

定义:能够唯一标示一个事物的一个字段或者多个字段的组合
附注:
1、含有主键的叫做主键表,主键通常都是整数,不建议用字符串当主键(如果主键是用于集群式服务,才可以考虑用字符串当主键)
2、主键的值通常都不允许修改,除非本记录被删除
3、主键不要定义成id,而要定义成表面_id
4、要用代理主键,不要用业务主键(任何一张表都不建议使用有业务含义的字段充当主键,我们通常都是在表中单独添加一个整型的编号充当主键字段)

外键

定义:如果一个表中的若干个字段是来自另外若干个表的主键或唯一键,则这若干个字段就是外键
附注:
1、外键通常都是来自另外表的主键而不是唯一键,因为唯一键可能为null
2、外键不一定是来自另外的表,也可能来自表的主键(员工表中上层管理人员也是员工中的数据)
3、含有外键的表叫外键表,外键字段来自的呢一张表叫做主键表
问题:先删除主键表还是外键表?
答:先删除外键表
如果先删除主键表会报错,因为这会导致外键表中的数据引用失败

栏目