zoukankan      html  css  js  c++  java
  • mysql 外键

    一、外键

    constraint 名称  foreign key()  references 表名()

    create table student(
        sid int auto_increment primary key,
        sname char(10),
        gender char(5),
        class_id int,
        constraint stu_key foreign key(class_id) references class(cid)
        )engine=innodb default charset=utf8;

    二、唯一索引

    唯一索引和主键的区别

    唯一索引:唯一但可以为空

    主键:唯一且不为空

    unique 名称 (多列)

    联合唯一

    三、外键变种

    1、一对多

    外键本身一对多

    create table tb2(
        id int auto_increment primary key,
        name char(5)
    )engine=innodb default charset=utf8;
    
    create table tb1(
        id int auto_increment primary key,
        name char(4) not null,
        age int,
        addr varchar(10),
        tb2_id int,
        constraint fk_t foreign key(tb2_id) references tb2(id)
    )engine=innodb default charset=utf8;

    2、一对一

    外键与唯一索引结合使用

    create table tb2(
        id int auto_increment primary key,
        name char(5)
    )engine=innodb default charset=utf8;
    
    create table tb1(
        id int auto_increment primary key,
        name char(4) not null,
        age int,
        addr varchar(10),
        tb2_id int,
        unique u2(tb2_id),
        constraint fk_t foreign key(tb2_id) references tb2(id)
    )engine=innodb default charset=utf8;

    3、多对多(额外创建一张表)

    多个外键和唯一索引

    create table tb2(
        id int auto_increment primary key,
        name char(5)
    )engine=innodb default charset=utf8;
    
    create table tb3(
        id int auto_increment primary key,
        name char(5)
    )engine=innodb default charset=utf8;
    
    create table tb1(
        id int auto_increment primary key,
        name char(4) not null,
        age int,
        addr varchar(10),
        tb2_id int,
        tb3_id int,
        unique u2(tb2_id, tb3_id),
        constraint fk_t2 foreign key(tb2_id) references tb2(id),
        constraint fk_t3 foreign key(tb3_id) references tb3(id)
    )engine=innodb default charset=utf8;
  • 相关阅读:
    C++同步串口通信
    python描述符详解
    python属性访问
    python简单计时器实现
    python时间模块详解(time模块)
    python魔法方法大全
    python类与对象各个算数运算魔法方法总结
    python里的魔法方法1(构造与析构)
    Python 函数修饰符(装饰器)的使用
    python类与对象的内置函数大全(BIF)
  • 原文地址:https://www.cnblogs.com/wt7018/p/11094474.html
Copyright © 2011-2022 走看看