MySQL的约束条件

一,表约束分类

约束条件解释
primary key主键约束:主键是唯一的,非空的
unique唯一约束:约束字段是唯一的,不可重复
default默认约束:给字段默认值,不进行添加会自动添加所给的默认值
not null非空约束:约束字段不可空
check检查约束:限制字段的取值范围
auto_increment自增约束:约束字段自动增加,一般主键是数值类型的可以用自增约束
foreign key外键约束:用于表与表之间的约束

二,非外键约束示例

1,第一种方式

create table student(
	id int(4) primary key auto_increment,
	sname varchar(6) not null,
	phone_num varchar(15) unique,
	sex char(1) default '男' check(sex = '男' || sex = '女'),
	classname varchar(10) not null
);

学生id字段是自增约束,并且是表中的主键
学生姓名是非空约束,必须要有姓名
电话号码phone_num是唯一约束,每一个学生的电话号码是唯一的
性别sex默认是男,检查约束,数据的选择只能是男或女
学生班级是非空的

2,第二种方式

create table student(
	id int(6) auto_increment,
	sname varchar(6) not null,
	phone_number varchar(15),
	sex char(1) default '男',
	classname varchar(10) not null,
	constraint pk_stu primary key (id),
	constraint unq_phn unique (phone_number),
	constraint ck_sex check (sex='男' || sex='女')
);

3,第三种方式

create table student(
	id int(6),
	sname varchar(6) not null,
	phone_number varchar(15),
	sex char(1) default '男',
	classname varchar(10) not null
);
alter table student add constraint pk_stu primary key (id);
alter table student add constraint unq_phn unique (phone_number);
alter table student add constraint ck_sex check (sex='男' || sex='女');
alter table student modify id int(6) auto_increment;

三,外键约束示例

create table class1(
 cno varchar(10) primary key,
 cname varchar(10) 
);


create table stu1(
	id int(4) primary key,
	sname varchar(10) not null,
	classname varchar(10)
);
## 添加外键
alter table stu1 add constraint fk_stu foreign key (classname) references class1 (cno);

stu1这张表classname字段依赖于class1这张表的cno字段,一般被依赖表的字段是主键或者非空的,被依赖的表成为主表,依赖的表成为从表。
在stu1添加了外键,不能轻易修改表中的数据。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

zhi金——金小亮

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值