常用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命令汇总--多表查询相关推荐
- kingbase人大金仓常用sql命令(自用总结)
kingbase人大金仓常用sql命令(自用总结) 开发过程中使用到的 平时用mysql数据库,第一次用人大金仓数据库,有一些地方还是有区别,记录一下. –修改字段数据类型 –ALTER TABLE ...
- GBase 8s 常用管理员命令汇总-gstat(下)
GBase 8s 常用管理员命令汇总-gstat(下) gstat 打印运行时间统计信息 语法 gstat -g cpu 操作演示 [gbasedbt@devsvr ~]$ gstat -g cpu ...
- oracle中sql命令分为几类,常用sql命令@oracle数据类型概括@权限、角色、用户的创建于使用@伪列及其注意事项-Oracle...
常用sql命令@oracle数据类型概括@权限.角色.用户的创建于使用@伪列及其注意事项 1.各种不同权限的用户 系统权限: 用户名:sys/system(用户名默认的是 sys,system);密码 ...
- oracle维护常用SQL语句(查看系统表和视图)
转:http://www.360doc.com/content/11/1230/15/7489308_176090474.shtml oracle维护常用SQL语句(查看系统表和视图) 1.查看表空间 ...
- 常用LINUX命令汇总
常用LINUX命令汇总 一.基本命令 bash Bash(GNU Bourne-Again Shell)是许多Linux平台的内定Shell pwd 查看当前所在目录 ls 查看目录内所有文件 cd ...
- linux运维工程师命令,Linux运维工程师的常用Linux命令汇总
今天小编要跟大家分享的文章是关于Linux运维工程师的常用Linux命令汇总.作为运维人员,这些常用命令不得不会,掌握这些命令,工作上会事半功倍,提供工作效率.下面来和小编一起看一看吧! 一.文件和目 ...
- SQL 语句的多表查询方式
SQL 语句的多表查询方式 例如:按照 department_id 查询 employees(员工表)和 departments(部门表) 的信息. 方式一(通用型): SELECT ... FROM ...
- GBase 8s 常用管理员命令汇总-gadmin
GBase 8s 常用管理员命令汇总-gadmin gadmin 命令 说明 gadmin -m 将数据库服务器从静态模式或单用户模式,切换为在线模式 gadmin -k 完全关闭数据库 gadmin ...
- xshell删除文件夹命令_ssh远程连接GPU服务器进行深度学习以及常用ssh命令汇总
在我们进行深度学习的科研任务时,我们都会遇到复杂神经网络的训练问题,这时我们都不可避免地需要一块合适的gpu服务器,我认为gpu服务器的好处有两点:一是相对而言便宜一些,虽然很多gpu服务器也是昂贵的 ...
最新文章
- 我在硅谷工作的第四年:技术是怎么把信息变现的
- ubuntu 安装OpenBLAS
- 《Go语言圣经》学习笔记 第六章 方法
- 单元测试的一些基本概念
- 驾驭系统 做一个Windows XP的“***”(图)3
- python垃圾分类准确率计算公式_准确率(Accuracy), 精确率(Precision), 召回率(Recall)和F1-Measure...
- 使用Adobe acrobat压缩pdf大小
- checking for tgetent()... configure: error: NOT FOUND!
- 查询英语单词 - 有道官方(一)
- ASP.NET伪静态
- JAVA--set用法
- CocosCreator之KUOKUO带你做刚体移动与物品拾取到背包
- wps云盘和zotero的结合(一)
- python按照日期筛选excel_【Python代替Excel】6:按条件筛选
- 【Python爬虫学习实践】多线程爬取Bing每日壁纸
- ajax excel导出问题,AJAX导出excel问题
- Docker 安装和使用日常命令全覆盖
- 写了十几年代码,我为什么还没有被拿去“祭天”?
- 海量数据判断某个数据是否存在
- linux命令--ln软连接,硬链接
热门文章
- 一款桌面英语翻译软件介绍
- Edge Detector ----------Marr Hildreth 算法
- 进程内服务器,进程外服务器,远程服务器
- 电动助力转向系统国内外研究现状
- 【算法】基于hoare快速排序的三种思想和非递归,基准值选取优化【快速排序的深度剖析-超级详细的注释和解释】你真的完全学会快速排序了吗?
- VS创建Qt工程,INK : fatal error LNK1181: 无法打开输入文件“xx.lib”
- Linux_Shell Shell编程简介
- Mysql:insert date:SQL 错误 [1292] [22001]: Data truncation: Incorrect date value:
- 荣耀笔记本打开TPM,升级win11
- 青云科技发布业绩预告净利亏损,天风证券研报:存在核心技术风险