一 编写sql语句

  1. 查询emp表中记录数:
SELECT COUNT(*) FROM emp;
  1. 查询emp表中月薪大于2500的人数:
SELECT COUNT(*) FROM emp WHERE sal > 2500;
  1. 查询有奖金的人数,以及有领导的人数:
SELECT COUNT(comm), COUNT(mgr) FROM emp WHERE comm IS NOT NULL AND mgr IS NOT NULL;

二 编写sql语句

  1. 查询所有雇员月薪和:
SELECT SUM(sal) FROM emp;
  1. 查询所有雇员月薪和,以及所有雇员奖金和:
SELECT SUM(sal), SUM(comm) FROM emp;
  1. 查询所有雇员月薪+奖金和:
SELECT SUM(sal+comm) FROM emp;
  1. 统计所有员工平均工资:
SELECT AVG(sal) FROM emp;
  1. 查询最高工资和最低工资:
SELECT MAX(sal), MIN(sal) FROM emp;

三 编写sql语句

  1. 查询出部门编号为30的所有员工:
SELECT * FROM emp WHERE deptno = 30;
  1. 所有销售员的姓名、编号和部门编号:
SELECT empno, ename, deptno FROM emp WHERE job = 'SALESMAN';
  1. 找出奖金高于工资的员工:
SELECT * FROM emp WHERE comm > sal;
  1. 找出奖金高于工资60%的员工:
SELECT * FROM emp WHERE comm > sal*0.6;
  1. 找出部门编号为10中所有经理,和部门编号为20中所有销售员的详细资料:
SELECT * FROM emp WHERE (deptno = 10 AND job = 'MANAGER') OR (deptno = 20 AND job = 'SALESMAN');
  1. 找出部门编号为10中所有经理,部门编号为20中所有销售员,还有即不是经理又不是销售员但其工资大或等于2000的所有员工详细资料:
SELECT * FROM emp WHERE (deptno = 10 AND job = 'MANAGER') OR (deptno = 20 AND job = 'SALESMAN') OR (job NOT IN ('MANAGER', 'SALESMAN') AND sal >= 2000);
  1. 无奖金或奖金低于1000的员工:
SELECT * FROM emp WHERE comm IS NULL OR comm < 1000;
  1. 查询名字由三个字组成的员工:
SELECT * FROM emp WHERE LENGTH(ename) = 3;

10.查询2000年入职的员工:

SELECT * FROM emp WHERE YEAR(hiredate) = 2000;
  1. 查询所有员工详细信息,用编号升序排序:
SELECT * FROM emp ORDER BY empno ASC;
  1. 查询所有员工详细信息,用工资降序排序,如果工资相同使用入职日期升序排序:
SELECT * FROM emp ORDER BY sal DESC, hiredate ASC;
  1. 查询每个部门的平均工资:
SELECT deptno, AVG(sal) FROM emp GROUP BY deptno;
  1. 查询每个部门的雇员数量:
SELECT deptno, COUNT(*) FROM emp GROUP BY deptno;
  1. 查询每种工作的最高工资、最低工资、人数:
SELECT job, MAX(sal), MIN(sal), COUNT(*) FROM emp GROUP BY job;

原文地址: https://www.cveoy.top/t/topic/orDQ 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录