约束条件

  • 约束是条件是在建表时使用的,用于限制表中的数据,为了保证表中数据的准确性和可靠性
  • 共有6大约束条件:not null || default || primary key || unique || check || foreign key
  • not null :非空,保证该字段的值不为空
  • default:默认,保证该字段有默认值
  • primary key:主键,用于保证该字段的值有唯一性,并且非空,比如学号等
  • unique:唯一,用于保证该字段的值具有唯一性但是可以为空
  • check:检查约束【mysql不支持但不报错】
  • foreign key:外键,用于限制两个表的关系,用于保证该字段的值必须来自于主表的关联列的值。在从表中添加外键约束,用于引用主表中某列的值
  • 添加约束的时机:
    创建表时;表已经存在,但是没有数据时
  • 约束的添加分类:
    列级约束:语法上六种约束都支持,但是外键约束没有效果
    表级约束:除了非空和默认,其他的都支持

创建表时添加约束

一、添加列级约束
  • 例子:(单纯的看如何使用,因为有一些是不支持的)
create database school;

create table major(
  id int primary key,
  majorName varchar(20)
);

 create table stuinfo(
  id int primary key,
 stuName varchar(20)  not null,
 gender char(1) check(gender = '男' or gender='女'),
 seat int unique,
 age int default 18,
 majorId int references major(id)
);
二、添加表级约束
  • 语法:
在各个字段的最下面
[constraint 约束名] 约束类型(字段名)
  • 例子:
drop table if exists stuinfo;

create table stuinfo(
  id int,
  stuname varchar(20),
  gender char(1),
  seat int ,
  majorid int,
  constraint pk primary key(id),
  constraint uq unique(seat),
  constraint ck check(gender = '男' or gender='女'),
  constraint fk foreign key(majorid) references major(id)
);

修改表时添加约束

  • 添加非空约束
alter table stuinfo modify column tsunami archer(20) not null;
  • 添加默认约束
alter table stuinfo modify column age int default 18;
  • 添加主键
# 添加列级约束
alter table stuinfo modify column stuid int primary key;

#添加标级约束
alter table stuinfo add primary key(id);
  • 添加唯一约束
# 添加列级约束
alter table stuinfo modify column seat int unique;

#添加标级约束
alter table stuinfo add unique(seat);
  • 添加外键约束
alter table stuinfo add foreign key(majorid) references major(id);
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容