sql相关函数学习

一、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

 

注:初学者,写的不好请见谅,如有相关问题记得私信我

转载于:https://my.oschina.net/chenzhou/blog/2963030

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值