Mysql中的常用函数介绍


1、拼接字段


在MySQL的SELECT语句中,可使用Concat()函数来拼接两个列,在显示时作为一个新列显示。


示例:SELECT CONCAT(number,'(',name,')') FROM book


结果如下:


MySQL 拼接字段 mysql中拼接字段的函数_MySQL 拼接字段



Concat()拼接串,即把多个串连接起来形成一个较长的串。Concat()需要一个或多个指定的串,各个串之间用逗号分隔。拼接中可以加入字符串,例如CONCAT('There are ',number,'(',name,')')等。




2、去除空格


删除数据右侧多余的空格可以使用MySQL的RTrim()函数来完成。同时mysql还支持还支持LTrim()(去掉串左边的空格)以及Trim()(去掉串左右两边的空格)。例如:SELECT TRIM(NAME) FROM book


查询所有书籍名称,并且显示时忽略左右两侧的空格。




3、使用别名


别名( alias) 是一个字段或值的替换名。别名用AS关键字赋予。


使用示例:SELECT book_id AS id ,name FROM book ORDER BY id


查询结果如下:


MySQL 拼接字段 mysql中拼接字段的函数_MySQL_02



可以看到为book_id设了一个别名为id,后面ORDER BY id相当于ORDER BY book_id。 别名还有其他用途。常见的用途包括在实际的表列名包含不符合规定的字符(如空格)时重新命名它,在原来的名字含易混或容易误解时重命名它,等等。




4、文本处理函数


常用的文本处理函数如下:


MySQL 拼接字段 mysql中拼接字段的函数_时间处理_03


MySQL 拼接字段 mysql中拼接字段的函数_时间处理_04

需要注意的是SOUNDEX函数,它是一个将任何文本串转换为描述其语音表示的字母数字模式的算法。 SOUNDEX考虑了类似的发音字符和音节,使得能对串进行发音比较而不是字母比较。




5、日期和时间处理函数


常用的日期和时间处理函数如下:


MySQL 拼接字段 mysql中拼接字段的函数_数据库_05



MySQL 拼接字段 mysql中拼接字段的函数_MySQL_06

需要注意的是MySQL使用的日期格式。无论你什么时候指定一个日期,不管是插入或更新表值还是用WHERE子句进行过滤,日期必须为格式yyyy-mm-dd。因此, 2005年9月1日,给出为2005-09-01。

还有就是注意mysql比较日期的规则:假如存储的test_date值为2005-09-01 11:30:05,那么WHERE test_date = '2005-09-01'是匹配失败的。解决办法是指示MySQL仅将给出的日期与列中的日期部分进行比较,而不是将给出的日期与整个列值进行比较。为此,必须使用Date()函数。 Date(test_date)指示MySQL仅提取列的日期部分进行比较。当然,也存在一个Time()函数,在你只想要时间时应该使用它。Year()是一个从日期(或日期时间)中返回年份的函数。Month()从日期中返回月份。


如何定义一个日期范围:BETWEEN '2005-09-01' AND '2005-09-30'




6、数值处理函数


常用数值处理函数如下:


MySQL 拼接字段 mysql中拼接字段的函数_MySQL_07



7、聚集函数


常用聚集函数如下:


MySQL 拼接字段 mysql中拼接字段的函数_时间处理_08



AVG()函数:


AVG()通过对表中行数计数并计算特定列值之和,求得该列的平均值。 AVG()可用来返回所有列的平均值,也可以用来返回特定列或行的平均值。


示例:SELECT AVG(number) AS avg_num FROM book 


该语句查询出所有书籍数量的平均值。AVG()只能用来确定特定数值列的平均值,而且列名必须作为函数参数给出。为了获得多个列的平均值,必须使用多个AVG()函数。注意:AVG()函数忽略列值为NULL的行。


COUNT()函数:


COUNT()函数进行计数。可利用COUNT()确定表中行的数目或符合特定条件的行的数目。COUNT()函数有两种使用方式。


‰1)使用COUNT(*)对表中行的数目进行计数,不管表列中包含的是空值( NULL)还是非空值。


‰2)使用COUNT(column)对特定列中具有值的行进行计数,忽略NULL值。


示例:SELECT COUNT(*) AS book_num FROM book 


上述语句查询出所有书的数目。包括含有NULL的条目。


SELECT COUNT(name) AS book_num FROM book 


上述语句查询出所有书的数目。忽略那些name=NULL的条目。


MAX()函数和MIN()函数:


MAX()返回指定列中的最大值。 MAX()要求指定列名。虽然MAX()一般用来找出最大的数值或日期值,但MySQL允许将它用来返回任意列中的最大值,包括返回文本列中的最大值。在用于文本数据时,如果数据按相应的列排序,则MAX()返回最后一行。MAX()函数忽略列值为NULL的行。MIN()与MAX()函数类似。


SUM()函数:


SUM()用来返回指定列值的和(总计)。


示例:SELECT SUM(number) AS book_num FROM book 


上述语句查询出所有书的number列的总和。SUM()函数忽略列值为NULL的行。