mysql内连接指的是什么

发布时间:2021-07-21 15:03:14 作者:小新
来源:亿速云 阅读:263

这篇文章主要介绍了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.grade
FROM t_emp e JOIN t_dept d ON e.deptno=d.deptno
JOIN t_salgrade s ON e.sal BETWEEN s.losal and s.hisal;
 
# 相同表的内连接一
# 查询Scott相同部门的员工都有谁
SELECT e2.ename
FROM t_emp e1 JOIN t_emp e2 ON e1.deptno=e2.deptno
WHERE e1.ename="SCOTT" AND e2.ename!="SCOTT";
 
# 相同表的内连接二
# 查询底薪超过公司平均底薪的员工信息
SELECT e.empno,e.ename,e.deptno,e.job
FROM t_emp e JOIN
(SELECT avg(sal) as avgs FROM t_emp) t
ON 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.deptno
WHERE d.dname="RESEARCH";
 
SELECT FLOOR(29.9) # 29
SELECT 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 s
ON (e.sal+IFNULL(e.comm,0)) BETWEEN s.losal AND s.hisal
GROUP BY e.job;
 
 
# 查询每个底薪超过部门平均底薪的员工信息
SELECT e.empno,e.ename,e.sal
FROM t_emp e JOIN
(SELECT deptno,AVG(sal) as depsal FROM t_emp GROUP BY deptno) t
ON e.deptno=t.deptno
AND e.sal>depsal;

感谢你能够认真阅读完这篇文章,希望小编分享的“mysql内连接指的是什么”这篇文章对大家有帮助,同时也希望大家多多支持亿速云,关注亿速云行业资讯频道,更多相关知识等着你来学习!

推荐阅读:
  1. mysql内连接如何实现
  2. mysql内连接和外连接有什么区别

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

mysql

上一篇:Java中Mybatis的面试题有哪些

下一篇:javascript怎么设置全局变量

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》