MySQL 函数语法整理

数据记录统计函数:
  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,嘻嘻

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值