MYSQL查询员工信息练习 |
您所在的位置:网站首页 › 宿州市埇桥区银河二路 › MYSQL查询员工信息练习 |
01.查询每个雇员的编号、姓名、职位。 select empno,ename,job from emp; 02.查询出所有的职位,使用DISTINCT消除掉显示的重复行记录。 select DISTINCT job from emp; 03.计算每个雇员的编号、姓名、基本年薪。年薪=(工资+奖金comm)*12,(使用IFNULL函数判断NULL) select empno as '编号',ename as '姓名', (SAL + ifnull(comm,0))*12 AS '基本年薪' from emp; 04.每个雇员每个月公司会补贴饭食200元,交通补助300元,计算年薪。 select empno as '编号',ename as '姓名', (SAL + ifnull(comm,0)+300+200)*12 AS '基本年薪' from emp; 05.查询基本工资高于2000的全部雇员信息。 select * from emp e where e.SAL>2000; 06.查询出smith的信息。 select * from emp e where e.ENAME='SMITH'; 07.查询出所有不是CLERK的详细信息。 select * from emp e where e.JOB !='CLERK'; 08.查询出所有销售人员(SALESMAN)的基本信息,并且要求销售人员的工资高于1300。 select * from emp e where e.JOB ='SALESMAN' AND e.sal>1300; 09.查询出工资范围在1500~3000之间的全部雇员信息(包含1500和3000)。 select * from emp e where e.sal>=1500 and e.sal='salesman' or e.job='manager' and e.sal>1500; 11.要求查询出所有在1981年雇佣的雇员信息。 select * from emp e where e.HIREDATE between('1981-1-01') and('1981-12-31'); 12.查询所有领取奖金的雇员信息(comm不为空)。 select * from emp e where e.comm !=''; 13.查询所有领取奖金高于100的雇员信息。 select * from emp e where e.comm >100; 14.查询出雇员编号是7369、7566、9999的雇员信息。 select * from emp e where e.EMPNO=7369 or e.EMPNO=7566 or e.EMPNO=9999; 15.查询出所有雇员姓名是以A开头的全部雇员信息。 select * from emp e where e.ename like 'A%'; 16.查询出雇员姓名第二个字母是M的全部雇员信息。 select * from emp e where SUBSTR(e.ename,2,1)='m'; 17.查询出雇员姓名任意位置上包含字母A的全部雇员信息。 select * from emp e where e.ENAME like '%A%'; 18.查询出所有雇员的信息,要求按照工资排序。 select * from emp e order by e.sal asc; 19.要求查询所有雇员的信息,按照雇佣日期由先后排序。 select * from emp e order by e.HIREDATE asc; 20.查询全部雇员信息,按照工资由高到低排序,如果工资相同,则按照雇佣日期由先后排序。 SELECT * FROM emp ORDER BY sal DESC,HIREDATE ASC; 21.查询部门30中的所有员工。 SELECT * from emp where DEPTNO =30; 22.查询出所有办事员(CLERK)的姓名,编号和部门编号。 SELECT empno,ename,DEPTNO from emp where job ='clerk'; 23.查询出奖金高于薪金的员工。 SELECT * from emp e where e.comm >e.SAL 24.查询出奖金高于薪金的60%的员工。 SELECT * from emp e where e.comm > 0.6*e.SAL 25.查询出部门10中所有经理(MANAGER)和部门20中所有办事员(CLERK)的详细资料。联表查询 (SELECT * from emp e where e.job='manager' and e.DEPTNO=10 )union all(SELECT * from emp b where b.job='clerk' and b.DEPTNO=20) 26.查询出部门10中所有经理,部门20中所有办事员,既不是经理又不是办事员但其薪金大于或等于2000 的所有员工的信息。 (SELECT * from emp e where e.job!='manager' and e.DEPTNO=10 and e.SAL>=2000 and e.job != 'clerk' )union all (SELECT * from emp b where b.job!='clerk' and b.job!= 'manager'and b.DEPTNO=20 and b.sal>=2000) 27.查询出收取了奖金的员工从事的工作。 select job from emp e where e.COMM!='' 28.查询出不收取奖金或收取的奖金低于100的员工。 select * from emp e where e.COMM is null or e.comm3000 and a.EMPNO='7566')c LEFT JOIN dept d on c.DEPTNO=d.DEPTNO 36.查询出公司的最高和最低工资。 select MIN(sal),MAX(sal) from emp; SELECT (SELECT SAL FROM emp ORDER BY SAL LIMIT 1),(SELECT SAL FROM emp ORDER BY SAL DESC LIMIT 1) 37.查询出每个部门的人数、平均工资,只显示部门编号。 select count(a.empno),avg(sal),d.DEPTNO from emp a,(select deptno from dept)d where a.DEPTNO = d.deptno GROUP BY d.deptno 38.查询出每种职位的最高和最低工资。 select max(sal),MIN(sal),job from emp GROUP BY job 39.查询平均工资高于2000的职位信息,以及从事此职位的雇员人数、平均工资。 SELECT * from (select COUNT(EMPNO) a,AVG(sal) b,job c from emp GROUP BY job) d WHERE d.b>2000 40.查询员工编号大于其领导编号的每个员工的姓名、职位、领导名称。 SELECT a.empno as '员工工号',a.ENAME as '员工姓名',a.job as '职位',b.ENAME as '领导名称' from emp a,emp b where a.mgr=b.EMPNO and a.EMPNO>a.MGR 41查询出至少有一个员工的所有部门编号、名称,并统计出这些部门的平均工资、最低工资、最高工资。 SELECT e.`部门编号`,e.`部门名称`,e.`平均工资`,e.`最低工资`,e.`最高工资` FROM ( SELECT count(a.empno) AS '部门人数', d.DEPTNO AS '部门编号', d.DNAME AS '部门名称', avg(sal) AS '平均工资', MAX(sal) AS '最高工资', min(sal) AS '最低工资' FROM emp a, (SELECT deptno, DNAME FROM dept) d WHERE a.DEPTNO = d.deptno GROUP BY d.deptno ) e WHERE e.`部门人数` > 0 42./*查询出部门名称和这些部门的员工信息(数量、平均工资),同时列出那些没有员工的部门。*/ 43.查询工资比 smith更高的全部员工信息。 select a.* from emp a,(select sal from emp b where b.ENAME='SMITH' )c where a.SAL>c.sal 44.查询工资和职位和 smith相同的所有员工信息。 select a.* from emp a,(select sal ,job from emp b where b.ENAME='SMITH' )c where a.SAL=c.sal and a.job=c.job 45.查询各部门的部门编号,部门名词,部门地址,员工人数和平均工资。 select count(a.empno),avg(sal),d.* from emp a,(select * from dept)d where a.DEPTNO = d.deptno GROUP BY d.deptno 两表结构如下: DROP TABLE IF EXISTS `emp`; CREATE TABLE `emp` ( `EMPNO` bigint(20) NOT NULL AUTO_INCREMENT, `ENAME` varchar(20) DEFAULT NULL, `JOB` varchar(20) DEFAULT NULL, `MGR` bigint(20) DEFAULT NULL, `HIREDATE` date DEFAULT NULL, `SAL` double(7,2) DEFAULT NULL, `COMM` double(7,2) DEFAULT NULL, `DEPTNO` bigint(2) DEFAULT NULL, PRIMARY KEY (`EMPNO`) ) ENGINE=InnoDB AUTO_INCREMENT=7935 DEFAULT CHARSET=utf8;
DROP TABLE IF EXISTS `dept`; CREATE TABLE `dept` ( `DEPTNO` bigint(20) NOT NULL AUTO_INCREMENT, `DNAME` varchar(20) DEFAULT NULL, `LOC` varchar(20) DEFAULT NULL, PRIMARY KEY (`DEPTNO`) ) ENGINE=InnoDB AUTO_INCREMENT=41 DEFAULT CHARSET=utf8; |
今日新闻 |
点击排行 |
|
推荐新闻 |
图片新闻 |
|
专题文章 |
CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭 |