合并思想. N个表 -->1个表
连接的定义
将2个或2个以上的表通过一定的条件拼接起来形成一个虚表的过程。连接是from子句的一部分.
从2个表的连接开始.
左表: 放置在你左手边的表. left_tab
右表: 放置在你右手边的表. right_tab
连接语法
三种基本类型:交叉连接,内连接与外连接
交叉连接
返回的就是一个笛卡尔积.
交叉连接语法
内连接
在交叉连接的基础上,仅返回满足连接条件的行.
连接条件
1.使用on关键字来指定.
2.on的用法与where类似.
3.on可以使用连接的所有表中的列值进行判断
内连接的语法
外连接
在内连接的基础上,返回一些额外的行.
左外连接(左连接)
在内连接的基础上,左表除了返回满足连接条件的行之外,剩下的所有不满足连接条件的行也要一并返回,右表中与之没有匹配的行的列值设置为null
右外连接(右连接)
在内连接的基础上,右表除了返回满足连接条件的行之外,剩下的所有不满足连接条件的行也要一并返回,左表中与之没有匹配的行的列值设置为null
外连接语法
语法:
表的别名
注意: 一旦给表设置了别名,则以后只能通过别名引用表中的列.别名会隐藏表名.
join嵌套
可以在一个join中嵌套另外一个join
一般来说,当连接的表的个数N>=3时需要使用嵌套join.
当连接的表的个数为N时,则至少需要N-1个连接条件.
语法:
join嵌套
与内连接中的join嵌套用法类似.
(1)查询表中全部信息:
select * from 表名
(2)查询表中指定列的信息:
select 列1,列2 from 表名
(3)去重:
select distinct 列... from 表名
(4)拼接结果:
select concat(列1,列2) from 表名
(5)设置别名(注意:关键字as可以省略)
select 列 as 别名 from 表名
select 列 别名 from 表名
(6)条件查询:
select 列... from 表名 where 条件
条件中比较运算符:(等于:= 大于:> 大于等于:>= 小于:< 小于等于:<= 不等于:!= 或 <>)
(7)where 列 比较运算符 值
注意:字符串、日期需使用单引号括起来
(8)逻辑运算符(并且:and或&& 或:or 非:not或!)
where 条件1 逻辑运算符 条件2
where not 条件
(9)范围查询:
where 列 between 条件1 and 条件2 //列在这个区间的值where 列 not between 条件1 and 条件2 //不在这个区间where !( 列 between 条件1 and 条件2 ) //同样表示不在这个区间
集合查询(判断列的值是否在指定的集合中):
where 列 in(值1,值2) //列中的数据是in后的值里面的where 列 not in(值1,值2) //不是in中指定值的数据
null值查询(注意:列中值为null不能使用=去查询):
where 列 is null //查询列中值为null的数据
资料来源 网页链接
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)