SQL主键与外键的创建与解析

一个表中,会存很多条记录,需要一个列来位置标识一条数据

1.主键:唯一标识一条数据; 值不能为空 不能重复
标识列:一旦将一个列设置成标识列,它就不能再手动输入值,是插入数据时自动生成的。这个列的类型必须的不带小数的数值型,整型
标识列的标识种子:
第一条数据记录标识列的值 100 增量 3
注意:标识列,若删除了数据再插入新数据,就会出现不连续的状态

2.创建主键: 联合主键 唯一标识
创建一个主键,同时自动创建了一个聚集索引
3.创建外键
外键:
一般在两个表产生关联的时候创建
一个列创建为外键,它在另一个表中必须是主键
两个表一旦建立外键关系,外键表里的对应的外键列的值必须是它对应的主键表里的主键值,否则你若想插入一个不存在的值是插入不进去的

一个表中可以有多个外键也可以没有。
但是一个表只能有一个主键,也可以没有,但是一般都会设置一个主键

比如:
我现在创建以下几个表
班级表:ClassInfo
年级表:GradeInfo
学生表:StudentInfo
用户表:UserInfo

在这里插入图片描述在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在用户表中 右键列,为UserId设置主键并设置标识列
在这里插入图片描述
在这里插入图片描述
在年级表中,同理,为年级表设置主键和标识列 GradeId
在这里插入图片描述
在班级表中,将ClassId设置为主键,右键GradeId 选择“关系”设置外键
在这里插入图片描述
在表和列规范处点击,弹出以下界面:
在这里插入图片描述

说明:GradeId对于年级表是主键,对于班级表是联系年级表的外键 因此,对于GradeId来说,年级表GradeInfo是主键表,ClassInfo班级表是外键表,

验证了本表外键必须是另一个表的主键。

在学生表中,设置StuId是主键和标识列,标识种子为1001,增量为1
在这里插入图片描述
ClassId右键关系,设置外键;
在这里插入图片描述
在这里插入图片描述

ClassId 是班级表中的主键,他联系班级和学生表,因此对于学生表来说,他就是外键

我们可以看到,学生表的外键约束
在这里插入图片描述

最后,附上表的设计:

班级表:

在这里插入图片描述

年级表:

在这里插入图片描述

学生表:

在这里插入图片描述

用户表:

在这里插入图片描述
欢迎大家批评指正!!
记于2020-4-25
新冠疫情期间!

  • 3
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

积跬步、至千里

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值