与SQL语句不同,SQL中的函数在不同的DBMS中有很大的不同。比如:
取当前日期的函数
Access中使用NOW( );
DB2和PostgreSQL使用CURRENT_DATE;
MYSQL使用CURDATE( );
Oracle 使用SYSDATE;
SQL server使用GETDATE();
SQLLite使用DATE( );
这种情况就给可移植性带来了问题,但也有一个好处那就是我们可以利用这一点,在渗透的过程中通过测试这些函数来判断服务器所用的数据库是什么类型。
SQL中的函数分为几类:
1、文本处理函数
RTRIM()除去列表右侧的空格。
UPPER ()输出大写
LOWER()输出小写
…
2、日期和时间处理函数
这类函数的可移植性最差,几乎每种DBMS都不一样,需要用到时再查询。
3、数值处理函数
ABS()返回绝对值
COS()求余弦
。。。
4、汇总函数
AVG()求某列的平均值
COUNT()返回某列的行数
MAX()返回某列的最大值
MIN ()返回最小值
SUM()返回某列之和
USE mytest1
SELECT *
FROM Table_1 ;
USE mytest1
SELECT AVG (年龄 ) AS avg_years
FROM Table_1
WHERE 性别 = 'M';
可以通过这样使用