Mysql在表中添加约束条件

第一种:在创建表的时候:

create table student(
sno char(9) primary key,
sname varchar(20) unique,
ssex char(2) not null,
sage smallint default 19,
sdept varchar(20)
);
create table course(
cno varchar(4) primary key,
cname varchar(40) not null,
cpno varchar(4),
ccredit smallint,
foreign key (cpno) references course(cno)
);
create table sc(
sno char(9),
cno varchar(4),
grade decimal(4,2),
foreign key(sno) references student(sno),
foreign key(cno) references course(cno)
);

其中有一些限定词如:decimal(4,2)的意思的存储的数字为四位(小数点后两位),unique表示唯一(即该属性中的值只能出现一次),default 19:默认值为19;其中foreign key (外键列) references 主键表(主键列);

第二种:在创建完表后发现外码没有设置或者进行删除可以采用以下方法:

1.主键约束
添加:alter table  table_name add primary key (字段)
删除:alter table table_name drop primary key
2.非空约束
添加:alter  table table_name modify 列名 数据类型  not null 
删除:alter table table_name modify 列名 数据类型 null
3.唯一约束
添加:alter table table_name add unique 约束名(字段)
删除:alter table table_name drop key 约束名
4.自动增长
添加:alter table table_name  modify 列名 int  auto_increment
删除:alter table table_name modify 列名 int  
5.外键约束
添加:alter table table_name add constraint 约束名 foreign key(外键列) 
references 主键表(主键列)
删除:
第一步:删除外键
alter table table_name drop foreign key 约束名
第二步:删除索引
alter  table table_name drop  index 索引名
[^1]: 
约束名和索引名一样
6.默认值
添加:alter table table_name alter 列名  set default '值'
删除:alter table table_name alter 列名  drop default

以下是在sc表创建完之后发现没有设置主码,然后通过 alter table sc foreign (外键列) references 主键表(主键列) 完成的:

  • 15
    点赞
  • 96
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值