1.函数
与大多数其他计算机语言一样,SQL也可以用函数来处理数据。
函数一般是在数据上执行的,为数据的转换和处理提供了方便。
DBMS的差异
函数 | 语法 |
提取字符串的组成部分 | DB2、Oracle、PostgreSQL和SQLite使用SUBSTR();MariaDB、MySQL和SQL Server使用SUBSTRING(); |
数据类型转换 | Oracle使用多个函数,每种类型的转换有一个函数;DB2和PostgreSQL使用CAST();MariaDB、MySQL和SQL Server使用CONVERT() |
取当前日期 | DB2和PostgreSQL使用CURRENT_DATE;MariaDB和MySQL使用CURDATE();SQL Server使用GETDATE();SQLite使用DATE() |
2.使用函数
- 大多数SQL实现支持以下类型的函数
- 用于处理文本字符串
- 用于在数值数据上进行算术操作
- 用于处理日期和时间值并从这些值中提取特定成分的日期和时间函数。
- 用于生成美观好懂的输出内容的格式化函数
- 返回DBMS正使用的特殊信息的系统函数
2.1文本处理函数
常用的文本处理函数
函数 | 说明 |
LEFT() | 返回字符串左边的字符 |
LENGTH() | 返回字符串的长度 |
LOWER() | 将字符串转换为小写 |
LTRIM() | 去掉字符串左边的空格 |
RIGHT() | 返回字符串右边的字符 |
RTRIM() | 去掉字符串右边的空格 |
SUBSTR()或SUBSTRING() | 提取字符串的组成部分 |
SOUNDEX() | 返回字符串的SOUNDEX值 |
UPPER() | 将字符串转换为大写 |
例子:
SQL
SELECT vend_name,UPPER(vend_name) AS vend_name_upcase
FROM vendors
ORDER BY vend_name
"SELECT `主流派`,UPPER(`主流派`)
AS 主流派的大写
FROM blockbusters ORDER BY ID" 提示:SQL函数不区分大小写
2.2日期和时间处理函数
日期和时间采用相应的数据类型存储在表中,每种DBMS都有自己的特殊形式。
日期和时间值以特殊的格式存储,以便能快速和有效地排序或过滤,并且节省物理存储空间。
应用程序一般不使用日期和时间的存储格式,因此日期和时间函数总是用来读取、统计和处理这些值。
由于这个原因,日期和时间函数在SQL中具有重要的作用。遗憾的是,它们很不一致,可移植性最差。
SQL
SELECT order_num
FROM Orders
WHERE DATEPART(yy,order_date) = 2020;
2.3数值处理函数
数值处理函数仅处理数值数据。
这些函数一般主要用于代数、三角或几何运算,因此不像字符串或日期-时间处理函数使用那么频繁。
常用数值处理函数
函数 | 说明 |
ABS() | 返回一个数的绝对值 |
COS() | 返回一个角度的余弦 |
EXP() | 返回一个数的指数值 |
PI() | 返回圆周率Π的值 |
SIN() | 返回一个角度的正弦 |
SQRT() | 返回一个数的平方根 |
TAN() | 返回一个角度的正切 |