MySQL约束

约束

  • 约束
  • 总结

约束

1、概念:约束是作用于表中字段上的规则,用于限制存储在表中的数据。
2、目的:保证数据库中数据的正确、有效性和完整性。
3、分类:
MySQL约束_第1张图片
注意:约束是作用于表中字段上的,可以在创建表/修改表的时候添加约束。

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 '用户表';

-- 插入数据
insert into user(name,age,status,gender)-- 默认约束
values ('Tom1',19,'1','男'),
       ('Tom2',25,'0','男');
insert into user(name,age,status,gender)values (null,19,'1','男');-- 非空约束
insert into user(name,age,status,gender)values ('Tom2',19,'1','男');-- 唯一约束
insert into user(name,age,status,gender)values ('Tom4',121,'1','男');-- 检查约束
  • 外键约束
    概念:外键用来让两张表的数据之间建立连接,从而保证数据的一致性和完整性。
    语法:
    1、添加外键

CREATE TABLE 表名(
字段名 数据类型,

[CONSTRAINT][外键名称] FOREIGN KEY(外键字段名) REFERENCES 主表(主表列名)
);

ALTER TABLE 表名 ADD CONSTRAINT 外键名称 FOREIGN KEY(外键字段名) REFERENCES 主表(主表列名);

2、删除外键

ALTER TABLE 表名 DROP FOREIGN KEY 外键名称;

3、删除/更新行为
MySQL约束_第2张图片

ALTER TABLE 表名 ADD CONSTRAINT 外键名称 FOREIGN KEY(外键字段) REFERENCES 主表名(主表字段名) ON UPDATE CASCADE ON DELETE CASCADE;

总结

  1. 非空约束:NOT NULL
  2. 唯一约束:UNIQUE
  3. 主键约束:PRIMARY KEY(自增:AUTO_INCREMENT)
  4. 默认约束:DEFAULT
  5. 检查约束:CHECK
  6. 外键约束:FOREIGN KEY

你可能感兴趣的:(MySQL学习,mysql,数据库)