学习Mysql3——约束条件

Posted 德鲁大树

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了学习Mysql3——约束条件相关的知识,希望对你有一定的参考价值。

  • 主键约束

唯一确定一张表的记录,给某个字段添加约束就可以确认它不为空且唯一

在定义的参数后添加 primary key

create table user(

  id int(20) primary key,

  name varchar

);

--联合主键 任意一个不为空即可--

create table user(

  id int(20) ,

  name varchar,

  primary key(id,name)

) ;

可以通过

alert table user add primary key(id);

添加主键约束

可以通过

alert table user drop primary key(id);

删除主键约束

可以通过

alert table user modify id int primary key;

添加主键约束

  • 自增约束

在参数后面加入 auto_increment

create table usr(

  id int(20) primary key auto_increment,

  name varchar

);
  • 外键约束

牵扯到两个表一个子表一个父表,用来做关联

foreign key()references 表名 ()

create table father(
   id int primary key,
   name varchar(20)  
);

create table children(
   id int primary key,
   name varchar(20)  
   foreign key (id) references father(id)   
);

主表没有数据值时,副表不可以添加

例如

主表

insert into  father Value("1","father1")

副表

insert into  children Value("2","children1")

插入失败 因为id为2在主表找不到,正确的话只能设置为1

主表中的数据被引用时,主表数据是不可以删除的

例如 

上面的例子要删除主表的数据id等于1是可以的 但是如果副表插入一条数据

insert into children value(“1”,“children”)

这样主表就删除不了数据了

  • 唯一约束

修饰该字段不可以重复

alert table user add unique(id);

create table user(
   name varchar(20) unique
);
唯一约束其中一个不重复即可
create table user( name varchar(20),
  id int,
unique(name,id) );
  • 非空约束

值不能传空

not null

和上述的约束用法相似

  • 默认约束

插入没有传值就会传默认值

default + 默认值

和上述的约束用法相似

以上是关于学习Mysql3——约束条件的主要内容,如果未能解决你的问题,请参考以下文章

在约束布局中查看片段的绑定不起作用

最优化学习 无约束优化问题的最优性条件

java学习笔记之mysql3

学习golang的条件编译

Drools学习笔记2—Conditions / LHS 匹配模式&条件元素

学习差分约束