MySQL学习—数据库的约束

数据库的约束主要是用来检查数据完整性,当往表中添加数据时,如果已经在某几列添加了约束,但填写时数据没有添加,则数据添加不成功。
约束最好早表结构建立是建立好约束,补充约束(列级的约束语法,表级的约束语法)。
(1)列级约束:列级约束是行定义的一部分,只能应用于一列上。 
(2)表级约束:表级约束是独立于列的定义,可以应用在一个表中的多列上。

1、非空约束,在修改列定义时追加 not null,取消追加重新赋值为null

#为weapon列,附加非空约束
alter table user
change weapon weapon varchar(10) not null comment '武器';
#取消weapon列非空约束
alter table user
change weapon weapon varchar(10) null comment '武器';

2、唯一约束
可以是一列,也可以是多列组合,如要对已存在的数据表建立约束,如果表中数据与约束违反,则建立不成功。
(1)一列形成一个唯一约束,使用列级的语法

#为userName添加唯一约束,使用户名不重复
alter table user 
modify userName varchar(30) unique;   

(2)多列组合形成一个唯一约束,使用表级约束语法,可以指定约束名称
constraint后跟约束名称,unique内括号两个形成的约束指两个的组合值不能重复,单独可以重复

alter table user add(
	constraint name_pass unique(userName,userPass)
)

注:删除唯一约束,用索引的方式删除
(若是列级约束,则约束名就是列名)

drop index 约束名 on 表名;

3、主键约束
(1)创建表时,使用primary key (主键名)创建。
(2)后期追加方法alter table 表名 add primary key (主键名);
注:删除主键时需要注意是否为自增长类型,如是则需要先取消自增长,再删除。

4、外键约束
(1)创建表时

create table 表名(
	constraint fk_user_userId foreign key (外键名) references 外表(外表列名)
)

(2)单独追加

  alter table 表名 add
  constraint fk_orders_orderId foreign key(外键名) references 外表(外表列名);

注:删除外键约束,使用drop关键字,如果想要彻底消除外键约束的影响,不仅要删除
外键约束,同时还要额外删除一个索引,这个索引是在创建外键约束是,数据库系统
自动生成的一个索引。

# 删除外键约束
  alter table user2 drop foreign key fk_role_roleId;	#删除外键
  alter table user2 drop index fk_role_roleId;#删除索引
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值