MySQL学习笔记--2数据表约束

数据库表约束

1:约束保证数据的完整性与一致性

2:约束粉尾表级约束和列级约束

3:约束类型

  •    not null

  •    primary key

  •    unique key

  •    default 

  •    foreign key

4:创建外键约束的要求

  •   父表和字表必须使用相同的存储引擎

  •   数据表的存储引擎只能是InnoDB

  •   外键列和参照列必须具有相同的数据类型,数字长度与符号位必须相同,字符长度可以不同

  •   s外键列与参照列必须创建索引,如果外键列不存在索引,mysql自动创建

eg:

create table provinces(
id smallint unsigned primary key auto_increment,
pname varchar(16) not null
)engine=InnoDB default character set utf8;
create table users(
id smallint unsigned primary key  auto_increment,
username varchar(20) not null,
pid smallint unsigned not null,
foreign key(pid) references  provinces(id)
)engine=InnoDB default character set utf8;


外键操作的参照操作

1:CASCADE从父表删除或更新且自动删除或更新字表总的行

2:SET NULL从父表删除或更新行并设置字表中的外键列为NULL,如果使用改选项必须保证字表列没有指定为not null

3:RESTRICT拒绝对父表的删除或更新操作

4:NO ACTION标准的SQL关键字,与RESTRICT相同


create table users1(

id smallint unsigned primary key  auto_increment,

username varchar(20) not null,

pid smallint unsigned not null,

foreign key(pid) references  provinces(id) on delete CASCADE 

)engine=InnoDB default character set utf8;


你可能感兴趣的:(MySQL学习笔记--2数据表约束)