• 11.21


    一、外键 级联

    外键:create table 表名(字段名 类型(长度),foreign key(外键的字段名称) references 对方表名(对方主键名));

    外键的第一种约束
      先建主表
      再建从表

    外键的第二个约束
      先插入主表
      再插入从表

    外键的第三个约束
      删除记录时
      先删除从表记录
      再删主表记录

    外键的第四个约束
      从表更新外键时 必须保证外键是存在的

    外键的第五个约束
      更新主表的id时
      必须先删除从表关联的数据
      或者把关联数据 关联其他的主表id

    外键的第六个约束
      删除主表时 要先删除从表

    级联:

    create table emp(
    id int primary key auto_increment,
    name char(20),
    d_id int,
    foreign key(d_id) references dept(id)
    on delete cascade
    on update cascade
    );

    on delete cascade 当主表删除记录时 从表相关联的记录同步删除
    on update cascade 当主表id更新时 从表相关联的记录同步更新
    注意是单向的 主表变化是 级联操作从表 从表的变化不会级联到主表

    二、多表关联

    1.多对一

      一个外键  create table 表名(字段名 类型(长度),foreign key(外键的字段名称) references 对方表名(对方主键名));

    create table dept(id int primary key auto_increment,name char(20),job char(20));
    create table emp(id int primary key auto_increment,name char(20),d_id int,foreign key(d_id) references dept(id));

    2.多对多

      一个中间表 两个外键

    create table teacher(id int primary key auto_increment,name char(15));
    create table student(id int primary key auto_increment,name char(15));
    #中间表
    create table tsr(
    id int primary key auto_increment,
    t_id int,s_id int,
    foreign key(t_id) references teacher(id),
    foreign key(s_id) references student(id)
    );

    3.一对一

      一个外键 一个唯一约束

    create table customer(c_id int primary key auto_increment,
    name char(20),phonenum char(11),addr char(20));
    create table student1(s_id int primary key auto_increment,
    name char(20),
    class char(11),
    number char(20),
    housenum char(20),c_id int UNIQUE,
    foreign key(c_id) references customer(c_id)
    );

    三、复制表

    create table 新的表名 select * from 源表名;
    数据
    结构
    约束不能复制

    当条件不成立是 只复制表结构
    create table 新的表名 select * from 源表名 where 1 = 2;

    四、蠕虫复制

    自我复制
    insert into 表名称 select *from 表名;
    如果有主键 避开主键字段
    insert into 表名称(其他字段) select 其他字段 from 表名;

  • 相关阅读:
    Android 禁止软键盘自动弹出
    Android之Adapter用法总结
    如何成为android高手
    最强大的文案策略
    外贸电商的ERP有很多
    ERP行业销售如何挖掘潜在客户?
    新制造
    C#实现字符串相似度算法
    cmd
    对于大型公司项目平台选择j2ee的几层认识
  • 原文地址:https://www.cnblogs.com/zhanggq/p/9997951.html
Copyright © 2020-2023  润新知