本文主要是介绍连接查询——sql92,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
文章目录
- 进阶6:连接查询
- 分类
- sql92标准
- 1、等值连接
- 2、非等值连接
- 3自连接
- 测试
进阶6:连接查询
含义:又称多表查询,当查询的字段来自于多个表时,就会用到连接查询
笛卡尔乘积现象:表1 有m行,表2有n行,结果=m*n行
发生原因:没有有效的连接条件
如何避免:添加有效的连接条件
分类
按年代分类:
- sql92标准:仅仅支持内连接(等值、非等值、自连接)
- sql99标准【推荐】:支持内连接+外连接(左外和右外)+交叉连接
按功能分类:
- 内连接:等值连接、非等值连接、自连接
- 外连接:左外连接、右外连接、全外连接
- 交叉连接
sql92标准
1、等值连接
特点:
①多表等值连接的结果为多表的交集部分
②n表连接,至少需要n-1个连接条件
③多表的顺序没有要求
④一般需要为表起别名
⑤可以搭配前面介绍的所有子句使用,比如排序、分组、筛选
案例1 :查询女神名和对应的男神名
SELECT NAME,boyName
FROMboys,beauty
WHERE beauty.`boyfriend_id` = boys.`id` ;
结果:
案例2:查询员工名和对应的部门名
SELECT last_name,department_name
FROMemployees,departments
WHERE employees.`department_id` = departments.`department_id` ;
结果:
(1)为表起别名
- 提高语句的简洁度
- 区分多个重名的字段
注意:如果为表起了别名,则查询的字段就不能使用原来的表名去限定
案例:查询员工名、工种号、工种名
SELECT last_name,e.job_id,job_title
FROMemployees AS e,jobs AS j
WHERE e.`job_id` = j.`job_id` ;
结果:
这篇关于连接查询——sql92的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!