• ​ 数据库约束


    数据库约束

    约束就是让数据库帮助程序员更好的检查数据是否正确!

     1、not null 

    NOT NULL指定某列不能存储NULL值

     

     2、unique

    UNI保证某列的每行必须有唯一的值

     

             数据库是如何判断这条记录是重复的,先查找再插入,如果没有重复的就插入,重复了不允许插入。

            约束是可以组合在一起使用的,同时加上not null和unique      

      PRI = primary key4

    主键约束就是not null和unique

     主键也同样是在插入记录的时候先查找再插入的

                    正因为主键和unique都有先查询的过程,mysql就会默认给primary key 和 unique 这样的列,自动添加索引来提高查询的速度

    1. 实际开发中,大部分的表一般都会带一个主键,主键往往是一个整数表示的id
    2. 在mysql中,一个表里只能有一个主键,不能有多个
    3. 虽然主键不能有多个,mysql允许把多个列放到一起共同作为一个主键(联合主键
    4. 主键另外一个非常常用的方法,就是使用mysql自带的"自增主键"作为主键的值,

      插入id的时候,可以手动指定,也可以不动手指定(null),则会有mysql自动生成。

    当mysql的数据量比较小,所有的数据都在一个mysql服务器上时,自增主键是可以很好工作的。

    如果mysql的数据量很大,一台主机放不下,就需要进行分库分表,使用多个主机来进行存储了。本质上就是把一张大表分成多个小表,每个数据库服务器分别只存储一部分数据。

     3、default

     default 规定没有给列赋值时的默认值

     

    file:///C:/Users/jinchunyi/Desktop/1107_mysql.png 

     4、foreign key 

    foreign key 外键约束,针对两个表之间产生的约束

             此处外键约束的含义就是要求student里的classId务必要在class表的id列中存在。

            学生表中的数据要依赖班级表的数据,班级表的数据要对学生表产生约束力(父亲对孩子有约束力),此处起到约束作用的班级表就叫做父表,被约束的表叫做子表

            外键约束是父表约束子表,但实际上子表也在约束父表。

            我们试图删除class表中id为1的记录,发现删除失败,因为id为1的被子表引用了。

            id为3的没有被子表引用,可以删除

            如果想删除,那就需要先删除子表,再删除父表

            创建外键约束时,一定是先创建父表再创建子表

    数据库实体的关系:

    1、一对一

    教务系统中,一个学生对应一个账号

    1. 把学生和账号放到同一个表里
    2. 学生和账号放在不同的表里,相互关联

    2、一对多

    教务系统中,班级和学生的关系

    学生和班级放在不同的表里,相互关联

    3、多对多

    教务系统中,课程和学生的关系

    三张表:

     4、没关系

    如果两个实体往上述三个关系中都套不进去,就是没关系

    如何通过关系建表:

    1. 找实体,给每个实体都安排个表(需求中的关键字)
    2. 明确实体的关系(往固定造句格式中套)
    3. 根据这些关系使用固定的方法来建表
  • 相关阅读:
    工作多年,技术认知不足,个人成长慢,职业发展迷茫,该怎么办?
    基于SSM的出租车管理系统
    读书笔记:《指标陷阱》
    Python——运算符与流程控制
    Golang综合项目实战(一)
    做好有限空间管理的五个原则
    QP状态机学习②——QM的使用
    React源码分析(二)渲染机制
    转发网关与NAT网关
    【git的使用方法】——上传文件到gitlab仓库
  • 原文地址:https://blog.csdn.net/m0_65601072/article/details/127738961