0913数据库约束之主键 外键 非空 默认值约束 唯一约束 级联操作 表与表之间的联系

1 约束

  什么是约束

    除了数据类型以外额外添加的约束

  约束的作用:

    为了保证数据的完整性 合法性

  分类:

    not null 非空约束 数据不能为空  

create table stu(id int , name char(10) not bull);

    

    default 默认值约束 可以指定字段的默认值

create table stu(id not null,name default "man")      

    

    unique 唯一约束 该字段是唯一的不可以重复

      其中唯一约束有分成单列唯一约束和多列唯一约束

      单列唯一约束

create table stu(id int unique)

      

      多列唯一约束

      需要两个字段都相同才会触发约束条件

create table stu(id int ,name char(10),unique(id,name));

    primary key 主键约束

      用于唯一标识表中一条记录

      主键与唯一约束+非空约束的效果相同

      

create table stu(id int primary key);

    主键也分多列联合主键和单列

    多列联合主键作用和多列联合约束相似,需要主键中的两个字段都相同才会触发约束

 

create table stu(id int ,name char(10),primary key(id,name));

    auto_increment 自增长约束

    作用 通常搭配主键使用 可以自动为你的数据自加1

      通常是id 计数从1开始,会自动的加一

    注意:自动增长 只能用于整型

    使用语法:

create table stu(id primary key auto_increment);

    修改自动增长的起始位置(语法):

alter table stu auto_increment = 3;

    foreign key 外键

      用于建立两张表之间的联系

      使用的语法:

        1 先建立教室表

create table classroom(id int primary key,name char(10));

        2 再建立学生表

create table stu(id int primary key,name char(10),classroom_id int not null,foreign key(classroom_id) references classroom(id));

级联操作 

  on delete cascade (同步删除)

  on update cascade(同步更新)

        1 先建立教室表

create table classroom(id int primary key,name char(10));

        2 再建立学生表(学生表与教室表建立级联)

create table stu(id int primary key,name char(10),classroom_id int not null,foreign key(classroom_id) references classroom(id) on delete cascade on update cascade);

表与表之间的联系

  一对一

  一对多

        1 先建立教室表

create table classroom(id int primary key,name char(10));

        2 再建立学生表(学生表与教室表建立级联)

create table stu(id int primary key,name char(10),classroom_id int not null,foreign key(classroom_id) references classroom(id) on delete cascade on update cascade);

  多对多

      1 建立学生表

create table stu(id int primary key,name char(10));

      2 建立教师表

create table tea(id int primary key,name char(10));

      3 建立学生表与教师表之间多对多关系的表t_s

create table t_s(s_id int not null,t_id int not null,foreign key(s_id) references stu(id),foreign key(t_id) references tea(id),primary key(s_id,t_id));
原文地址:https://www.cnblogs.com/jianhaozhou/p/9641644.html