MySQL 员工信息查询
单表查询
目录
单表查询
多表查询
SELECT * FROM emp;-- 需求:查询出工资高于500或者岗位为MANAGER的员工,同时还要满足他们的姓名的首字母为大写的J的数据.
SELECT * FROM emp WHERE (SAL >= 500 or JOB='MANAGER') and ENAME like 'J%';-- 需求:按照工资的从低到高的顺序显示员工信息。
SELECT * FROM emp order by SAL asc;-- 需求:按照部门号升序,员工的工资按降序排序。
SELECT * FROM emp ORDER BY DEPTNO ASC,SAL desc;-- 需求:查询员工的年薪,并以年薪进行升序排序。
select empno,ename,sal,comm,(sal+ifnull(comm,0))*12 as nx from emp ORDER BY nx;-- 显示工资最高的员工的姓名,工作,工资。
select max(sal) from emp;
select ename,job,sal from emp WHERE sal=(select max(sal) from emp);-- 显示工资高于平均工资的员工信息
select ename,job,sal from emp WHERE sal>(select avg(sal) from emp);-- 每个部门的平均工资和最高工资。
select deptno,avg(sal),max(sal) from emp GROUP BY DEPTNO;-- 每个部门的每种岗位的平均工资和最低工资。
select deptno,job,avg(sal),min(sal) from emp GROUP BY DEPTNO,job;-- 按部门编号进行分组,平均工资低于2000的部门号和他的平均工资。
select deptno,avg(sal) from emp GROUP BY DEPTNO having avg(sal)<2000;-- 如何显示工资比部门编号30的所有员工的工资高的员工的姓名,工资,部门号
select max(sal) from emp where deptno=30select * from emp where sal > (select max(sal) from emp where deptno=30)-- > all(集合) 你查询的值是比集合中所有的值都大的。
select * from emp where sal > all(select sal from emp where deptno=30)--
--
-- 如何显示工资比部门编号30的任意员工的工资高的员工的姓名,工资,部门号select * from emp where sal > (select min(sal) from emp where deptno=30)
--
-- -- > any(集合) 你查询的值是比集合中任意一个值都大的。select * from emp where sal > any(select sal from emp where deptno=30)
多表查询
-- 两个表 查询/*select 列名1,列名2.......from 表1[cross left right ]join 表2on 连接的条件 表1.字段名=表2.字段名and 查询条件join 表3on 连接的条件 表1.字段名=表3.字段名where 查询条件group by ....having .....order by ............
*/-- 交叉连接 两种表进行连接 一张表的每一条数据去跟另一张的表每一条数据进行连接 结果:笛卡尔乘积 5*4=20
select e.*,d.* from emp e
cross join dept d-- 多表查询
-- 查询的字段来源于多张表 emp:员工编号、姓名、工种、工资、部门编号 dept:部门名称
-- 查询员工信息(员工编号、姓名、工种、工资、部门编号、部门名称)
-- 部门表和员工表: 一个部门下有多个员工 一个员工只能属于一个部门 部门:员工:1:n-- select ...... from 表名 表别名 [inner] join 表名 表别名 on 连接条件 ...... 内连接 返回的数据必须满足on后面的连接条件
select e.*,d.dname from emp e
join dept d
on e.deptno = d.deptno
order by e.empno-- 我要查询所有员工 即使没有部门编号也要把数据显示出来
-- 外连接 左[外]连接 右[外]连接 全[外]连接
-- select ...... from 表名 表别名 left/right/full [outer] join 表名 表别名 on 连接条件 ......
-- 外连接结果 主表 left join 前面表为主表 副表 left join后面的表为副表
-- 外连接结果:内连接结果+主表中不满足on条件的数据显示出来, 查询的字段 只要不是主表的字段都显示null值。-- 左连接
select e.*,d.dname from emp e
left join dept d
on e.deptno = d.deptno
order by e.empno-- 右连接 主表 right join后面的表为表表 副表 right join 前面表为副表
-- 外连接结果:内连接结果+主表中不满足on条件的数据显示出来, 查询的字段 只要不是主表的字段都显示null值。
select e.*,d.dname from emp e
right join dept d
on e.deptno = d.deptno
order by e.empno-- 全连接 full outer join mysql不支持该语法
-- 外连接结果:内连接结果+两种表中不满足on条件的数据显示出来, 查询的字段 只要不是主表的字段都显示null值。
-- UNION 查询结果的并集 去重复合并数据
-- UNION all 不去重复合并数据
select * from (select e.*,d.dname from emp e
left join dept d
on e.deptno = d.deptno
UNION all
select e.*,d.dname from emp e
right join dept d
on e.deptno = d.deptno) tab
order by tab.salselect e.*,d.dname from emp e
full outer join dept d
on e.deptno = d.deptno-- 查询所有员工,并显示员工工资的等级
SELECT e.*,sg.GRADE from emp e
join salgrade sg
ON e.sal>=sg.LOSAL and sg.hisal>e.sal
ORDER BY sg.GRADE-- 返回工资处于第四级别的员工的姓名。-- 方法一 子查询
SELECT tab.* FROM (SELECT e.*,sg.GRADE from emp e
join salgrade sg
ON e.sal>=sg.LOSAL and sg.hisal>e.sal) tab
WHERE tab.grade=4-- 方法二 推荐
SELECT e.*,sg.GRADE from emp e
join salgrade sg
ON e.sal>=sg.LOSAL and sg.hisal>e.sal AND sg.grade=4-- 返回工资为二等级的职员名字、部门所在地、和二等级的最低工资和最高工资
SELECT e.ename,sg.grade,d.loc,MAX(sal),MIN(sal) from emp e
-- 返回工资为二等级的职员名字
JOIN salgrade sg
ON e.sal>=sg.LOSAL and sg.hisal>e.sal AND sg.grade=2
-- 返回部门所在地
left JOIN dept d
on e.deptno=d.deptno
-- 二等级的最低工资和最高工资
GROUP BY sg.grade-- 工资等级多于smith的员工信息。
SELECT e.*,sg.grade FROM emp e
JOIN salgrade sg
ON e.sal>=sg.losal and sg.hisal >= e.sal and sg.grade>(
SELECT sg.grade FROM emp e
JOIN salgrade sg
ON e.sal>=sg.losal and sg.hisal >= e.sal
WHERE e.ename ='SMITH'
)
ORDER BY sg.grade
MySQL 员工信息查询相关推荐
- 基于Java+Swing+Mysql员工信息管理系统
基于Java+Swing+Mysql员工信息管理系统 一.系统介绍 二.功能展示 1.主页 2.查询员工信息 3.删除员工信息 三.数据库 四.其他系统实现 五.获取源码 一.系统介绍 该系统实现了查 ...
- (面向对象)员工信息管理系统 1.当有新员工的时候将员工加入到管理系统 2.可以根据工号实现对该员工信息查询 3.可以现实查看所有员工信息 4.可以修改员工的薪水
1.测试类 package com.hzyc.homework; import java.util.Scanner;public class Test {public static void main ...
- python实战演练(六)员工信息查询系统
一 实现功能 (1).工信息表程序,实现增删改查操作: (2).可进行模糊查询,语法至少支持下面3种: select name,age from staff_table where ...
- clistctrl控件最后插入在后面_用图表控件做一个简单的员工信息查询系统
前几天在上课的时候有同学说在做人员的信息查询的时候,经常的要去做查找搜索很麻烦,能不能做一个简单的人员信息查询系统,只需要选择人员的编号就可以查询到这个员工的信息.其实要实现这个同学的需求在EXCEL ...
- 安卓 spinner下拉框 做模糊查询_用图表控件做一个简单的员工信息查询系统
前几天在上课的时候有同学说在做人员的信息查询的时候,经常的要去做查找搜索很麻烦,能不能做一个简单的人员信息查询系统,只需要选择人员的编号就可以查询到这个员工的信息.其实要实现这个同学的需求在EXCEL ...
- (四)MySQL员工部门查询
建表脚本 -- 部门表 CREATE TABLE dept(deptno INT PRIMARY KEY AUTO_INCREMENT COMMENT '部门编号', -- 部门编号dname VAR ...
- mysql员工信息表_MySQL版emp员工信息表
MySQL版emp员工信息表,可以用来练习MySQL或测试MySQL环境是否正常工作. create table emp ( empno numeric(4) not null, ename varc ...
- 药品信息管理系统mysql_基于PHP+MySQL药品信息查询系统(含论文)
本系统阐述了医药信息查询系统的开发过程,并对该系统的需求分析及系统需要实现的设计方法作了介绍.该系统的基本功能包括用户注册登录,查看医药资讯,医药查询和在线留言等信息. 本系统技术介绍:php,mys ...
- mysql药品信息表_PHP+MySQL药品信息查询系统(含论文)
本系统阐述了医药信息查询系统的开发过程,并对该系统的需求分析及系统需要实现的设计方法作了介绍.该系统的基本功能包括用户注册登录,查看医药资讯,医药查询和在线留言等信息. 本系统技术介绍:php,mys ...
最新文章
- 基于Spring Boot+Cloud构建微云架构
- Gridview Master/Detail JS
- 杭电 1711 Number Sequence 1686 2203
- centos7安装python3.7.4_阿里云centos7.4安装python3.7.0
- [云炬创业基础笔记] 第四章测试8
- 网络病毒源的排查(2005年3月22日维护记录)
- 【MySQL】性能优化之 straight_join
- windows设备坐标和逻辑坐标的转换
- WinCE驱动开发问题精华集锦
- 7-2 输出约数 (9 分)
- 误删除MySQL数据库表的ibd文件怎么办
- Lua中的聊天屏蔽敏感词汇
- 精选32个最新Python实战项目(附源码),拿走就用
- 怎么用数学绘图软件制作正方体展开动画?
- mysql安装出现change_mysql-5.msi安装出现change,repaire,or remove installation
- 微信字体调大后页面错乱问题
- linux点亮硬盘locat,Linux中locate whereis which find grep5种查询命令总结
- 入职腾讯第九年,我辞职了
- 如何安装Tomcat 8.0
- 浏览此博客者开年必时来运转,否极泰来