• 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));
  • 相关阅读:
    [已读]精通AngularJS
    [在读]HTML5数据推送应用开发
    [未读]深入浅出node.js
    [已读]用Angularjs开发下一代web应用
    [在读]Secrets of the javascript Ninja
    Element ui select同时获取value和label的值
    Element ui tree树形控件获取父节点id
    Element ui tree结合Vue使用遇到的一些问题(一)
    vue数组检测更新问题
    css3实现流星坠落效果
  • 原文地址:https://www.cnblogs.com/jianhaozhou/p/9641644.html
Copyright © 2020-2023  润新知