• 十七、MySQL约束演示


    1、约束定义

    (1)概念

            约束,顾名思义,时作用域表中字段上的规则,用于限制存储在表中的数据,主要用于保证数据库中数据的正确、有效性和完整性。

    (2)各种约束分类

    1. 1、非空约束(限制字段数据不能为null):
    2. not null
    3. 2、唯一约束(保证该字段的所有数据都是唯一、不重复的):
    4. 这里需要注意,当某个字段有‘唯一性’约束时,即便执行失败,也会占用一个主键位置
    5. unique
    6. 3、主键约束(主键是一行数据的唯一标识,要求非空并唯一):
    7. primary key
    8. 4、默认约束(保存数据时,如果未指定该字段的值,则采用默认值):
    9. default
    10. 5、检查约束(保证字段值满足某一个条件):
    11. check
    12. 6、外键约束(用来让两张表的数据之间建立连接,保证数据的一致性和完整性):
    13. foreign key

    2、主键

    (1)概念:

    关键字(主键,primary key)是被挑选出来,作表的行的惟一标识的候选关键字一个表只有一个主关键字。主关键字又可以称为主键。主键可以由一个字段,也可以由多个字段组成,分别成为单字段主键或多字段主键。

    (2)作用:

            保证实体的完整性;加快数据库的操作速度;在表中添加新记录时,ACCESS会自动检查新记录的主键值,不允许该值与其他记录的主键值重复;ACCESS自动按主键值的顺序显示表中的记录。如果没有定义主键,则按输入记录的顺序显示表中的记录。

    (3)意义:

    一个表中只能有一个主键。如果在其他字段上建立主键,则原来的主键就会取消。在ACCESS中,虽然主键不是必需的,但最好为每个表都设置一个主键。

    主键的值不可重复,也不可为空(NULL)。

    主键值不能被重用

    注意:虽然并不总是需要主键,但是多数数据库设计者都会保证他们创建的每个表具有一个主键,以便以后的数据库的操作和管理。

    (4)语法:

    在创建表结构时,添加主键:

    给创建完成的表结构添加主键:

    primary key 字段名;

    3、实际操作

    (1)先创建一个基础表:

    1. use other;
    2. # 创建表结构
    3. # 字段名 数据类型 约束 comment 注释;
    4. create table user(
    5. -- 自增长
    6. id int primary key auto_increment comment '主键',
    7. -- 不能为null,而且不能重复,唯一性(即便执行失败,也会占用主键)
    8. name varchar(10) not null unique comment '姓名',
    9. -- 年龄范围(0~120)
    10. age int check ( age>0 && age<=120 ) comment '年龄'
    11. )comment '用户表';
    12. insert into user(name,age) values ('lom',12),('kom',56);
    13. insert into user(name,age) values ('jom',34);

    (2)验证name字段不能为null:

    1. # 不能为null验证:该语句会执行失败
    2. insert into user(name,age) values (null,78);

    (3) 验证name字段唯一性:

    insert into user(name,age) values ('lom',12);

    此处name='lom'已存在,虽该语句会执行失败,但是其仍会申请一个主键,并占用,通过添加一组新的数据,观察主键值,来验证如下:

    1. # 唯一约束验证:此处name='lom'已存在,虽该语句会执行失败,但是其仍会申请一个主键,并占用
    2. insert into user(name,age) values ('hom',38);

     (4)验证age字段范围:

    1. # 年龄范围验证:该语句会执行失败,该语句会执行失败,因为-11小于0121大于120
    2. insert into user(name,age) values('fom',-11);
    3. insert into user(name,age) values('dom',121);

  • 相关阅读:
    GEE错误——Tile error: Arrays must have same lengths on all axes but the cat axis
    Google Earth Engine(GEE)——因阈值设定,无法加载影像放大后的影像
    第三方App与Termux命令建立IO通道
    支付通道简述
    Allegro走线自动关闭其它飞线操作指导
    微信小程序 --- 常用样式和组件
    常用类(总结)
    【Numpy总结】第七节:Numpy常用的函数(汇总所有函数,收藏这一篇就OK啦~)
    用亲身经历把朋友送进腾讯是什么体验?
    2022年最新宁夏建筑安全员模拟题库及答案
  • 原文地址:https://blog.csdn.net/2301_79149013/article/details/132746689