
select e.name , e.age , e.job , d.name from emp e , dept d where e.dept_id = d.id ;
// (2) 显式内连接
// select e.name , e.age , e.job , d.name from (select * from emp where age < 30) e join dept d on e.dept_id = e.id ;
select e.name , e.age , e.job , d.name from emp e inner join dept d on e.dept_id = d.id where age < 30 ;
select distinct d.id , d.name from emp e , dept d where e.dept_id = d.id ;
// (4) 左外连接
// select * from (select * from emp where age > 40) e left outer join ddept d on e.dept_id = d.id ;
select * from emp e left outer join ddept d on e.dept_id = d.id where age > 40 ;
表 : 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 ;
// (6) 查询"研发部"所有员工的信息及工资等级
// select e.* , s.grade from (select * from emp where dept_id = (select d.id from dept d where name = '研发部')) e , salgrade s where e.salary >= s.losal and e.salary <= s.hisal ;
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 = '研发部'
select avg(e.salary) from emp e , dept d where e.dept_id = d.id and d.name = '研发部' ;
select * from emp where salary > (select salary from emp where name = '灭绝') ;
select * from emp where salary > (select avg(salary) from emp) ;
select * from emp e1 where e1.salary < (select avg(e2.salary) from emp e2 where e2.dept_id = e1.dept_id) ;
select id , name , (select count(*) from emp where dept_id = id) '人数' from dept ;
select s.name , s.number , c.name from student s , student_course sc , course c where s.id = sc.studentid and sc.courseid = c.id ;