1.1.1 外键约束

Create database day16;

Use day16;

创建部门表:

create table dept(

did int primary key auto_increment,

dname varchar(20)

);

insert into dept values (null,'研发部');

insert into dept values (null,'教研部');

insert into dept values (null,'市场部');

创建员工表:

create table emp(

eid int primary key auto_increment,

ename varchar(20),

email varchar(20),

eprice double

);

insert into emp values (null,'张三','zs.itcast.cn',4500);

insert into emp values (null,'李四','ls.itcast.cn',5500);

insert into emp values (null,'王五','ww.itcast.cn',6500);

insert into emp values (null,'赵六','zl.itcast.cn',7500);

现在描述部门和员工之间关系:

* 需要在员工表中添加一个字段.字段就是部门编号!!!

alter table emp add dno int;

* 修改员工添加所对应部门:

update emp set dno = 1 where eid = 1;

update emp set dno = 2 where eid = 2;

update emp set dno = 3 where eid = 3;

update emp set dno = 3 where eid = 4;

* 现在市场部不景气,删除市场部,删除了市场部,那么市场部下属员工要如何处理?

* 如果现在删除部门,那么员工还存在而且还指向的部门是刚删除的那个!!!

* 必须使用外键约束:

* 单表约束的作用:用来保证数据的完整性.

* 外键约束:保证多个表之间的数据完整性.

* foreign key:外键约束

* alter table emp add foreign key (dno) references dept(did);

1.1.2 多表设计中的三种实体关系:
一对多:

一个部门可以对应多个员工,一个员工只能属于一个部门!

一个客户可以对应多个订单,一个订单只能属于一个客户!

* 一对多关系建表原则:

* 需要在多的一方添加一个字段,作为外键指向一的一方主键!

多对多:

一个学生可以选择多门课程,一个课程可以被多个学生所选择的!

* 多对多关系建表原则:

* 需要创建第三张表,第三张表中需要两个字段,这两个字段分别作为外键指向多对多双方的主键!

一对一:(使用比较少)

一个公司只能对应一个地址,一个地址也只能对应一个公司!

一对一的关系式比较少用!

* 公司表:地址是公司的表的字段.

* 一对一的关系的建表原则:

* 主键对应:

* 唯一外键对应:

最新文章

  1. Spring映射器、适配器、解析器
  2. Windows Store App JavaScript 开发:WinJS库控件
  3. what is SVD and how to calculate it
  4. HtmlHelper使用大全
  5. Activity生命周期(一) 暨 帮助文档的使用
  6. Count Colour_poj2777(线段树+位)
  7. innerHtml and Jquery.html()
  8. WPF/Silverlight Layout 系统概述——Measure(转)
  9. c函数调用过程原理及函数栈帧分析
  10. Oracle超出最大连接数问题及解决
  11. SQL Server 查询分析器提供的所有键盘快捷方式(转)
  12. 一步步学习NHibernate(1)——NHibernate介绍
  13. Java web 文件下载
  14. 1084: [SCOI2005]最大子矩阵
  15. javaScript绑定事件委托 demo
  16. 安卓笔记-- popupwindow back键不消失的问题
  17. Http 1.x弊端与Http 2.0比较
  18. 【Objective-C】内存管理
  19. Quartus prime 16.0 signaltap II 使用
  20. 【转】ETL介绍与ETL工具比较

热门文章

  1. CSS3导航效果
  2. eclipse-4.4.2安装Groovy插件(其他版本eclipse可参考)
  3. CF456D A Lot of Games (字典树+DP)
  4. NOIP2010 引水入城 题解
  5. HTTP报文详解
  6. [译]管理IIS日志的存储
  7. mysql搜索引擎 小结
  8. Nginx安装配置(转)
  9. 【bzoj4027】[HEOI2015]兔子与樱花
  10. ICloud没有密码怎么注销?