2023_10_09_MYSQL_DAY_01_课后题

发布时间 2023-10-09 18:06:38作者: Kbaor

2023_10_09_MYSQL_DAY_01_课后题

#第三章
#1. 查询每名员工的员工姓名,入职时间。
SELECT ename, hiredate
FROM emp;
#2. 查询部门表中部门名称及部门所在地。
SELECT dname, loc
FROM dept;
#3. 查询所有员工的员工姓名,基本工资,试用期工资(基本工资的80%)显示的列名为员工姓名,基本工资,试用期工资。
SELECT ename 员工姓名, comm 基本工资, comm*0.8 试用期工资
FROM emp;
#4. 查询所有员工的名字和领导编号,看看有哪些员工没有领导?
SELECT ename, mgr
FROM emp
WHERE mgr IS NULL;
#5. 查询员工表中每种职位对应的薪资是多少(不要重复的数据)?
SELECT DISTINCT job, sal
FROM emp;
#第四章
#1. 查询20号部门的部门名称和部门所在地。
SELECT dname, loc
FROM dept
WHERE deptno = 20;
#2. 使用两种写法查询员工工资在1500到2500(包括1500和2500)之间的员工姓名和员工工资。
#方法一
SELECT ename, sal
FROM emp
WHERE  sal BETWEEN 1500 AND 2500 ;
#方法二
SELECT ename, sal
FROM emp
WHERE  sal >=1500 AND sal <=2500 ;
#3. 查询入职时间在1982-7-9之后,并且不从事SALESMAN工作的员工姓名、入职时间、职位。
#方法一
SELECT ename, hiredate, job
FROM emp
WHERE  hiredate >="1982-7-9"
AND job <>"SALESMAN" ;
#方法二
SELECT ename, hiredate, job
FROM emp
WHERE  hiredate >="1982-7-9"
AND NOT (job ="SALESMAN" );
#4. 查询员工姓名的第三个字母是A的员工姓名。
SELECT ename
FROM emp
WHERE ename LIKE "__A%";
#5. 查询10号和20号部门以外部门的员工姓名、部门编号。
#方法一
SELECT ename,deptno
FROM emp
WHERE deptno <>10 AND deptno <>20;
#方法一
SELECT ename,deptno
FROM emp
WHERE deptno NOT IN (10)AND deptno NOT IN (20);
#6. 查询没有上级的员工(经理号为空)的员工姓名。
SELECT ename
FROM emp
WHERE mgr IS NULL;
#7. 查询工资大于等于4500并且部门为10和20的员工的姓名、工资、部门编号。
SELECT ename,sal,deptno
FROM emp
WHERE mgr IS NULL;
#8. 查询10号部门和20号部门工资在2500以上或者工资在1500以下的员工名字,员工工资和部门编号。
SELECT ename,sal,deptno
FROM emp
WHERE deptno =10 OR deptno = 20
AND (sal >2500 OR sal <1500 );