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

avatar
作者
筋斗云
阅读量:9

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

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    筛选条件

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!