一、AVG函数
定义和用法:
AVG 函数返回数值列的平均值。NULL 值不包括在计算中。
语法:
SELECT AVG(column_name) FROM table_name
注意:NULL值不参与运算
二、COUNT()函数
定义和用法:
返回匹配指定条件的行数
COUNT(column_name)语法:
SELECT COUNT(column_name) FROM table_name
COUNT(*)语法:
SELECT COUNT(*) FROM table_name
COUNT(DISTINCT column_name) 返回指定列的不同值的数目:
SELECT COUNT(DISTINCT column_name) FROM table_name
注意:COUNT(*)与COUNT(1)的区别?
如果你的数据表没有主键,那么COUNT(1)比COUNT(*)快
如果有主键的话,那主键(联合主键)作为COUNT的条件也比COUNT(*)要快
如果你的表只有一个字段的话那COUNT(*)就是最快的啦
COUNT(*) COUNT(1) 两者比较。主要还是要COUNT(1)所相对应的数据字段。
如果COUNT(1)是聚索引,id,那肯定是COUNT(1)快。但是差的很小的。
因为COUNT(*),自动会优化指定到那一个字段。所以没必要去COUNT(?),用COUNT(*),sql会帮你完成优化的
COUNT详解:
COUNT(*)将返回表格中所有存在的行的总数包括值为null的行,然而COUNT(列名)将返回表格中除去NULL以外的所有行的总数(有默认值的列也会被计入).
DISTINCT列名,得到的结果将是除去值为NULL和重复数据后的结果
三、FIRST()函数
定义和用法:
FIRST() 函数返回指定的字段中第一个记录的值。
注释:只有 MS Access 支持 FIRST() 函数。
语法:
SELECT FIRST(column_name) FROM table_name
注意:
MySql的使用方式:
SELECT column_name FROM table_name
ORDER BY column_name ASC
LIMIT 1;
sqlServer的使用方式
SELECT TOP 1 column_name FROM table_name
ORDER BY column_name ASC;
Oracle的使用方式:
SELECT column_name FROM table_name
ORDER BY column_name ASC
WHERE ROWNUM <=1;
四、LAST()函数
定义和用法:
LAST() 函数返回指定的列中最后一个记录的值。
注释:只有 MS Access 支持 LAST() 函数。
语法:
SELECT LAST(column_name) FROM table_name;
注意:
MySql的使用方式:
SELECT column_name FROM table_name
ORDER BY column_name DESC
LIMIT 1;
sqlServer的使用方式:
SELECT TOP 1 column_name FROM table_name
ORDER BY column_name DESC;
Oracle的使用方式:
SELECT column_name FROM table_name
ORDER BY column_name DESC
WHERE ROWNUM <=1;
五、MAX()函数
定义和用法:
MAX() 函数返回指定列的最大值。
语法:
SELECT MAX(column_name) FROM table_name;
注意:
对字符型数据的最大值,是按照首字母由A~Z的顺序排列,越往后,其值越大。当然,对于汉字则是按照其全拼拼音排列的,若首字符相同,则比较下一个字符,以此类推。
当然,对与日期时间类型的数据也可以求其最大/最小值,其大小排列就是日期时间的早晚,越早认为其值越小。
六、MIN()函数
定义和用法:
MIN() 函数返回指定列的最小值。
语法:
SELECT MIN(column_name) FROM table_name
注意:
同上!
七、SUM()函数
定义和用法:
SUM() 函数返回数值列的总数。
语法:
SELECT SUM(column_name) FROM table_name;
注意:
将本列中的所有数值相加的总和,如果没有数值,则为0
八、GROUP BY
定义和用法:
GROUP BY 语句用于结合聚合函数,根据一个或多个列对结果集进行分组。
语法:
SELECT column_name, aggregate_function(column_name) FROM table_name WHERE column_name operator value GROUP BY column_name;
注意:
经常和sum()一起使用。
九、HAVING
定义和用法:
在 SQL 中增加 HAVING 子句原因是,WHERE 关键字无法与聚合函数一起使用。HAVING 子句可以让我们筛选分组后的各组数据。
语法:
SELECT column_name, aggregate_function(column_name) FROM table_name WHERE column_name operator value GROUP BY column_name HAVING aggregate_function(column_name) operator value;
注意:
用having就一定要和group by连用。
用group by不一有having (它只是一个筛选条件用的)。
十、UCASE()函数
定义和用法:
UCASE() 函数把字段的值转换为大写。
语法:
SELECT UCASE(column_name) FROM table_name;
注意:
sqlServer中用法:
SELECT UPPER(column_name) FROM table_name;
十一、LCASE()函数
定义和用法:
LCASE() 函数把字段的值转换为小写。
语法:
SELECT LCASE(column_name) FROM table_name;
注意:
sqlServer中用法:
SELECT LOWER(column_name) FROM table_name;
十二、MID()函数
定义和用法:
MID() 函数用于从文本字段中提取字符。
语法:
SELECT MID(column_name,start[,length]) FROM table_name;
注意:
Oracle数据库中没有此类函数,但是有一个subStr("列名",开始字符位置(起始值是 1),长度)功能相似
select substr(("列名",a,b) from <table_name>;
开始字符位置(起始值是 1)
十三、LEN()函数
定义和用法:
LEN() 函数返回文本字段中值的长度。
语法:
SELECT LEN(column_name) FROM table_name;
注意:
MySql中的为LENGTH():
SELECT LENGTH(column_name) FROM table_name;
十四、ROUND()函数
定义和用法:
ROUND() 函数用于把数值字段舍入为指定的小数位数。
语法:
SELECT ROUND(column_name,decimals) FROM table_name;
column_name | 必需。要舍入的字段。 |
decimals | 必需。规定要返回的小数位数。 |
注意:
十五、NOW()函数
定义和用法:
NOW() 函数返回当前系统的日期和时间
语法:
SELECT NOW() FROM table_name;
注意:
十六、FORMAT()函数
定义和用法:
FORMAT() 函数用于对字段的显示进行格式化。
语法:
SELECT FORMAT(column_name,format) FROM table_name;
column_name | 必需。要格式化的字段。 |
format | 必需。规定格式。 |
注意:
相关格式参照:http://www.w3school.com.cn/sql/func_date_format.asp
注:初学者,写的不好请见谅,如有相关问题记得私信我