mysql之数据处理函数与数据汇总函数
时间:2021-07-01 10:21:17
帮助过:2人阅读
1、函数
与其他大多数计算机语言一样, SQL支持利用函数来处理数据。函数一般是在数据上执行的,它给数据的转换和处理提供了方便。
注意:函数没有 SQL的可移植性强。能运行在多个系统上的代码称为可移植的( portable)。相对来说,多数SQL语句是可移植的,在SQL实现之间有差异时,这些差异通常不那么难处理。而函数的可移植性却不强。几乎每种主要的 DBMS的实现都支持其他实现不支持的函数,而且有时差异还很大。为了代码的可移植,许多 SQL程序员不赞成使用特殊实现的功能。虽然这样做很有好处,但不总是利于应用程序的性能。如果不使用这些函数,编写某些应用程序代码会很艰难。必须利用其他方法来实现 DBMS非常有效地完成的工作。
如果你决定使用函数,应该保证做好代码注释,以便以后你(或其他人)能确切地知道所编写 SQL代码的含义。
2、使用函数
大多数 SQL实现支持以下类型的函数。
(1)、用于处理文本串(如删除或填充值,转换值为大写或小写)的文本函数
(2)、用于在数值数据上进行算术操作(如返回绝对值,进行代数运算)的数值函数。
(3)、用于处理日期和时间值并从这些值中提取特定成分(例如,返回两个日期之差,检查日期有效性等)的日期和时间函数。
(4)、返回 DBMS正使用的特殊信息(如返回用户登录信息,检查版本细节)的系统函数。
3、文本处理函数
我们先来看一个例子吧,这里例子使用Upper( )函数:
mysql> select vend_name, Upper(vend_name) as upp_name
-> from vendors
-> order by vend_name;
输出:
+----------------+----------------+
| vend_name | upp_name |
+----------------+----------------+
| ACME | ACME |
| Anvils R Us | ANVILS R US |
| Furball Inc. | FURBALL INC. |
| Jet Set | JET SET |
| Jouets Et Ours | JOUETS ET OURS |
| LT Supplies | LT SUPPLIES |
+----------------+----------------+
正如所见, Upper()将文本转换为大写,因此本例子中每个供应商都列出两次,第一次为 vendors表中存储的值,第二次作为列 vend_name_upcase转换为大写。
表11-1列出了某些常用的文本处理函数。