mysql字段约束

为了确保数据的完整性和唯⼀性,关系型数 据库通过约束机制来实现目。
 
    一. unique 唯一性约束    : 值不可重复;
    二. not null    非空约束    : 值不可为空;
    三. default  默认值约束   : 当增加数据时没有插⼊值时,会自动插⼊默认值;
    四. check     检查约束     : mysql不支持该约束,但写入语句不会报错;
    五. primary key 主键约束:主键约束 = 唯一性约束 + 非空约束,是一张表的代表性字段,
                一张表只能有一个主键,
                主键可以是一个字段,也可以是多个字段(联合主键,复合主键),
                整形主键字段可以使用auto_increment(自动增长)修饰,
                插入时不写主键字段值,值 = 上一列值 + 1;
    六. foreign key 外键约束 :外键是另一表的主键,常用来和其他表建立联系
                外键与主键的引用类型必须一致,如果主键是int外键是char则不行  
                一定要匹配主表中 引用的列 ( 所要创建的外键是主表中的主键 )
                主键和外键的字符编码必须一致,如果主表为utf8,则此表也要为utf8

–添加方式(注:文中添加方式仅为示例,
  ·           实际同时对一个字段同时添加多个约束会有bug,
             具体原因可以参见约束原理)

–第一种,创建表时在修饰字段末直接添加,不支持添加foreign key
     create table stu(sid int unique,sname char(20));
     create table stu(sid int not null,sname char(20));
     create table stu(sid int default 0,sname char(20));
     create table stu(sid int primary key,sname char(20));

–第二种,创建表时单独添加,constraint表示起别名,不支持添加default
     create table stu(sid int,
               sname char(20),
               constraint unique_stu unique(sid),
               constraint notnull_stu not null(sid),
               constraint pk_stu primary key(sid),
               constraint fk_stu foreign key(sid) references s(sid)
               );

–第三种,表已经存在,且字段下的所有值符合约束条件
     alter table stu add constraint unique_stu unique(sid);
     alter table stu add constraint notnull_stu not null(sid);
     alter table stu add constraint pk_stu primary key(sid);
     alter table stu add constraint fk_stu foreign key(sid) references s(sid);
    --查询约束信息,可查看约束名,table表示表名
  show keys from table;

–删除约束,index表示约束名,table表示表名
     drop index on table;

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值