MySQL—— 数据库的约束 (nulluniqueprimary keydefaultforeign keycheck)

Posted Perceus

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MySQL—— 数据库的约束 (nulluniqueprimary keydefaultforeign keycheck)相关的知识,希望对你有一定的参考价值。

@TOC


数据库的约束

什么是约束?

在创建表时设置约束,对于某一列值能填什么内容做出限制,每一列独立设置自己的约束.


not null

  • 指定某列的存储不能为null

此时向 id 列插入空的值会报错.


unique

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

如果向 name 这一列插入重复的值会报错.


default

  • 规定给列赋值时的默认值

  1. 给带有默认值的列插入 null 最终结果是什么?

  1. 那么什么情况下才会触发默认值呢?


※primary key 主键

日常开发中最常使用的约束!也是最重要的约束

  • 主键约束,是not null 与 unique 的结合,确保某列的每行的赋值不能为null 并且是唯一的
  • 主键约束,相当于数据的唯一身份标识,类似身份证号码。
  • 创建表的时候,很多时候都需要指定的主键。

auto_increment 自增

b) 主键的另一种用法: 自增主键(每次加1),允许为空.


foreign key 外键

  • 外键约束,保证一个表中的数据匹配另一个表中的值参照完整性.
  • 一般习惯放到最后
  • 外键约束会影响表的删除

外键,描述的是 两个表之间的关联关系,表1 里的数据 必须在 表2 中存在


外键约束举例:

  • 1 . 建立班级表
create table class 
    class_id int primary key auto_increment ,
    name varchar(50),
;

  • 2 . 建立外键约束
create table student(
    id int primary key auto_increment,
    name varchar(50),
    classId int,
    foreign key(classId) references class(calss_id) //外键
 );

  • 3 . 查看表结构

  • 4 . 插入数据


上面所讲的都是针对子表的操作,下面我们来针对一下父表的操作


外键的工作原理


拓展 购物软件中商品表和订单表结构


check(了解)

  • 作为了解,类似java中的枚举,保证列中的值符合指定的条件
  • MySQL使用时不报错,但忽略该约束:
create table test_user (
   id int,
   name varchar(20),
   sex varchar(1),
   check (sex =男 or sex=女)
);

以上是关于MySQL—— 数据库的约束 (nulluniqueprimary keydefaultforeign keycheck)的主要内容,如果未能解决你的问题,请参考以下文章

Mysql六大约束

MySQL:MySQL中四大约束

mysql-约束概览

mysql数据库怎样加约束不让重复

[转]mysql的约束

mysql数据库 check约束无效