Java数据库篇6——多表查询

Java数据库篇6——多表查询

1、笛卡尔积

交叉连接查询

设集合A={a, b},集合B={0, 1, 2},则两个集合的笛卡尔积为{(a, 0), (a, 1), (a, 2), (b, 0), (b, 1), (b, 2)}

2、 内连接查询

2.1、隐式内连接

SELECT 字段名 FROM 左表, 右表 WHERE 连接条件;

多表查询可以起别名,方便查询

2.2、显示内连接

SELECT 字段名 FROM 左表 [INNER] JOIN 右表 ON 条件

3、外连接查询

3.1、左连接

以左表为基准, 匹配右边表中的数据,如果匹配的上,就展示匹配到的数据 如果匹配不到, 左表中的数据正常展示, 右边的展示为null

SELECT 字段名 FROM 左表 LEFT [OUTER] JOIN 右表 ON 条件

3.2、右连接

以右表为基准,匹配左边表中的数据,如果能匹配到,展示匹配到的数据 如果匹配不到,右表中的数据正常展示, 左边展示为null

SELECT 字段名 FROM 左表 RIGHT [OUTER ]JOIN 右表 ON 条件

4、子查询

一条select 查询语句的结果, 作为另一条 select 语句的一部分

  • 子查询必须放在小括号中
  • 子查询一般作为父查询的查询条件使用

4.1、where型子查询

将子查询的结果, 作为父查询的比较条件

SELECT 查询字段 FROM 表 WHERE 字段=(子查询);
SELECT * FROM products WHERE price = (SELECT MAX(price) FROM products);

4.2、from型子查询

将子查询的结果, 作为 一张表,提供给父层查询使用

SELECT 查询字段 FROM (子查询)表别名 WHERE 条件;

4.3、exists型 子查询

子查询的结果是单列多行, 类似一个数组, 父层查询使用 IN 函数 ,包含子查 询的结果

SELECT 查询字段 FROMWHERE 字段 IN (子查询);
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

眼眸流转

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值