2 mySQL(DQL数据查询:from join on)

大白话:目的就是关联多张表,等值方式,等值的主表方式,区间值方式,自连接方式

from join on ⭐️
where
group by
having
select distinct
order by
limit

from 表 join 表 on 连接条件:查询字段来自多个表

定义:多表关联查询

笛卡尔集错误: select 字段1,字段2 from 表1,表2
条件:没用连接条件关联字段
结果集:每个字段1的数据匹配所有的字段2的数据

连接 sql92标准 sql99标准
内连接 等值连接,非等值连接,自连接 等值连接,非等值连接,自连接
外连接 左外连接,右外连接,全外连接

等值连接:两张表合并后,显示【查询条件】相等的对象
非等值连接:两张表合并后,显示【查询条件】区间的对象
自连接:同一张表想象成两张不同的表,显示【查询条件】相等的对象
左外连接:两张表合并后,以左为主表,将主表全部值查出来,从表没有值显示null
右外连接:两张表合并后,以右为主表,将主表全部值查出来,从表没有值显示null
全外连接:两张表合并后,将两张表全部值查出来,没有值显示null

99sql:外连接就是等值的一种方式

#99sql:连接条件写在on,筛选条件写在where
⭐️内连接:
(2)表的前后顺序没有要求
(2inner 加不加都可以

⭕️等值连接:三表连接时,where不用写三个相等,写两个等于就行,n个表就是n-1个相等
select 字段1,字段2   
from1 inner join2  
on1.链接字段=2.链接字段  //(连接条件)
where                      //筛选条件

⭕️非等值连接:区间连接
表1:学生+学生成绩
表2: 成绩评级+成绩区间(小)+成绩区间(大)
求:表1中的学生成绩评级
select 字段1.学生,表2.评级   
from1 inner join2  
on2.成绩区间(小)b<1.学生成绩 <2.成绩区间(大)
where //筛选条件

⭕️自连接:同一张表想像成两张表
//员工表同样是领导表
select 员工  
from1 inner join1  
on1.员工名ID=1.领导名ID
where    //筛选条件

⭐️外连接:外连接就是等值连接的一种方式(等值+主表+null)
(1outer 加不加都可以

⭕️左外连接:左面为主表
select 查询列表
from 表名1 别名1  left outer join 表名2 别名2
on  连接条件
where 筛选条件

⭕️右外连接:右面为主表
select 查询列表
from 表名1 别名1 right outer join 表名2 别名2
on  连接条件
where 筛选条件

⭕️全外连接:oracle支持,mysql不支持,主表和从表所有内容都查出来, 匹配不上的用null代替
select 查询列表
from 表名1 别名1 full outer join 表名2 别名2
on  连接条件
where 筛选条件

92sql:不常用

#92sql:筛选条件和连接条件都写在where里,用and隔开
内连接:
(1)表的前后顺序没有要求
(2from之间相连用逗号(,)

等值连接:三表连接时,where不用写三个相等,写两个等于就行,n个表就是n-1个相等
select 字段1,字段2   
from1,表2  
where1.链接字段=2.链接字段  //(连接条件)
and                          //筛选条件

非等值连接:区间连接
表1:学生+学生成绩
表2: 成绩评级+成绩区间(小)+成绩区间(大)
求:表1中的学生成绩评级
select 字段1.学生,表2.评级   
from1,表2  
where2.成绩区间(小)b<1.学生成绩 <2.成绩区间(大)

自连接:同一张表想像成两张表
//员工表同样是领导表
select 员工  
from1,表1  
where1.员工名ID=1.领导名ID
and    筛选条件

本文地址:https://blog.csdn.net/lzyPM/article/details/107140591

(0)
上一篇 2022年3月21日
下一篇 2022年3月21日

相关推荐