数据记录统计函数:
AVG(字段名) //得出一个表格某个字段的平均值
COUNT(*|字段名) //对数据行数的统计或对某一字段有值的数据行数统计
MAX(字段名) //取得一个表格中某字段的最大值
MIN(字段名) //取得一个表格中某字段的最小值
SUM(字段名) //取得一个表格中某字段的总和
- CASE WHEN THEN 函数
语法: CASE value WHEN [compare-value] THEN result [WHEN [compare-value] THEN result ……] [ELSE result ] END CASE WHEN [condition] THEN result [WHEN[condition] THEN result ……] [ELSE result] END ; - IF 函数用法
语法: IF(expr1,expr2,expr3) - IFNULL 函数
语法: IFNULL(expr1,expr2) - 函数 CONCAT(str1 ,str2 ,…)
函数使用说明:返回结果为连接参数产生的字符串。如有任何一个参数为 NULL ,则
返回值为 NULL 。或许有一个或多个参数。 - 函数 CONCAT_WS(separator ,str1 ,str2 ,…)
函数使用说明: CONCAT_WS() 代表 CONCAT With Separator ,是 CONCAT() 的
特殊形式。 第一个参数是其它参数的分隔符。分隔符的位置放在要连接的两个字符串之间。分隔符可以是一个字符串,也可以是其它参数。如果分隔符为 NULL ,则结果为 NULL 。函数会忽略任何分隔符参数后的 NULL 值。 - 函数 FORMAT(X ,D )
函数使用说明: 将 number X 设置为格式 ‘#,###,###.##’, 以四舍五入的方式保留到小数点后 D 位 , 而返回结果为一个字符串。 - 函数INSTR(str,substr)
函数使用说明:返回字符串 str 中子字符串的第一个出现位置。这和LOCATE() 的双参数形式相同,除非参数的顺序被颠倒 - 函数LEFT(str,len)
函数使用说明:返回从字符串str 开始的len 最左字符 - 函数 LOCATE(substr ,str ) , LOCATE(substr ,str ,pos )
函数使用说明:第一个语法返回字符串 str 中子字符串substr 的第一个出现位置。第二个语法返回字符串 str 中子字符串substr 的第一个出现位置, 起始位置在pos 。如若substr 不在str 中,则返回值为0 。 - 函数LOWER(str )
函数使用说明:返回字符串 str 以及所有根据最新的字符集映射表变为小写字母的字符 - 函数 SOUNDEX(str )
函数使用说明:从str 返回一个index字符串。 两个具有几乎同样探测的字符串应该具有同样的 index 字符串。 - 函数SPACE(N )
函数使用说明:返回一个由N 间隔符号组成的字符串 - 函数SUBSTRING(str ,pos ) , SUBSTRING(str FROM pos ) SUBSTRING(str ,pos ,len ) , SUBSTRING(str FROM pos FOR len )
函数使用说明:不带有len 参数的格式从字符串str 返回一个子字符串,起始于位置 pos 。 - 函数 GROUP_CONCAT(expr )
函数使用说明:该函数返回带有来自一个组的连接的非NULL 值的字符串结果。 - COALESCE()函数
COALESCE是一个函数, (expression_1, expression_2, …,expression_n)依次参考各参数表达式,遇到非null值即停止并返回该值。如果所有的表达式都是空值,最终将返回一个空值。使用COALESCE在于大部分包含空值的表达式最终将返回空值。特别是在做统计的时候,这个函数作为条件可以兼顾到一些特殊情况。
补:
- union和union all关键字都是将两个结果集合并为一个,但这两者从使用和效率上来说都有所不同
union在进行表连接后会筛选掉重复的记录,所以在表连接后会对所产生的结果集进行排序运算,删除重复的记录再返回结果。
如:
select * from test_union1
union
select * from test_union2
这个SQL在运行时先取出两个表的结果,再用排序空间进行排序删除重复的记录,最后返回结果集,如果表数据量大的话可能会导致用磁盘进行排序。
而union all只是简单的将两个结果合并后就返回。这样,如果返回的两个结果集中有重复的数据,那么返回的结果集就会包含重复的数据了。
从效率上说,union all要比union快很多,所以,如果可以确认合并的两个结果集中不包含重复的数据的话,那么就使用union all,如下:
select * from test_union1
union all
select * from test_union2
使用 union 组合查询的结果集有两个最基本的规则:
1、所有查询中的列数和列的顺序必须相同。
2、数据类型必须兼容
还有我们其实在写SQL语句的时候可以子查连表虚拟的临时表这样其实可以写出不一样的SQL,嘻嘻