08 使用函数处理数据

1.函数

SQL语句不同,SQL函数是不可移植的。

可移植(portable):所编写的代码可以在多个系统上运行。

每个DBMS都有特定的函数:

函数

语法(MySQL

提取字符串的组成部分

SUBSTRING()

数据类型转换

CONVERT()

提取当前日期

CURDATE()

使用函数时,应该保证做好代码注释,以便能确切地知道所编写的SQL代码的含义。

2.使用函数

大多数SQL实现支持以下类型函数:

用于处理文本字符串的文本函数;

用于在数值数据上进行算数操作的数值函数;

用于处理日起和时间值,并从这些值中提取特定成分的日期和时间函数;

返回DBMS正在使用的特殊信息的系统函数。

(1)文本处理函数

常用的文本处理函数

函数

说明

LEFT()(或使用子字符串函数)

返回字符串左边的字符

LENTH()(也使用DATALENGTH()LEN()

返回字符串的长度

LOWER()

将字符串转换为小写

LTRIM()

去掉字符串左边的空格

RIGHT()(或使用子字符串函数)

返回字符串右边的字符

RTRIM()

去掉字符串右边的空格

SOUNDEX()

返回字符串的SOUNDEX

UPPER()

将字符串转换为大写

1)UPPER()函数

输入:

SELECT vend_name, UPPER(vend_name) AS vend_name_upcase

FROM Vendors

ORDER BY vend_name;

输出:

2)SOUNDEX()

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

Customers表中有一个顾客Kids Place,其联系人为Michelle Green,但如果这是错误的,此联系名实际是是Michael Green,按正确的联系名搜索不会返回数据。

输入:

SELECT cust_name, cust_contact

FROM Customers

WHERE cust_contact = 'MICHAEL Green';

输出:

输入:

SELECT cust_name, cust_contact

FROM Customers

WHERE SOUNDEX(cust_contact) = SOUNDEX('MICHAEL Green');

输出:

(2)日期和时间处理函数

日期和时间采用相应的数据类型存储在表中,每种DBMS都有自己的特殊形式。但是它们很不一致,可移植性最差。

MySQL具有各种日期处理函数,但没有DATEPART(),可使用名为YEAR()的函数从日期中提取年份。

输入:

SELECT order_num

FROM Orders

WHERE YEAR(order_date) = 2012;

输出:

(3)数值处理函数

仅处理数值数据,一般主要用于代数、三角或几何运算。在主要的DBMS函数中,数值函数是最一致、最统一的函数。

常用数值处理函数:

函数

说明

ABS()

返回一个数的绝对值

COS()

返回一个角度的余弦

EXP()

返回一个数的指数值

PI()

返回圆周率

SIN()

返回一个角度的正弦

SQRT()

返回一个数的平方根

TAN()

返回一个角度的正切

原文地址:https://www.cnblogs.com/Sumomo0516/p/6131526.html