zoukankan      html  css  js  c++  java
  • 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 表名;

  • 相关阅读:
    你欠我的幸福,怎么弥补
    爱,请你走开
    一生为你
    爱你到底
    粒子滤波简介(转载)
    关于小波变换和Gabor变换的一些知识!
    基于Opencv的MeanShift跟踪算法实现
    opencv学习网页
    基于OpenCV库的Gabor滤波器的实现
    Mean Shift算法(CamShift)
  • 原文地址:https://www.cnblogs.com/zhanggq/p/9997951.html
Copyright © 2011-2022 走看看