千家信息网

mysql内连接实例分析

发表于:2024-09-21 作者:千家信息网编辑
千家信息网最后更新 2024年09月21日,这篇文章主要介绍了mysql内连接实例分析的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇mysql内连接实例分析文章都会有所收获,下面我们一起来看看吧。说明1、内部连接类
千家信息网最后更新 2024年09月21日mysql内连接实例分析

这篇文章主要介绍了mysql内连接实例分析的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇mysql内连接实例分析文章都会有所收获,下面我们一起来看看吧。

说明

1、内部连接类似于自然连接,但内部连接不要求比较两个表的同名属性列,可以用on或using指定两个表比较的字段。

(比较的字段不要求同名)。

2、内部连接的条件可以不写,此时查询的是笛卡尔积。

实例

# 表的内连接,内连接是结果集中只保留符合连接条件的记录-- 方法一SELECT e.empno,e.ename,d.dname-- 连接目标FROM t_emp e JOIN t_dept d-- 连接条件ON e.deptno=d.deptno; -- 方法二SELECT e.empno,e.ename,d.dname-- 连接目标FROM t_emp e,t_dept d-- 连接条件WHERE e.deptno=d.deptno; -- 内连练习一# 不同表的内连接# 查询每个员工的工号,姓名,部门名称,底薪,职位,工资等级SELECT e.empno,e.ename,d.dname,e.sal,e.job,s.gradeFROM t_emp e JOIN t_dept d ON e.deptno=d.deptnoJOIN t_salgrade s ON e.sal BETWEEN s.losal and s.hisal; # 相同表的内连接一# 查询Scott相同部门的员工都有谁SELECT e2.enameFROM t_emp e1 JOIN t_emp e2 ON e1.deptno=e2.deptnoWHERE e1.ename="SCOTT" AND e2.ename!="SCOTT"; # 相同表的内连接二# 查询底薪超过公司平均底薪的员工信息SELECT e.empno,e.ename,e.deptno,e.jobFROM t_emp e JOIN(SELECT avg(sal) as avgs FROM t_emp) tON e.sal>=t.avgs; # 查询RESEARCH部门的人数,最高底薪、最低底薪、平均底薪、平均工龄SELECT COUNT(*),MAX(e.sal),MIN(e.sal),AVG(e.sal),FLOOR(AVG((DATEDIFF(NOW(),e.hiredate)/365)))FROM t_emp e JOIN t_dept d ON e.deptno=d.deptnoWHERE d.dname="RESEARCH"; SELECT FLOOR(29.9) # 29SELECT CEIL(1.1) # 1.2 # 查询每种职业的最高工资、最低工资、平均工资、最高工资等级和最低工资等级SELECT e.job,MAX(e.sal+IFNULL(e.comm,0)),MIN(e.sal+IFNULL(e.comm,0)),AVG(e.sal+IFNULL(e.comm,0)),MAX(s.grade),MIN(s.grade)FROM t_emp e JOIN t_salgrade sON (e.sal+IFNULL(e.comm,0)) BETWEEN s.losal AND s.hisalGROUP BY e.job;  # 查询每个底薪超过部门平均底薪的员工信息SELECT e.empno,e.ename,e.salFROM t_emp e JOIN(SELECT deptno,AVG(sal) as depsal FROM t_emp GROUP BY deptno) tON e.deptno=t.deptnoAND e.sal>depsal;

关于"mysql内连接实例分析"这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对"mysql内连接实例分析"知识都有一定的了解,大家如果还想学习更多知识,欢迎关注行业资讯频道。

0