lie代表列,table指代表
1.单表查询
desc table;
2.多表查询
多表查询示例:
select lie1,lie2,t1.lie3 -- 指明lie3属于t表内
from table1 t1,table2 t2 -- 将表重命名
where t1.lie3=t2.lie3;
多表查询的分类:
(1)等值连接与非等值连接
#等值连接
select lie1,lie2,t1.lie3 //指明lie3属于t表内
from table1 t1,table2 t2 //讲表重命名
where t1.lie3=t2.lie3;
#非等值连接
select t1.lie1,t2.lie2
from table1 t1,table2 t2
where t1.lie1 between 5000 and 10000; -- 查询区间在5000到10000的数据
(2)自连接与非自连接
select t1.lie1,t1.lie2,t2.lie1,t2.lie2
from table1 t1,table2 t2
where t1.lie3=t2,lie1
自连接顾名思义表自己连接自己的数据 。不是自连接的就是非自连接。
(3)内连接与外连接
内连接指的是两个集合的交集,左外连接指的是其中一个集合包括交集但另一个集合不包括交集,满外连接就是两个集合中的所有元素,以此类推。
#内连接与外连接的七种写法
#1 内连接
select lie1,lie2
from table1 t1 join table2 t2
on t1.lie3=t2.lie3
#2 左外连接
select lie1,lie2
from table1 t1 left join table2 t2
on t1.lie3=t2.lie3
#3 右外连接
select lie1,lie2
from table1 t1 right join table2 t2
on t1.lie3=t2.lie3
#4 左外连接去交集
select lie1,lie2
from table1 t1 left join table2 t2
on t1.lie3=t2.lie3
where t2.lie3=null;
#5 右外连接去交集
select lie1,lie2
from table1 t1 right join table2 t2
on t1.lie3=t2.lie3
where t1.lie3=null
#6 满外连接
select lie1,lie2
from table1 t1 left join table2 t2
on t1.lie3=t2.lie3
union all
select lie1,lie2
from table1 t1 right join table2 t2
on t1.lie3=t2.lie3
where t1.lie3=null
#7 去中心连接
select lie1,lie2
from table1 t1 left join table2 t2
on t1.lie3=t2.lie3
where t2.lie3=null
union all
select lie1,lie2
from table1 t1 right join table2 t2
on t1.lie3=t2.lie3
where t1.lie3=null