码迷,mamicode.com
首页 > 其他好文 > 详细

11.21

时间:2018-11-21 22:15:00      阅读:240      评论:0      收藏:0      [点我收藏+]

标签:cad   hone   one   har   ber   select   插入   其他   customer   

一、外键 级联

外键: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 表名;

 

11.21

标签:cad   hone   one   har   ber   select   插入   其他   customer   

原文地址:https://www.cnblogs.com/zhanggq/p/9997951.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!