mysql数据库设计

三大范式

第一范式(1NF) :数据库表的每一列都是不可分割的原子数据项
第二范式(2NF): 在1NF的基础上,非码属性必须完全依赖于候选码(在1NF基础上消除非主属性对主码的部分函数依赖)
第三范式(3NF): 在2NF基础上,任何非主属性不依赖于其它非主属性(在2NF基础上消除传递依赖)

几个概念:

  • 码: 如果一个属性或属性组 被其他属性完全依赖 ,则这个属性为码
  • 依赖: A->B 如果通过A属性的值,可以确定唯一B属性的值,则称B依赖于A
  • 完全函数依赖 A->B A是属性组() ,则B属性的值的确定 依赖与 A中所有属性值。
  • 部分函数依赖: A->B A是属性组(),则B属性的值的确定 仅依赖与A属性组中的某一些属性值即可

多表查询

笛卡尔积

两个集合,取2个集合所有可以组成的情况

内连接

隐式内连接 :where
显示内连接: inner join 。。。 on

外连接

左连接: left join … on …

查询的是左表 所有数据 以及其交集部分

右链接: right join… on …

查询的是右表 所有数据 以及其交集部分	

相比于 where , left join 会带上左表的所有记录,而where 后面的条件不满足的左表记录则不会出现在查询结果中

子查询

子查询的结果是单行单列的

select * from
XX where id =
(select max(id) from XX)

子查询的结果是多行单列的

select * from
XX where salary <
(select avg(salary)from XX )

select * from emp where id dep_id in (select id from dep);

子查询的结果是多行多列的

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值