SERVER------表与表的关系

目录

补充:not null 与 default

一. 表和约束

二. 关系

1. 一对一

2.  一对多

3. 多对多

4. 查询表的关系:

 三. 主外键总结


补充:not null 与 default

not null:即规定该字段不为空,如果没有规定 not null,不赋值的话,该字段会默认为空;

default:不赋值的话,该字段有默认值,赋值的话,以赋值为准;

一. 表和约束

数据库是通过来解决事物的存储问题的;

数据库是通过约束来解决事物取值的有效性和合法性的问题的;

建表的过程就是指定事物属性及其事物属性各种约束的过程;

二. 关系

定义:表和表之间的联系;

实现方式:通过设置不同形式的外键,来体现表的不同关系;

分类:一对一,一对多,多对多;我们常用的是后面两种关系

1. 一对一

        假设存在表A,表B。即可以把表A的主键充当表B的外键,也可以把表B的主键充当表A的外键;

2.  一对多

        在多的一方添加外键 ;

       下面我们举例来演示:

         在第三张图中,我们可以形象地看到,单独表的第一个字段来自A表的主键,第二个字段来自B表的主键,因此其数值必须存在于A,B表;

        这两个字段又被整体看作单独表的主键,因此不可以重复,如下图所示;

3. 多对多

        多对多必须通过单独的一张表来表示;

        多对多的关系体现在我们需要创建第三个表,其包含两个表的主键和附加关系

        我们不允许一个表里有两个主键,即主键只能存在一个,外键可以存在多个;

       

4. 查询表的关系:

              我们创建了许多表,如何显而易见的知道他们的关系呢?

         我们可以通过“数据库关系图”,右击“新建数据库关系图”,使用Shift连选,Ctril跳选,(像我就是选中第一个A,按住Shift,直接选最后一个uniquel就实现了全选),再点击“添加”即可。

             

          如下图,我们可以看到有四个单表,一个一对一的表,一个多对一的表;

注意:外键不同于外键约束。外键指的是某个字段,外键约束指的是添加的某种限制;

           由于U表的主键来自A,B表的主键,因此我们不可以直接删除A,B表的主键信息。如果我们想要删除A,B表的主键信息,可以先删去表之间的约束,否则不可以删除!

        选中“杠杆”,右击“从数据库中删除关系”即可,当然我们也可以恢复关系;

         恢复关系:右击U表,选择表和列规范,选择主外键即可,即将B表与U表连接起来;

 三. 主外键总结

        我们学习的知识很多,记是不可能记住的,我们只有将知识转化为自己的语言,用自己的话术表达,才可能转化为自己的知识!

        主键:能够唯一区分事物的属性的一个字段或几个字段的组合

        主键通常是整数,不推荐使用字符串,因为查找会非常麻烦;

        主键一般不允许被修改,除非本记录被删除;

        主键的定义一般不使用业务主键,而使用代理主键,即无实际含义的字段;定义时不推荐直接定义为id,推荐“ 表名_id ”或者“ 表名id ”,

         外键:来自一个表或者多个表的主键称之为外键;

         外键也有可能来自本表的主键

  • 17
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值