SQL的连接查询

连接查询
连接查询是将多张表中记录按照指定的条件进行连接的查询方式
在这里插入图片描述
如下两表
在这里插入图片描述
内连接:
内连接是返回连接表中符合连接条件或查询条件记录的连接查询
显示内连接

  • 语法:SELECT 字段 FROM 表1 INNER JOIN 表2 ON 连接条件 WHERE 条件
  • 示例:SELECT newsTitle,topicName FROM news AS n INNER JOIN topic AS t ON n.topicId=t.topicId
  • 结果:在这里插入图片描述

隐式内连接

  • 语法:SELECT 字段 FROM 表1,表2 WHERE 表1.条件=表2.条件
  • 示例:SELECT newsTitle,topicName FROM news AS n,topic AS t WHERE n.topicId=t.topicId
  • 结果:在这里插入图片描述

外连接:
外连接是以一张表为基表,返回基表中所有记录及连接表中符合条件的记录的连续查询
左外连接
在这里插入图片描述
语法:SELECT 字段 FROM 表1 LEFT JOIN 表2 ON 连接条件WHERE 条件
示例:SELECT topicName,newsTitle FROM topic AS t LEFT JOIN news AS n ON n.topicId=t.topicId
结果:在这里插入图片描述

右外连接
在这里插入图片描述
语法:SELECT 字段 FROM 表1 RIGHT JOIN 表2 ON 连接条件WHERE 条件
示例:SELECT newsTitle,topicName FROM news AS n RIGHT JOIN topic AS t ON n.topicId=t.topicId
结果:
在这里插入图片描述

子查询
子查询是在一个查询的内部包括另一个查询的查询方式
执行顺序:先执行子查询,返回所有来自子查询的结果,再执行外围的父查询,返回查询的最终结果
在这里插入图片描述
示例:SELECT newsTitle FROM news WHERE newsId NOT IN( SELECT newsId FROM comments WHERE cmtAuthor LIKE ‘%东%’)

在这里插入图片描述
EXISTS子查询
语法:SELECT 字段 FROM 表名 WHERE EXISTS(子查询);
注意:子查询有返回结果:EXISTS子查询结果为TRUE,外层查询执行
子查询无返回结果:EXISTS子查询结果为FALSE,外层查询不执行

子查询的应用

  1. 任何允许使用表达式的地方都可以使用子查询
  2. 嵌套在父查询SELECT语句的子查询可包括
    SELECT子句
    FROM子句
    WHERE子句
    GROUP BY子句
    HAVING子句
  3. 只出现在子查询中而没有出现在父查询中的列不能包含在输出列中
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值