+--------+------------+ | ename | dname | +--------+------------+ | SMITH | OPERATIONS | | SMITH | SALES | | SMITH | RESEARCH | | SMITH | ACCOUNTING | | ALLEN | OPERATIONS | | ALLEN | SALES | | ALLEN | RESEARCH | | ALLEN | ACCOUNTING | | WARD | OPERATIONS | | WARD | SALES | | WARD | RESEARCH | | WARD | ACCOUNTING | | JONES | OPERATIONS | | JONES | SALES | | JONES | RESEARCH | | JONES | ACCOUNTING | | MARTIN | OPERATIONS | | MARTIN | SALES | | MARTIN | RESEARCH | | MARTIN | ACCOUNTING | | BLAKE | OPERATIONS | | BLAKE | SALES | | BLAKE | RESEARCH | | BLAKE | ACCOUNTING | | CLARK | OPERATIONS | | CLARK | SALES | | CLARK | RESEARCH | | CLARK | ACCOUNTING | | SCOTT | OPERATIONS | | SCOTT | SALES | | SCOTT | RESEARCH | | SCOTT | ACCOUNTING | | KING | OPERATIONS | | KING | SALES | | KING | RESEARCH | | KING | ACCOUNTING | | TURNER | OPERATIONS | | TURNER | SALES | | TURNER | RESEARCH | | TURNER | ACCOUNTING | | ADAMS | OPERATIONS | | ADAMS | SALES | | ADAMS | RESEARCH | | ADAMS | ACCOUNTING | | JAMES | OPERATIONS | | JAMES | SALES | | JAMES | RESEARCH | | JAMES | ACCOUNTING | | FORD | OPERATIONS | | FORD | SALES | | FORD | RESEARCH | | FORD | ACCOUNTING | | MILLER | OPERATIONS | | MILLER | SALES | | MILLER | RESEARCH | | MILLER | ACCOUNTING | +--------+------------+ 56 rows in set (0.00 sec)
mysql> select e.ename, d.dname from emp e, dept d where e.deptno = d.deptno;
这是SQL92…
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
+--------+------------+ | ename | dname | +--------+------------+ | SMITH | RESEARCH | | ALLEN | SALES | | WARD | SALES | | JONES | RESEARCH | | MARTIN | SALES | | BLAKE | SALES | | CLARK | ACCOUNTING | | SCOTT | RESEARCH | | KING | ACCOUNTING | | TURNER | SALES | | ADAMS | RESEARCH | | JAMES | SALES | | FORD | RESEARCH | | MILLER | ACCOUNTING | +--------+------------+ 14 rows in set (0.00 sec)
mysql> select e.ename, d.dname from emp e inner join dept d on e.deptno = d.deptno;
+--------+------------+ | ename | dname | +--------+------------+ | SMITH | RESEARCH | | ALLEN | SALES | | WARD | SALES | | JONES | RESEARCH | | MARTIN | SALES | | BLAKE | SALES | | CLARK | ACCOUNTING | | SCOTT | RESEARCH | | KING | ACCOUNTING | | TURNER | SALES | | ADAMS | RESEARCH | | JAMES | SALES | | FORD | RESEARCH | | MILLER | ACCOUNTING | +--------+------------+ 14 rows in set (0.00 sec)
关于表的别名
mysql> select e.ename, d.dname from emp e, dept d;
+--------+------------+ | ename | dname | +--------+------------+ | SMITH | RESEARCH | | ALLEN | SALES | | WARD | SALES | | JONES | RESEARCH | | MARTIN | SALES | | BLAKE | SALES | | CLARK | ACCOUNTING | | SCOTT | RESEARCH | | KING | ACCOUNTING | | TURNER | SALES | | ADAMS | RESEARCH | | JAMES | SALES | | FORD | RESEARCH | | MILLER | ACCOUNTING | +--------+------------+ 14 rows in set (0.00 sec)
mysql>select e.ename, e.sal, s.grade ->from emp e join salgrade s ->on e.sal between s.losal and s.hisal; +--------+---------+-------+ | ename | sal | grade | +--------+---------+-------+ | SMITH |800.00|1| | ALLEN |1600.00|3| | WARD |1250.00|2| | JONES |2975.00|4| | MARTIN |1250.00|2| | BLAKE |2850.00|4| | CLARK |2450.00|4| | SCOTT |3000.00|4| | KING |5000.00|5| | TURNER |1500.00|3| | ADAMS |1100.00|1| | JAMES |950.00|1| | FORD |3000.00|4| | MILLER |1300.00|2| +--------+---------+-------+ 14rowsinset (0.00 sec)
mysql>select a.ename as'员工', b.ename as'领导' ->from emp a join emp b ->on a.mgr = b.empno; +--------+-------+ | 员工 | 领导 | +--------+-------+ | SMITH | FORD | | ALLEN | BLAKE | | WARD | BLAKE | | JONES | KING | | MARTIN | BLAKE | | BLAKE | KING | | CLARK | KING | | SCOTT | JONES | | TURNER | BLAKE | | ADAMS | SCOTT | | JAMES | BLAKE | | FORD | JONES | | MILLER | CLARK | +--------+-------+ 13rowsinset (0.00 sec)
mysql>select a.ename '员工', b.ename '领导' ->from emp a leftouterjoin emp b ->on a.mgr = b.empno; +--------+-------+ | 员工 | 领导 | +--------+-------+ | SMITH | FORD | | ALLEN | BLAKE | | WARD | BLAKE | | JONES | KING | | MARTIN | BLAKE | | BLAKE | KING | | CLARK | KING | | SCOTT | JONES | | KING |NULL| | TURNER | BLAKE | | ADAMS | SCOTT | | JAMES | BLAKE | | FORD | JONES | | MILLER | CLARK | +--------+-------+ 14rowsinset (0.00 sec)
mysql>select a.ename '员工', b.ename '领导' ->from emp b rightjoin emp a ->on a.mgr = b.empno; +--------+-------+ | 员工 | 领导 | +--------+-------+ | SMITH | FORD | | ALLEN | BLAKE | | WARD | BLAKE | | JONES | KING | | MARTIN | BLAKE | | BLAKE | KING | | CLARK | KING | | SCOTT | JONES | | KING |NULL| | TURNER | BLAKE | | ADAMS | SCOTT | | JAMES | BLAKE | | FORD | JONES | | MILLER | CLARK | +--------+-------+ 14rowsinset (0.00 sec)
找出哪个部门没有员工
1 2 3 4 5 6 7 8 9 10
mysql>select d.* ->from emp e rightjoin dept d ->on e.deptno = d.deptno ->where e.empno isnull; +--------+------------+--------+ | DEPTNO | DNAME | LOC | +--------+------------+--------+ |40| OPERATIONS | BOSTON | +--------+------------+--------+ 1rowinset (0.00 sec)