数据库学习day2--表连接(笔记)

1、查询语句分组:根据指定的规则对数据进行分组:
  • --group by 分组字段

  • 语法:select 数据 from 数据源 where 行过滤条件 group by 分组having 组过滤信息 order by 排序字段;

  • 执行流程:from ->where ->group by ->having ->select ->order by

  • 如果select 后面一旦出现组函数,不能使用非分组字段

  • 如果一旦分组,只能使用分组字段或者组函数

  • where中 不能使用字段别名,不能使用组函数,因为执行流程问题

3、92语法

select 数据 from 数据源1,数据源2...where 行过滤条件 group by 分组字段1,分组字段2.. having 组过滤信息 order by排序字段1...desc|asc;

--笛卡尔积:交叉连接

--表连接条件:过滤通过连表产生的不满足要求的表连接数据

--等值连接:判断两个数据源中的两个字段值相等或者不相等

--非等值连接:判断区间,判断范围的条件

--92语法中表连接条件定义在where后面

--如果要使用的字段来自于多个数据源中都存在,需要指明限定词\出处

--自连接:一张表作为两个数据源使用

--内连接:满足连接条件查询到不满足过滤掉

--外连接:某一个数据中的数据不满足连接条件的时候也能显示

--左外连接 | 左连接:from后面主表在左边

--右外连接 | 左连接:from后面主表在左边

--主表:主表中的数据无论是否满足连接条件都能显示

--92语法:在连接条件位置,主表的对面添加(+)

4、99语法

--自然连接:自动做等值连接(同名字段|主外键字段)natural join

注意:在自然连接中同名字段的不能使用限定词

--join ...using(同名字段)指定使用哪个同名字段做等值连接

注意:在join...using中同名字段不能使用限定词

--既能做等值连接也能做非等值连接

--数据源1 join 数据源2 on 连接条件

注意:在join..on中同名字段必须使用限定词

--内连接:(inner) join

--外连接:主表中的数据无论是否满足连接条件都显示

--左外连接|左连接:left join

--右外连接|右连接:right join

--全连接:两张表都是主表 full join

5、表设计

--字段类型:number char varchar2 date

--字段约束:

主键约束(唯一->非空)

唯一约束

非空约束

默认约束

检查约束

外键约束

设计两张表:

父表|主表

子表|从表:子表中添加一个外键字段,关联主表的主键字段

外键字段的值只能为主表中主键字段已有的值

--设计表的三范式:

最终目的避免数据重复冗余

1NF->列不可再分最下原子(避免重复)

2NF->主键依赖(确定唯一)

3NF->消除传递依赖(建立主外键关联 拆分表)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值