数据库所对应的函数
函数一般时在数据上执行的,为数据的转换和处理提供了方便。
下面列出三个常用的函数及其在各个DBMS中的语法:
函 数 | 语 法 |
提取字符串的组成部分 | Access使用MID();DB2,Oracle,PostgreSQL和SQLite使用SUBSTR();MySQL和SQL Server使用SUBSTRING() |
数据类型转换 | Access和Oeacle使用多个函数,每种类型的转换都有一个函数;DB2和PostgreSQL使用CAST();MariaDB.MySQL和SQL Server使用CONVERT() |
取当前的值 | Accsee使用Now();DB2和PostgreSQL使用CURRENT_DATE;MariaDB和MySQL使用CURDATE();Oracle使用SYSDATE;SQLServer使用GEDATE();SQLite使用DATE() |
文本处理函数
函 数 | 说 明 |
LEFT()(或使用子字符串函数) | 返回字符串左边的字符 |
LENGTH()(也使用DATALENGTH()或LEN()) | 返回字符串的长度 |
LOWER()(Access使用LCASE()) | 将字符串转换为小写 |
LTRIM() | 去掉字符串左边的空格 |
RIGHT()(或使用子字符串函数) | 返回字符串右边的字符 |
RTGIM() | 去掉字符串右边的空格 |
SOUNDEX() | 返回字符串的SOUNDEX值 |
UPPER()(Access使用UCASE()) | 将字符串转换为大写 |
日期和时间处理函数
在SQL Server 使用如下形式:
Select num from Table where DATEPART(yy,date) = 2012;
在Access中使用如下形式:
Select num from table where DATEPART('yyyy',date)=2012;
在PostgreSQL使用如下形式:
Select num from table where DATE_PART('year',date)=2012;
在Oracle使用如下形式:
Select num from Table WHERE to_number(to_char(date,'yyyy'))=2012;
to_char()函数时提取日期的成分,to_number()用来将提取出的成分转换为数值。还有一种写法为
Select num from Table where date between to_date('01-01-2012') and to_date(12-31-2012)。
在MySQL和MariaDB具有各种日期处理函数,但没有DATEPART()。
MySQL和MariaDB用户可使用名为YEAR()的函数从日期中提取年份。
Select num from Table where YEAR(date)=2012;
Select num from Table wherestrftime('%y',date)='2012';
DBMS提供的功能远不止简单的日期成分提取。大多数DBMS具有比较日期,执行基于日期的运算,选择日期格式等的函数。
数值处理函数
函 数 | 说 明 |
ABS() | 返回一个数的绝对值 |
COS() | 返回一个角度的余弦 |
EXP() | 返回一个数的指数值 |
PI() | 返回圆周率 |
SIN() | 返回一个角度的正弦 |
SQRT() | 返回一个数的平方根 |
TAN() | 返回一个角度的正切 |
聚集函数
满足一下条件 1. 确定表中行数(或者满足每个条件或包含特定值的行数);
2. 获取表中某些行的和;
3. 找出表列(或所有行或某些特定的行)的最大值,最小值,平均值。
函 数 | 说 明 |
AVG() | 返回某列的平均值 |
COUNT() | 返回某列的行数 |
MAX() | 返回每列的最大值 |
MIN() | 返回某列的最小值 |
SUM() | 返回某类值的和 |