欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 房产 > 建筑 > 数据库中的复合查询

数据库中的复合查询

2024/11/30 8:55:15 来源:https://blog.csdn.net/qhy850716/article/details/140474127  浏览:    关键词:数据库中的复合查询

一、基本查询回顾

1、查询工资高于500或岗位为manager的员工,并且名字首字母是J

2、按部门编号升序,工资降序排序

3、用年薪降序排序

4、显示工资最高的员工名字和岗位(使用了子查询)

5、查询工资高于平均工资的员工

6、按部门查询最高工资和平均工资

7、显示平均工资低于2000的部门和他的平均工资

8、显示每种岗位员工数,平均工资

二、多表查询

两表结合语法

select * from table1, table2;        这一步是把两表中的行数据进行自由组合拼接,也叫笛卡尔积

select * from table1, table2 where table1.column=table2.column      这一步是用两个表中相同的值进行筛选,来获得有效的合并数据。

举例

(1)显示部门是10号的部门名,员工名和工资

(2)显示各个员工姓名,工资和工资级别

三、自连接

对同一张表进行笛卡尔积,但是要注意要重命名。

找FORD的领导

四、在where子句中的子查询

指嵌套在其他sql语句中的select语句

1、单列子查询

显示SMITH同一部门的员工

2、多行子查询

(1)查询和10号部门的工作岗位相同的员工名字,岗位工资部门号,不包括10号部门

in 判断一个列值是否在一个集合中

(2)显示工资比部门30号所有员工工资高的员工姓名,工资,部门号

all 比集合中所有数据都....

(3)显示工资比部门30号任意员工工资高的员工姓名,工资,部门号

any 比集合中任意一个....

3、多列子查询

查询和SMITH部门岗位完全相同的员工,不包括SMITH

五、在from子句中的子查询

1、显示每个高于自己部门平均工资的员工

思路:先拿到每个部门平均工资和员工表笛卡尔积,通过比较即可。

2、查找每个部门工资最高的人

思路:先拿到最高工资表和员工表笛卡尔积,通过比较即可。

3、显示每个部门的信息(部门名,编号,地址)和人员数量

思路:先拿到部门的人员数和部门表笛卡尔积,通过比较即可。

注意

1、进行子查询就要取别名。

2、可以把临时表进行取别名。

六、合并查询

工资大于2500或职位是MANAGER的员工

union   取两个结果的并集,自动去掉重复值

union all   取两个结果的并集,不去掉重复值

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com