Mysql完整约束

数据库中的每个列都应该有适当的数据类型,用于限制或允许该列中存储的数据。

约束类型约束主键外键唯一非空默认检查自增
关键字constraintprimary keyforeign keyuniquenot nulldefaultcheckauto_incteament
1、主键约束 primary key
  • 主键约束相当于 唯一约束 + 非空约束 的组合。
  • 每个表只允许一个主键,建立主键约束可以在列级别创建,也可以在表级别创建。
--列级别创建
<字段名> <数据类型> primary key 
--表级别创建
[constraint <约束名>] primary key <字段名1、字段名2>
-- 单列
create table temp( 
id int primary key,
name varchar(20)
);
-- 多列组合
create table temp(
id int ,
name varchar(20),
primary key(id, name)
);
-- 删除主键约束
alter table 表名 drop primary key;
-- 添加主键约束
alter table 表名 add primary key(id,name);
-- 修改主键约束
alter  table 表名 modify 字段名 字段属性 primary key;
2、外键约束 foreign keyreferencescascade

用来在两个表的数据之间建立链接,它可以是一列或者多列,一个表可以有一个或多个外键。外键的每个非空值出现在指定的主键中。

--表级别添加
constraint [外键约束名称] foreign key(外键字段名) references 主表名(主键字段名)
--建表之后添加
alter table 从表 add [constraint [外键约束名称] foreign key (外键字段名) references 主表(主键字段名);
--删除外键
alter table  表名 drop foreign key 外键名称;

外键联级

constraint [外键约束名称] foreign key(外键字段名) references 主表名(主键字段名) on update cascade on delete cascade

这是数据库外键定义的一个可选项,用来设置当主键表中的被参考列的数据发生变化时,外键表中响应字段的变换规则的。
on updateon delete 后面可以跟的词语有四个
no action 表示 不做任何操作,
set null 表示在外键表中将相应字段设置为null
set default 表示设置为默认值
cascade 表示级联操作,主键表中被参考字段更新/删除,外键表中也更新/删除
不用联级,修改主表只能先改从表,设置空,再改主表

3、唯一约束unique
--列级别创建
<字段名> <数据类型> unique
--表级别创建,有单列
[constraint <约束名>] unique <字段名1、字段名2>
4、非空约束not null
--列级别创建
<字段名> <数据类型> not null

5、默认约束default

--列级别创建
<字段名> <数据类型> default<默认值>
--修改
alter table 表名 change 字段名 <数据类型> default <默认值>;
--删除
alter table 表名 change 字段名 <数据类型> default null;
6、检查约束check
--建表增加检查约束
check<SQL 表达式>
--修改检查约束
alter table 表名 add constraint 检查约束名 check (检查约束表达式)
7、自增约束auto_incteament

主键字段后

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值