数据库中,函数分为标量函数和聚合函数。
1、标量函数
概念:对表的计算,求出来是一个单一的值。
如下:
UCASE() - 将某个字段转换为大写 |
---|
LCASE() - 将某个字段转换为小写 |
MID() - 从某个文本字段提取字符 |
LENGTH() - 返回某个文本字段的长度 |
ROUND() - 对某个数值字段进行指定小数位数的四舍五入 |
NOW() - 返回当前的系统日期和时间 |
FORMAT(number, decimal_places) 函数的作用是将数字格式化为带有千位分隔符和指定小数位数的字符串 |
1、UCASE()函数:将某个字段转换为大写
如下:将name字段的小写字母转换为大写
SELECT UCASE(`name`) FROM stu;
2、LCASE()函数:将某个字段转换为小写
例如:
SELECT LCASE(`name`) FROM stu;
3、LENGTH()函数:返回某个文本字段的长度
例如:
SELECT LENGTH(`name`) FROM stu;
4、ROUND()函数:对某个数值字段进行指定小数位数的四舍五入
例如:
SELECT ROUND(money) FROM stu;
-- 结果是5
SELECT ROUND(5.36632);
5、NOW()函数:返回当前的系统日期和时间
例如:
SELECT NOW() FROM stu;
6、FORMAT()函数:格式化某个字段的显示方式,函数的作用是将数字格式化为带有千位分隔符和指定小数位数的字符串
例如:
SELECT FORMAT(12345.6789, 2)
上述示例将返回格式化后的字符串 "12,345.68"
,其中数字被格式化为带有千位分隔符和两位小数的形式。
需要注意的是,FORMAT()
函数返回的是一个字符串,而不是一个数值类型
7,使用DATA_FORMAT()函数参照下表
案例:求年龄
SELECT id,name,DATE_FORMAT(NOW(),'%Y') - DATE_FORMAT(birthday,'%Y') 年龄 FROM stu;
在上述示例中,NOW() 函数返回当前日期/时间,DATE_FORMAT(NOW(), ‘%Y’) 将当前日期的年份部分提取出来。DATE_FORMAT(birthday, ‘%Y’) 将生日日期的年份部分提取出来。然后,通过计算这两个年份之间的差值,可以得到年龄差。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ubK6sNiJ-1690207780969)(E:\myapp\typora\笔记文件夹\数据库\imgs03\now和format格式.png)]
8、timestampdiff()函数:格式化某个字段的显示方式
例如:
SELECT TIMESTAMPDIFF(year,birthday,NOW()) FROM stu;
注意:year表示按照什么方式来求时间差,例子中按照年份
在上述示例中,birthday
是生日列的名称,stu
是表的名称。TIMESTAMPDIFF(year, birthday, NOW())
将计算从生日到当前日期的年份差.
2、聚合函数
概念:之前我们做的查询都是横向查询,它们都是根据条件一行一行的进行判断,而使用聚合函数查询
是纵向查询,它是对一列的值进行计算,然后返回一个结果值。聚合函数会忽略空值NULL。
如下:
AVG() - 返回平均值
COUNT() - 返回行数
MAX() - 返回最大值
MIN() - 返回最小值
SUM() - 返回总和
先创建一张employee表,然后添加数据
CREATE TABLE IF NOT EXISTS employee(
id int(11) auto_increment PRIMARY key,
name VARCHAR(22),
age int(4),
money int(20)
);
INSERT into employee VALUES(null,"aaa",20,3650);
INSERT into employee VALUES(null,"sss",30,4502);
INSERT into employee VALUES(null,"www",30,3650);
INSERT into employee VALUES(null,"fff",50,8885);
INSERT into employee VALUES(null,"bbbb",20,4445);
1、AVG()函数:返回平均值
例如:
SELECT AVG(money) 平均工资 FROM employee;
在上述示例中,money
是工资列的名称,employee
是表的名称。AVG(money)
将计算employee
表中money
列的平均值,并将其作为平均工资
的别名返回。
2、COUNT()函数:返回行数(统计个数)
例如
SELECT COUNT(*) 人数 FROM employee;
3、MAX()函数:返回最大值
例如:
SELECT MAX(age) 年龄 FROM employee;
4、MIN()函数:返回最小值
例如:
SELECT MIN(age) 年龄 FROM employee;
5、SUM()函数:返回总和
例如:
SELECT SUM(money) 总工资 FROM employee;