一、基本知识
1.union :UNION 操作符用于合并两个或多个 SELECT 语句的结果集并且可去重(union 选取两表中不同值,如果需要重复值则使用 union all)
UNION 内部的每个 SELECT 语句必须拥有相同数量的列。列也必须拥有相似的数据类型。同时,每个 SELECT 语句中的列的顺序必须相同。
where:where用于过滤(筛选满足条件的数据)
用法示例:
原始表
问题:查询area大于10或者gdp大于1的name和continent;
解题:or法:select name,continent from world where area>100 or gdp>1;
union法:select name,continent from world where area>100
union
select name,continent from world where gdp>1;
查询结果集:
or
union
union all
从以上可以看出 union 可自动去重,如果数据量大的话,建议使用union
2.当匹配值有NULL值时,需要添加匹配条件 is null 或者 is not null
3.使用连接时,where可以替换成on
4.
①select :case when '条件' then '符合条件的返回内容' else '不符合条件的返回内容' end ;
select 字段1,
case 字段3
when '条件' then '符合条件的返回内容'
when '条件' then '符合条件的返回内容'
else '不符合条件的返回内容'
end as 重新命名字段3的名字
from table
②update:
update table
set 字段1=case
when 条件1 then 值1
when 条件2 then 值2
else 值3
end
where ……
5.order by 默认 asc升序 ,可选择desc 降序
6.截取指定字符串的方法
①left(列名,长度【从左往右截取的长度】)
②right(列名,长度【从右往左截取的长度】)
③substring(列名,开始【从1开始】,截取长度【从开始往右截取】)
④substring_index(列名,‘分割字符’,'从第几个分割字符开始分割')
7.upper 大写 lower 小写
8.like 用于模糊查询 需要搭配 :
% 包含任意字符串
①like 'xx%' 搜索以字母 xx 开头的所有字符串
②like '%xx' 搜索以字母 xx结尾的所有字符串
③like '%xx%' 搜索在包含字母xx的所有字符串
_单个字符
like'_xx' 搜索以xx 结尾的三个字符
[ ] 指定范围
like '[AB]B[c-z]' 将搜索A/B B c-z 的所有字符
9.分组查询
group by 字段1,字段2 having count(*) >=3 ;
group by 字段1,字段2 having avg(*) >=3 ;