ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

select查询

2022-05-31 10:32:26  阅读:182  来源: 互联网

标签:语句 join exists union 查询 关键字 select


内连接查询

内连接

a inner join b on a.x=b.x

外连接查询

左连接

a left join b on a.x=b.x

右连接

a right koin b on a.x=b.x

联合查询

union /union all

其中union选项有两个选项可选
all:表示无论重复都输出
distinct: 去重(整个重复)(默认的)

联合查询只要求字段一样, 跟数据类型和顺序无关

联合查询的意义:

查询同一张表,但是需求不同 如查询学生信息, 男生身高升序, 女生身高降序
多表查询: 多张表的结构是完全一样的,保存的数据(结构)也是一样的.
联合查询order by的使用
在联合查询中: order by不能直接使用(不能出现两次),需要对查询语句使用括号才行;
也就是说,order by不能直接出现在union的子句中,但是可以出现在子句的子句中。

  • inner join 内联结:返回两个表可匹配的行;
  • left join 左联结:即使左表没有匹配,右表返回所有行;
  • right join右联结:即使右表没有匹配,左表返回所有行;
  • full join 全联结:只要其中某个表存在匹配九返回所有行;(mysql没有)

子查询

带in关键字的子查询

使用in关键字可以将原表中特定列的值与子查询返回的结果集中的值进行比较
如果某行的特定列的值存在,则在select语句的查询结果中就包含这一行。

带比较运算符的子查询

如果可以确认子查询返回的结果只包含一个单值,那么可以直接使用比较运算符连接子查询。
经常使用的比较运算符包括等于(=)、不等于(<>或!=)、小于(<)、大于(>)、小于等于(<=)和大于等于(>=)。

带exists的子查询

exists: 是否存在的意思, exists子查询就是用来判断某些条件是否满足(跨表),
exists是接在where之后
exists返回的结果只有0和1.

带any关键字的子查询

any关键字表示满足其中的任意一个条件,使用any关键字时,只要满足内层查询语句结果的的任意一个,就可以通过该条件来执行外层查询语句。

带all关键字的子查询

all和any刚好是相反的,all关键字表示满足所有结果,使用all关键字,要满足内层查询语句的所有结果,才可以通过该条件来执行外层查询语句。

标签:语句,join,exists,union,查询,关键字,select
来源: https://www.cnblogs.com/east-9527/p/16329519.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有