数据库进阶2(高级查询)

1.distinct                去重

 ------->去重后

 

2.连接查询

什么叫连接查询?一张表叫单表查询,多张表叫多表查询

1)表连接分类

内连接又分为 等值连接,非等值连接,自连接

外连接分为左外连接,右外连接

 

 很显然,我们必须添加限制条件来避免笛卡尔积的出现

 

通过笛卡尔积得出,表连接的次数越多,效率越低,尽量避免表的连接次数 

1)1)等值连接

SQL92语法

 

 

 SQL99语法

查询结果与92语法一样

 

(inner)join + 表名 : 说明内连接一个表                inner可以省略

on + 条件

SQL92语法缺点:

结构不清晰,和后期进一步筛选条件,都放到了where后面,即我后面想使用where条件将无法使用

SQL99语法优点:

表连接是独立的,连接之后,如果想进一步筛选,往后添加where条件

1)2)非等值连接

 ​​​​​​

 

条件不是一个等量关系,被称为非等值连接 

 

 1)3)自连接

必须将一张表变成两张表

 

 

 内连接特点:两张表没有主次关系,平等的,完成能够匹配的条件数据查询出来

1)4)外连接

表中含有null值,内连接查询时将无法查询出来,这时候我们得用到左外连接 

 

 

左外连接和右外连接的区别

left代表什么:表示将join关键字左边的表看成主表;

 

例如上图,拿emp e 表作为主表,主要是将这张主表的数据全部显示出来,顺便查询关联右表

右外连接则是将dept d 作为主表,将此表的数据全部显示出来,顺便查询关联左表emp e

 

 

多表连接

语法:

注意:一条sql可以内连接和外连接混合使用

 

3.子查询

select语句中嵌套select,被嵌套的select语句被称为子查询 

 

这样子查询就会报错,因为where子句不能直接使用聚合函数

两条语句并成一条

 这就是我们所谓的子查询

同时子查询可以嵌套在所有语句里面

 

 

 

4.合并集合

union

这样子查询效率低

 

 

 

 

5.分页查询

实现效果

 提高用户体验感

语法:

  起始是0,显示5条数据

 

 注意:limit 只能用在order by 后面 

DQL大总结

 

 

 

 

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值