关系型数据库和主键外键

早过忘川 提交于 2021-01-14 10:14:04

SQL server的基础学习3

一、什么是关系

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

一对一

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

一对多

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


多对多

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

二、主键和外键

主键

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




外键

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






标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!