DQL——连接查询

本文详细介绍了SQL连接查询,包括SQL92标准下的等值连接、非等值连接和自连接,以及SQL99语法中的内连接、外连接和交叉连接。内容涵盖各种连接类型的使用场景、示例和注意事项,帮助读者理解多表查询的原理和实践。
摘要由CSDN通过智能技术生成

目录

一、sql92标准

1.等值连接

         2.非等值连接

3.自连接

二、sql99语法

一)内连接

二)外连接

三)交叉连接

三、sql92与sql99


 

含义:又称多表查询,当查询的字段来自于多个表是,就会用到连接查询
  
笛卡尔乘积现象:
表1 有m行,表2 有行,结果=m*n行
                            发生原因:没有有效的连接条件
                            如何避免:添加有效的连接条件

分类:
       按年代分类:
sql92标准:仅支持内连接
                            sql99标准(推荐):支持内连接+外连接(左外和右外)+交叉连接

       按功能分类:内连接:
                                         等值连接
                                         非等值连接
                                         自连接
                             外连接:
                                         左外连接
                                         右外连接
                                         全外连接
                             交叉连接

SELECT * FROM beauty;
SELECT * FROM boys;
SELECT NAME,boyName FROM boys,beauty
 WHERE beauty.boyfriend_id = boys.id;

一、sql92标准

1.等值连接

  1.  多表等值连接的结果为多表的交集部分
  2.   n表连接,至少需要n-1个连接条件
  3.   多表的顺序没有要求
  4.   一般需要为表起别名
  5.   可以搭配前面介绍的所有子句使用,如排序、分组、筛选

(1)

案例1:查询女神名和对应的男神名

SELECT NAME,boyName FROM boys,beauty
 WHERE beauty.boyfriend_id = boys.id;

案例2:查询员工名和对应的部门名

SELECT last_name,department_name FROM employees,departments
 WHERE employees.department_id = departments.department_id ;

(2) 为表起别名

  1. 提高语句的简洁度
  2. 区分多个重名的字段
  •   注意:如果为表起了别名,则查询的字段就不能使用原来的表名去限定

案例:查询员工名、工种号、工种名

SELECT e.last_name,e.job_id,j.job_title 
 FROM employees AS e,jobs AS j
  WHERE e.job_id =j.job_id;

(3) 两个表的顺序可以调换

案例:查询员工名、工种号、工种名

SELECT e.last_name,e.job_id,j.job_title 
 FROM jobs AS j ,
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值