常用SQL命令汇总--多表查询
2022/1/23 2:08:45
本文主要是介绍常用SQL命令汇总--多表查询,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
一、多表查询
1.连接查询:
连接查询是将两个或两个以上的表按照某个条件连接起来,从中选取需要的数据;
t_book表: t_bookType表:
如:
SELECT * from t_book,t_booktype;
返回结果将两个表的所有组合结果返回
1、内连接查询:
内连接查询是一种最常用的连接查询。内连接查询可以查询两个或者两个以上的表;
SELECT * from t_book b,t_booktype t where t.id=b.id;
或
SELECT * from t_book,t_booktype where t_book.id=t_booktype.id;
查询结果:
也可这么写来查询需要的字段:
select bookName,author,bookTypeName from t_book,t_booktype where t_book.id=t_booktype.id;
注意:如果查询的字段(如id)中两个表都有时这种写法会出错(或报ambiguous错误),因为无法得知id是哪个表的字段,所以平时多表查询时要写别名
修改为:
select tb.bookName,tb.author,tby.id from t_book tb,t_booktype tby where tb.id=tby.id;
2、外连接查询
外连接可以查出某一张表的所有信息;
SELECT 属性名列表
FROM 表名 1
LEFT|RIGHT JOIN 表名 2
ON 表名 1.属性名 1=表名 2.属性名 2;
- 左连接查询:
可以查询出“表名 1”的所有记录,而“表名 2”中,只能查询出匹配的记录;如:
select * from t_book tb left JOIN t_booktype tby on tb.bookTypeId=tby.id;
查询结果:
-
右连接查询:
可以查询出“表名 2”的所有记录,而“表名 1”中,只能查询出匹配的记录;如:
select * from t_book tb right JOIN t_booktype tby on tb.bookTypeId=tby.id;
查询结果:
- 多条件连接查询
即where后面有多个条件and连接查询
2.子查询
1 、带 In 关键字的子查询
一个查询语句的条件可能落在另一个 SELECT 语句的查询结果中。
2 、带比较运算符的子查询
子查询可以使用比较运算符。
3 、带 (not)Exists 关键字的子查询
假如子查询查询到记录,则进行外层查询,否则,不执行外层查询;not exists表示内层没有内容时才查询外层
如:
SELECT * from t_book where EXISTS(select * from t_booktype);
表示t_booktype中返回的有内容时才执行外层t_book的查询
4 、带 Any 关键字的子查询
ANY 关键字表示满足其中任一条件;如:
SELECT * FROM t_book WHERE price>= ANY (SELECT price FROM t_pricelevel);
表示筛选价格大于任意t_pricelevel表中选出的价格的结果,即比最小的大的价格就满足条件
5 、带 All 关键字的子查询
ALL 关键字表示满足所有条件;如:
SELECT * FROM t_book WHERE price>= ALL (SELECT price FROM t_pricelevel);
表示筛选价格大于所有t_pricelevel表中选出的价格的结果,即比最大的价格大的才满足条件
3.合并查询
UNION
使用 UNION 关键字是,数据库系统会将所有的查询结果合并到一起,然后去除掉相同的记录;
UNION ALL
使用 UNION ALL,不会去除掉系统的记录;
这篇关于常用SQL命令汇总--多表查询的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-09-28微服务架构中API版本控制的实践
- 2024-09-28AI给的和自己写的Python代码,都无法改变输入框的内容,替换也不行
- 2024-09-27Sentinel配置限流资料:新手入门教程
- 2024-09-27Sentinel配置限流资料详解
- 2024-09-27Sentinel限流资料:新手入门教程
- 2024-09-26Sentinel限流资料入门详解
- 2024-09-26Springboot框架资料:初学者入门教程
- 2024-09-26Springboot框架资料详解:新手入门教程
- 2024-09-26Springboot企业级开发资料:新手入门指南
- 2024-09-26SpringBoot企业级开发资料新手指南