

-- 多表查询-练习1
-- 1.查询员工的姓名、年龄、职位、部门信息。(隐式内连接)
select e.name,e.age,e.job,d.* from emp e ,dept d where e.dept_id = d.id;
-- 2.查询年龄小于30岁的员工姓名、年龄、职位、部门信息。(显式内连接)
select e.name,e.age,e.job,d.* from emp e inner join dept d on e.dept_id = d.id where e.age < 30;
-- 3.查询拥有员工的部门ID、部门名称。
select distinct d.id,d.name from emp e ,dept d where e.dept_id = d.id;
-- 4.查询所有年龄大于40岁的员工,及其归属的部门名称;如果员工没有分配部门,也需要展示出来。
select e.name,d.name from emp e left join dept d on d.id = e.dept_id where e.age>40;
-- 5.查询所有员工的工资等级。
-- 表 emp,salgrade
-- 连接条件:emp.salary >= salgrade.losal and emp.salary <= salgrade.hisal
select e.*,s.grade from emp e,salgrade s where e.salary >= s.losal and e.salary <= s.hisal;
select e.*,s.grade from emp e,salgrade s where e.salary between s.losal and s.hisal;
-- 6.查询"研发部"所有员工的信息及工资等级。
-- 表 emp,salgrade,dept
-- 连接条件 emp.salary between salgrade.losal and salgrade.hisal,emp.dept_id = dept.id
select e.*,s.grade from emp e, dept d ,salgrade s where e.dept_id = d.id and (e.salary between s.losal and s.hisal) and d.name = '研发部';
-- 7.查询"研发部"员工的平均工资.
select avg(salary) from emp e,dept d where e.dept_id = d.id and d.name = '研发部';
-- 8.查询工资比"灭绝"高的员工信息。
select salary from emp where name = '灭绝';
select * from emp where salary > (select salary from emp where name = '灭绝');
-- 9.查询比平均薪资高的员工信息。
select avg(salary) from emp;
select * from emp where salary > (select avg(salary) from emp);
-- 10.查询低于本部门平均工资的员工信息。
-- a.查询指定部门的平均薪资
select avg(e1.salary) from emp e1 where dept_id = 1;
select avg(e1.salary) from emp e1 where dept_id = 2;
-- b.查询低于本部门平均工资的员工信息
select * from emp e2 where e2.salary < (select avg(e1.salary) from emp e1 where e1.dept_id = e2.dept_id);
-- 11.查询所有的部门信息,并统计部门的员工人数。
-- a.查询指定部门的人数
select count(*) from emp where dept_id = 1;
-- b.查询所有的部门信息,并统计部门的员工人数。
select d.*,(select count(*) from emp e where e.dept_id = d.id) '人数' from dept d ;
-- 12.查询所有学生的选课情况,展示出学生名称,学号,课程名称
-- 表 student course student_course
-- 连接 student.id = student_course.studentid course.id = student_course.courseid
select s.name,s.no,c.name from student s, student_course sc,course c where s.id = sc.studentid and c.id = sc.courseid;


10-12题好好理解
