目录
查看索引
-
MySQL连接分为内连接、外连接、自连接
内连接
-
INNER JOIN称为内连接
-
连接查询就是,要查询的数据分布在不同的表中,为了一次将不同表中的数据查询出来,我们需要使用连接查询,查询几张表中有关系的记录
-
语法及练习:
SELECT 别名1.*/列名,别名2*/列名 FROM 表1 别名1 INNER JOIN 表2 别名2 ON 连接条件(关联的条件) -- 查询EMP表中,员工姓名(ename),职位(job),工资(sal),以及dept表中,部门名称(dname),部门地址(loc) SELECT e.ename,e.job,e.sal,d.dname,d.loc FROM emp as e INNER JOIN dept as d ON e.deptno = d.deptno; -- 查询emp表中,员工姓名不包含字母K,员工的姓名ename,职位job,工资sal,以及dept表中全部列数据 SELECT e.ename,e.job,e.sal,d.* FROM emp e INNER JOIN dept d ON e.deptno = d.deptno AND NOT e.name LIKE '%K%'; -- 查询cou01表中,课程编号(cno),课程名称cname以及sco01表中,学员编号sno,课程分数score,要求课程分数在70-90之间 SELECT c.cno,c.cname,s.sno,s.score FROM cou01 c INNER JOIN sno01 s ON c.cno = S.cno AND s.score BETWEEN 70 AND 90; -- 查询cou01表中,课程编号(cno),课程名称cname以及sco01表中,学员编号sno,课程分数score,要求课程分数在70-90之间,根据课程分数降序排序 SELECT c.cno,c.cname,s.sno,s.score FROM cou01 c INNER JOIN sno01 s ON c.cno = s.cno AND s.score BETWEEN 70 AND 90 ORDER BY s.score DESC; -- 查询emp表中,员工姓名,职位,工资,以及salgrade表中,工资等级grade,最低工资losal,最高工资hisal SELECT e.ename 员工姓名,e.job 职位,e.sal 工资,s.grade 工资等级,s.losal 最低工资,s.hisal 最高工资 FROM EMP e INNER JOIN SALGRADE s ON e.sal BETWEEN s.LOSAL AND s.HISAL; -- 查询stu01表中全部的列,以及cou01表中全部的列以及sco01表中课程分数(score) SELECT t.*,c.*,s.score FROM sco01 s INNER JOIN cou01 c ON s.cno = c.cno INNER JOIN stu01 t ON s.sno = t.sno;
外连接