mysql_04

Posted 那些年了

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql_04相关的知识,希望对你有一定的参考价值。

五、连接查询:

1distinct去除重复记录

SELECT DISTINCT(job) FROM emp;


2、选出员工所在的部门名字(两张表连接)

SELECT ename,dname from emp e,dept d WHEREe.DEPTNO = d.DEPTNO;//SQL92的写法

SQL92的缺点:结构不清晰,表的连接条件和后期进一步筛选条件都放到了where后面。

SELECT ename,dname from emp e join dept don e.DEPTNO = d.DEPTNO;//SQL99的写法

SQL99的优点:表连接的条件是独立的,连接之后,如果还需进一步筛选,再往后继续加where


3、筛选在最低工资和最高工资之间的员工姓名和工资

SELECT      e.ename, e.SAL, s.GRADEFROM empeJOIN salgrade s ON e.SAL BETWEEN s.LOSALAND s.HISAL;


4、右外连接

SELECT e.ENAME,d.DNAME FROM emp e RIGHTJOIN dept d on e.DEPTNO = d.DEPTNO;

right:表示将join关键字后边的这张表看成主表,为了将这张(主)表的数据全部查询出来,捎带关联查询左边的表。

外连接的查询结果条数一定是>=内连接的查询结果条数。


5、查询每个员工是上级领导,要求显示所有员工的名字和领导名字

SELECT a.ENAMEAS '员工名', b.enameAS '领导名'FROM     empaLEFT JOIN emp b ON a.MGR = b.empno;


6、多张表的连接语法

SELECT *FROM aJOIN b ON a和b的连接条JOIN c ON a和c的连接条件Right JOIN d ON a和d的连接条件;

一条SQL语句中内连接和外连接可以同时存在。


7、找出每个员工的部门名称和工资等级,要求显示员工名、部门名、工资和工资等级。

SELECT e.ENAME, d.DNAME, e.SAL, s.GRADEFROM empeJOIN dept d ON e.DEPTNO = d.DEPTNOJOIN salgrade s ON e.SAL BETWEEN s.LOSALAND s.HISAL;

以上是关于mysql_04的主要内容,如果未能解决你的问题,请参考以下文章

部分代码片段

linux中怎么查看mysql数据库版本

这些 C++ 代码片段有啥作用?

[AndroidStudio]_[初级]_[配置自动完成的代码片段]

VSCode 配置 用户自定义代码片段 自定义自动代码补充

我正在片段中启动我的活动,但变量变为空?