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 表名;

  • 相关阅读:
    实验教学管理系统 c语言程序代写源码下载
    模拟游客一天的生活与旅游java程序代写源码
    Java作业代写
    快餐店运行模拟C++程序源码代写
    HTML+CSS实例——漂亮的背景(一)
    HTML+CSS实例——漂亮的查询部件(一)
    求可能组合VB源码代写
    专业程序代写
    (重刷)HDU 1874 畅通工程续 + HDU 2544 最短路 最短路水题,dijkstra解法。
    价值链与项目组模式打通专业管理模式的竖井
  • 原文地址:https://www.cnblogs.com/zhanggq/p/9997951.html
Copyright © 2011-2022 走看看