码迷,mamicode.com
首页 > 数据库 > 详细

学习Mysql3——约束条件

时间:2020-04-26 01:32:25      阅读:89      评论:0      收藏:0      [点我收藏+]

标签:name   一个   user   约束   就删除   children   usr   reference   表数据   

  • 主键约束

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

在定义的参数后添加 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——约束条件

标签:name   一个   user   约束   就删除   children   usr   reference   表数据   

原文地址:https://www.cnblogs.com/wazy999/p/12776265.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!