数据库_SQL函数

SQL 拥有很多可用于计数和计算的内建函数。
在 SQL 中,基本的函数类型和种类有若干种。函数的基本类型是:
Aggregate 函数
Scalar 函数

合计函数(Aggregate functions)

Aggregate 函数的操作面向一系列的值,并返回一个单一的值。
注释:如果在 SELECT 语句的项目列表中的众多其它表达式中使用 SELECT 语句,则这个 SELECT 必须使用 GROUP BY 语句!
MS Access 中的合计函数

函数 描述
AVG(column) 返回某列的平均值
COUNT(column) 返回某列的行数(不包括 NULL 值)
COUNT(*) 返回被选行数
FIRST(column) 返回在指定的域中第一个记录的值
LAST(column) 返回在指定的域中最后一个记录的值
MAX(column) 返回某列的最高值
MIN(column) 返回某列的最低值
SUM(column) 返回某列的总和
在 SQL Server 中的合计函数
函数 描述
AVG(column) 返回某列的平均值
COUNT(column) 返回某列的行数(不包括NULL值)
COUNT(*) 返回被选行数
COUNT(DISTINCT column) 返回相异结果的数目
FIRST(column) 返回在指定的域中第一个记录的值(SQLServer2000 不支持)
LAST(column) 返回在指定的域中最后一个记录的值(SQLServer2000 不支持)
MAX(column) 返回某列的最高值
MIN(column) 返回某列的最低值
SUM(column) 返回某列的总和
Scalar 函数

Scalar 函数的操作面向某个单一的值,并返回基于输入值的一个单一的值。
MS Access 中的 Scalar 函数

函数 描述
UCASE(c) 将某个域转换为大写
LCASE(c) 将某个域转换为小写
MID(c,start[,end]) 从某个文本域提取字符
LEN(c) 返回某个文本域的长度
INSTR(c,char) 返回在某个文本域中指定字符的数值位置
LEFT(c,number_of_char) 返回某个被请求的文本域的左侧部分
RIGHT(c,number_of_char) 返回某个被请求的文本域的右侧部分
ROUND(c,decimals) 对某个数值域进行指定小数位数的四舍五入
MOD(x,y) 返回除法操作的余数
NOW() 返回当前的系统日期
FORMAT(c,format) 改变某个域的显示方式
DATEDIFF(d,date1,date2) 用于执行日期计算
SQL AVG 函数

student

id name age
1 jack 17
2 lily 15
3 tom 12
4 lucy 10
//平均年龄
select avg(age) from student
//条件:大于平均年龄的name
select name from student where age>avg(age)
SQL COUNT() 函数

SQL COUNT(column_name) 语法
COUNT(column_name) 函数返回指定列的值的数目(NULL 不计入):

//计数
select count(*) from student
//计数 name不重复的
select count(distinct name) from student
FIRST() 函数

FIRST() 函数返回指定的字段中第一个记录的值。
提示:可使用 ORDER BY 语句对记录进行排序。

select first(name) from student order by age 
LAST() 函数

LAST() 函数返回指定的字段中最后一个记录的值。
提示:可使用 ORDER BY 语句对记录进行排序。

select first(name) from student order by age
MAX() 函数

MAX 函数返回一列中的最大值。NULL 值不包括在计算中。

select max(age) from student 
MIN() 函数

MIN 函数返回一列中的最小值。NULL 值不包括在计算中。

select min(age) from student 
SUM() 函数

SUM 函数返回数值列的总数(总额)。
grade

id subject grade stu_id
1 english 100 1
2 chinese 99 1
3 english 80 2
4 math 78 2
select sum(grade) from grade where stu_id=1
合计函数 (比如 SUM)

常常需要添加 GROUP BY 语句。

select sum(grade) from grade group by stu_id
HAVING 子句

在 SQL 中增加 HAVING 子句原因是,WHERE 关键字无法与合计函数一起使用。

select sum(grade) from grade group by stu_id having sum(grade)>150
UCASE() 函数

UCASE 函数把字段的值转换为大写。

select ucase(name)  as "大写name" from student
LCASE() 函数

LCASE 函数把字段的值转换为小写。

select lcase(name)  as "大写name" from student
MID() 函数

MID 函数用于从文本字段中提取字符。

//从name中抽取前3位
select mid(name,1,3) from student
ROUND() 函数

ROUND 函数用于把数值字段舍入为指定的小数位数。
product

id name unit unitprice
1 apple 1000g 10.99
2 orange 1000g 5.99
3 banana 1000g 6.89
select name,round(unitprice) from product
NOW() 函数

NOW 函数返回当前的日期和时间。
提示:如果您在使用 Sql Server 数据库,请使用 getdate() 函数来获得当前的日期时间。

select name,unitprice,now() as nowprice from product
FORMAT() 函数

FORMAT 函数用于对字段的显示进行格式化。

select name,unitprice,format(now(),'yyyy-MM-dd') as nowprice from product

猜你喜欢

转载自blog.csdn.net/weixin_40197494/article/details/80593219