小白之旅20

Posted demonycw

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了小白之旅20相关的知识,希望对你有一定的参考价值。

约束

概念:对表中的数据进行限制,保证数据的正确性、完整性、有效性

一. 主键约束 primary key

  • 特点:
    • 非空、唯一,是表中记录的唯一标识
    • 一张表只能有一个主键
  • 建表时,添加主键
    • create table emp (eid varchar(20) primary key , ename varchar(20) , eage int , ...); 建议将主键放在第一位
    • create table emp (eid varchar(20) , ename varchar(20) , eage int , ... , primary key (eid));
  • 删除主键
    • 不能使用修改列类型的方式删除主键, 即:alter table emp modify eid varchar(20);
    • alter table emp drop primary key; 注:只删除了唯一约束
  • 建表后,设置主键
    • alter table emp modify eid varchar(20) primary key;
  • 主键自增长:数值类型的主键,可以通过 auto_increment 使主键自动增长,只有主键能自增长,auto_increment 也是mysql的方言
    • 建表时,添加主键自增长
      • create table emp (eid int primary key auto_increment , ename varchar(20) , ... );
    • 建表后,设置主键自增长
      • alter table emp modify eid int auto_increment;
    • 删除自增长
      • alter table emp modify eid int;

注:

1、自增长的类型必须是数值类型的

2、小数类型也能自增长,例如:2.3 的下一个自增长是 3

3、在对主键进行增删时,必须要保证前后操作的数据是正确的

二. 非空约束 not null

  • 建表时,添加非空约束
    • create table emp (eid int , ename varchar(20) not null , eage int , ...);
  • 建表后,添加非空约束
    • alter table emp modify eage int not null;
  • 删除非空约束
    • alter table emp modify eaddr varchar(50);

三. 唯一约束 unique

  • 建表时,添加唯一约束
    • create table emp (eid int unique , ename varchar(20) , ...);
  • 建表后,添加唯一约束
    • alter table emp modify eage int unique;
  • 删除唯一约束
    • alter table emp drop index eage;

四,外键约束 foreign key

用于保证数据的完整性

  • 建表时,添加外键
    • create table 表名 ( 主键字段 类型 约束,字段 类型 [约束],... ,外键字段 类型 , constraint 外键名称 foreign key (外键字段) references 主表(主表主键));
    • create table 表名 ( 主键字段 类型 约束,字段 类型 [约束],... ,外键字段 类型 , foreign key (外键字段) references 主表(主表主键));
  • 删除外键
    • altert table 表名 drop foreign key 外键名称;
  • 建表后,添加外键
    • alter table 表名 add constraint 外键名称 foreign key(外键字段) references 主表(主表主键);
    • alter table 表名 add foreign key(外键字段) references 主表(主表主键);

补充:级联操作

添加级联功能

  • alter table 表名 add foreign key(外键字段) references 主表(主表主键) on delete cascade; -- 动态删除
  • alter table 表名 add foreign key(外键字段) references 主表(主表主键) on update cascade; -- 动态更新

1、级联删除:on delete cascade

2、级联更新:on update cascade

以上是关于小白之旅20的主要内容,如果未能解决你的问题,请参考以下文章

小白之旅20-1

小白的CFD之旅小结及预告

单片机小白的启程之旅

《小白的CFD之旅》招募写手

小白的CFD之旅 17 需要编程?

小白的CFD之旅15 四种境界