MYSQL必知必会(四)

大多数SQL实现支持以下类型的函数

1.用于处理文本串(如删除或填充值,转换值为大写或小写)的文本函数。

2.用于在数值数据上进行算术操作(如返回绝对值,进行代数运算)的数值函数

3.用于处理日期和时间值并从这些值中提取特定成分的日期(如返回两个日期只差)和时间函数

拼接函数concat

concat函数可以多个列拼接成一个较长的列,各个串之间用逗号分隔

select concat(goods_name,'-',cat_id) from goods where goods_id >20

在这里插入图片描述

使用别名
上面的函数使用中,使用函授新计算的列名是没有名字的,它只是一个值。如果只是在SQL查询语句中查看一下结果,这样也可以。但是,一个未命名的列不能用于客户机应用中,因为客户机没有办法引用它。
所以为了解决这个问题,可以在sql中使用别名,别名用as关键字赋予。也可以省略as,之间在函数后输入列名

select concat(goods_name,'-',cat_id) as nameID 
from goods where goods_id >20

select concat(goods_name,'-',cat_id) nameID 
from goods where goods_id >20

在这里插入图片描述

文本处理函数

trim()函数: 去除列值的空格
Upper()函数: 将文本转换为大写
length()函数: 返将回文本串的长度
Lower()函数: 将文本转换为小写
substring()函数 返回子串

日期和时间处理函数

    日期和时间采用相应的数据类型和特殊的格式存储,以便能快速和有效地排序或过滤,并且节省物理存储空间。

data() : 返回日期时间的日期部分
date_format() :返回一个格式化的日期或时间串
now() : 返回一个日期的月份部分
Time() : 返回一个日期时间的时间部分
Year() : 返回一个日期的年份部分
month() : 返回一个日期的月份部分

注意:mysqld的日期格式为yyyy-mm-dd

数值处理函数

数值处理函数仅处理数值数据,

abs(): 返回一个数的绝对值
sqrt(): 返回一个数的平方根

聚集函数

聚集函数常用例子:

1.确定表中行数

2.获得表中行组的和

3.找出表列的最大值、最小值和平均值

avg(): 返回某列的平均值
count() :返回某列的行数
max() :返回某列的最大值
min() :返回某列的最小值
sum(): 返回某列值之和

avg()函数

avg()函数对表中行数计数并计算特定列值之和,求得该列的平均值,avg()可用来返回所有列的平均值,也可以用来返回特定列或行的平均值

select avg(shop_price) as avg_price from goods

注意:avg()忽略列值为NULL的行,同时只能确定特定数值列的平均值,且列名必须作为函数参数给出。

在这里插入图片描述

count()函数

count函数可以确定表中行的数目或符合特定条件的行的数目。

count()函数的两种使用方法

1.使用count(*)对表中行的数目进行计数,不管表中包含的是空值(NULL)还是飞空值。

2.使用count(column)对特定列中具有值得行进行计数,忽略NULL值

select count(*) from goods

select count(goods_name) from goods

在这里插入图片描述

max()函数与min()函数

max()返回指定列中的最大值,min()函数返回指定列中的最小值

select max(shop_price) from goods

select min(shop_price) from goods

在这里插入图片描述

sum()函数

sum()函数用来返回指定列值得和(总计)

select sum(shop_price) from goods

在这里插入图片描述

聚焦不同值(去重)

上面介绍的5个聚焦函数,都可以如下使用:

1.对所有的行执行计算,指定ALL参数或不给参数。

2.只包含不同的值,指定distinct参数。

例如下面的聚焦函数就会把相同的列值去掉,只会计算不同值得列

select avg(DISTINCT shop_price) as avg_price from goods

select count(DISTINCT goods_name) from goods

在这里插入图片描述

注意:当distinct应用到多个字段的时候,其应用的范围是其后面的所有字段,也就是这多个字段都相同时,才会被去重

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值