• 【MYSQL】约束


    约束

    通过约束,可以让未来插入到数据库表中的数据是符合预期的。前面提到的数据类型,就是一种约束。

    约束本质是通过技术手段,逼着使用者插入正确的数据。凡是插入的数据,必定符合数据约束。

    约束的最终目标是保证数据的 完整性 和 可预期性!

    非空约束

    NULL 和 NOT NULL(默认允许为空)

    默认值

    default 约束,某一种经常出现的数据,可以选择设置为默认值。

    如果设置了default,用户设置就用用户的,没有设置就用默认的。

    default 和 not null 相互补充,非空约束是约束用户想插入数据的情况;而用户忽略这一列的时候,是默认值约束。

    列描述

    对表中字段进行说明,这是约束给程序员的!不是硬性约束!

    zerofill

    数字类型后面的长度,例如 int(10) 如果插入数字的宽度小于设定的宽度,自动填充0。如果够了或者超过位数,直接显示,保证正确显示。

    主键约束

    主键(primary key):唯一的约束该字段里的数据,不能重复,不能为空,一张表中最多只能有一个主键。但不是一个表中的主键只可以对应一列(复合主键)。

    //添加主键
    ALTER TABLE table_name ADD PRIMARY KEY(ID);
    
    //去掉主键
    ALTER TABLE table_name DROP PRIMARY KEY;
    
    • 1
    • 2
    • 3
    • 4
    • 5

    自增长

    id int unsigned primary key auto_increment;
    
    可以在表外设置 AUTO_INCREMENT 的值
    
    //查看 AUTO_INCREMENT 
    SELECT last_insert_id();
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    唯一键

    唯一键可以为空,而且可以多个为空,空字段不做唯一性比较。

    主键和唯一键并不互相冲突,他们也相互补充。就像身份证和电话号码都是不能冲突的,我们只是选择了身份证号作为了主键。

    外键

    从表依附于主表,实现 关联 和 约束,主表必须是有主键约束或unique约束,定义外键后,外键的列数据必须在主表的主键列存在或为null

    语法:

    foreign key(column_name) references table_name(column_name);
    
    • 1
  • 相关阅读:
    深度学习实战01-卷积神经网络(CNN)实现Mnist手写体识别
    《摸摸头之scala》1. idea 创建一个maven-scala项目
    vue-pdf多页预览异常,Rendering cancelled, page 1 Error at BaseExceptionClosure xxx
    Jmix 如何将外部数据直接显示在界面?
    centos搭建activemq5.16
    【算法刷题日记之本手篇】星际密码与数根
    树和森林知识
    线上故障突突突?如何紧急诊断、排查与恢复
    lombok
    【译】Visual Studio 2022 - 17.10 性能增强
  • 原文地址:https://blog.csdn.net/m0_73209194/article/details/133200406