MySQL: 表的增删改查(进阶1)

1.数据库约束

1.1 约束类型

  • NOT NULL - 指示某列不能存储 NULL 值。
  • UNIQUE - 保证某列的每行必须有唯一的值。
  • DEFAULT - 规定没有给列赋值时的默认值。
  • PRIMARY KEY - NOT NULLUNIQUE 的结合。确保某列(或两个列多个列的结合)有唯一标识,有助于更容易更快速地找到表中的一个特定的记录。
  • FOREIGN KEY - 保证一个表中的数据匹配另一个表中的值的参照完整性。
  • CHECK - 保证列中的值符合指定的条件。对于MySQL数据库,对CHECK子句进行分析,但是忽略CHECK子句。

1.2 NULL约束

创建player表
在这里指定了id列不为空
MySQL: 表的增删改查(进阶1)_第1张图片
当输入空时,
在这里插入图片描述
因此这里输入的时候不能将id设置为null
MySQL: 表的增删改查(进阶1)_第2张图片

1.3 UNIQUE:唯一约

创建player表
这里指定name列为唯一值,不重复的
MySQL: 表的增删改查(进阶1)_第3张图片
如果要插入值已经在表中存在就会插入失败
MySQL: 表的增删改查(进阶1)_第4张图片

提示:当列有uniqueq约束的时候,进行插入之前,就会先查找。如果当前值存在,此时就会插入失败。因此,unique约束对效率肯定是会有影响的!但也是值得的!

1.4 DEFAULT:默认值约束

我们知道,当我们指定列插入的时候,如果这个列没有被指定,就会被设置成默认值NULL

使用DEFAULT约束
指定插入数据时name列为空,默认值为unkown;
先建立表
MySQL: 表的增删改查(进阶1)_第5张图片
MySQL: 表的增删改查(进阶1)_第6张图片

1.5 PRIMARY KEY:主键约束

primary key 表示了一个记录的身份标识(相当于唯一 && not null)
MySQL: 表的增删改查(进阶1)_第7张图片

提示:一张表中只能有一个主键,对于主键,要求不能为空也不能重复。

1.6 FOREIGN KEY:外键约束

外键用于关联其他表的主键或唯一键

创建班级表class,id为主键:

MySQL: 表的增删改查(进阶1)_第8张图片
创建一个学生表
MySQL: 表的增删改查(进阶1)_第9张图片
MySQL: 表的增删改查(进阶1)_第10张图片
在这里插入图片描述

1.7 CHECK约束(了解)

MySQL不支持CHECK约束

使用方式
drop table if exists test_user;
create table test_user (
id int,
name varchar(20),
sex varchar(1),
check (sex =‘男’ or sex=‘女’)
);

你可能感兴趣的