当前位置:   article > 正文

黑马mysql教程笔记(mysql8教程、数据库教程)基础篇——约束(constraint)(主键约束、NOT NULL、自动增长、非空约束、唯一约束、检查约束、默认约束、外键约束、自动增长)级联_datagrip mysql 设置主键

datagrip mysql 设置主键

约束

约束时作用于表中字段上的规则,用于限制存储在表中的数据。他能保证数据库中数据的正确、有效性和完整性。

普通约束(主键约束、NOT NULL、自动增长、非空约束、唯一约束、检查约束、默认约束、外键约束、自动增长)

约束描述关键字
非空约束限制该字段的数据不能为nullNOT NULL
唯一约束保证该字段的所有数据都是唯一、不重复的UNIQUE
主键约束主键是一行数据的唯一标识,要求非空且唯一PRIMARY KEY
默认约束保存数据时,如果未指定该字段的值,则采用默认值DEFAULT
检查约束(8.0.1版本后)保证字段值满足某一个条件CHECK
外键约束用来让两张表的数据之间建立连接,保证数据的一致性和完整性FOREIGN KEY
自动增长在新记录插入表中时,该字段的值会自动增加,常用于生成唯一的标识(如主键)AUTO_INCREMENT

约束是作用于表中字段上的,可以在创建表/修改表的时候添加约束。

实例:根据需求,完成以下表的创建

在这里插入图片描述

分析,需要用到以下约束关键字

约束条件关键字
主键PRIMARY KEY
自动增长AUTO_INCREMENT
不为空NOT NULL
唯一UNIQUE
逻辑条件CHECK
默认值DEFAULT
建表

建表语句

create table user(
    id int primary key auto_increment comment '主键',
    name varchar(10) not null unique comment '姓名',
    age int check ( age > 0 && age <= 120 ) comment '年龄',
    status char(1) default '1' comment '状态',
    gender char(1) comment '性别'
) comment '用户表';
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

提示说&&要被废弃了,以后最好用and关键字替代:

在这里插入图片描述
多了user表:

在这里插入图片描述

在这里插入图片描述

插入数据,测试约束
insert into user(id, name,age,status,gender) values (10, 'Tom1',19,'1','男'),(20, 'Tom2',25,'0','男');
  • 1

在这里插入图片描述

insert into user(name,age,status,gender) values ('Tom1',19,'1','男'),('Tom2',25,'0','男');
  • 1

报错了,说user.name有唯一约束:

在这里插入图片描述

insert into user(name,age,status,gender) values ('Tom3',19,'1','男'),('Tom4',25,'0','男');
  • 1

为啥新插入的两条数据,id是23、24?它貌似会把之前报错的自增计数也给算了,有点奇葩啊

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Monodyee/article/detail/463360
推荐阅读
相关标签