内连接分为3种:
①等值连接:两张表有描述共同属性的列,常见形式为父表的主键和子表的外键相等。
②非等值连接:可以用BETWEEN AND这样的非等值运算符将两张表中的列写成一个表达式。
③自连接:同一张表的列之间有关系实际反映的是同一张表的行之间有关系,通过给表起别名将同一张表的列之间的关系转换成不同表的列之间的关系。
--内连接的等值连接
select t1.ename,t2.dname
from t1 join t2
on t1.c1=t2.c2;--连接条件
查找叫Allen的人所在的部门名称:
查找职位是manager的人的名字和部门名称:
--内连接的非等值连接
select e.ename,e.sal,s.grade,s.losal,s.hisal
from emp e join salgrade s
on e.sal between s.losal and s.hisal;
查找所有人的姓名,薪水,薪水等级和对应薪水等级的最低、最高薪水:
--内连接的自连接
--同一张表的列之间有关系实际反映的是同一张表的行之间有关系
--通过给表起别名将同一张表的列之间的关系转换成不同表的列之间的关系
列出员工的名字和他们的直接领导的名字。
内连接的核心:
任何一张表里的记录一定要在另一张表中找到匹配的记录,否则不能出现在结果集里。