MySQL学习之(六)函数及关键字的使用

1 聚合函数的使用

一 求数据最大值Sum

示例:Select SUM(学时) from t_kecheng;

 

二 求数据平均值Avg

示例:SELECT AVG (学时) FROM t_kecheng;

 

三 查询数据条数Count

示例:SELECT COUNT(*) FROM `t_kecheng`;

 

四 查询数据最大值Max

示例 SELECT MAX(成绩) FROM `t_kecheng_chengji`;

 

五 查询数据最小值Min

示例:SELECT MIN(成绩) FROM `t_kecheng_chengji`;

 

2 取绝对值函数ABS(数值)

 

3 四舍五入函数ROUND(X)

返回参数X的四舍五入的一个整数。 

select ROUND(1.58); 

select ROUND(-1.58); 

 

round(x,d)  x指要处理的数,d是指保留几位小数

这里有个值得注意的地方是,d可以是负数,这时是指定小数点左边的d位整数位为0,同时小数位均为0;

【例】:

查询: select round(1123.26723,2);

        结果:1123.27

4 DISTINCT

  1. 在count计算不重复的记录的时候能用到
    例:SELECT COUNT( DISTINCT DepartmentID )

FROM employees;
就是计算employees表中id不同的记录有多少条

 

2、在需要返回记录不同的id的具体值的时候可以用

例:查询employees表部门号和性别,要求消除重复行

USE db_employ;

SELECT DISTINCT DepartmentID 地址,Sex 性别

FROM employees

返回employees表中不同的id的具体的值

 

3、上面的情况2对于需要返回mysql表中2列以上的结果时会有歧义

比如SELECT DISTINCT player_id, task_id FROM task;

实际上返回的是player_id与task_id同时不相同的结果,也就是DISTINCT同时作用了两个字段,必须得player_id与task_id都相同的才被排除了,与我们期望的结果不一样,我们期望的是player_id不同被过滤

  在这种情况下,distinct同时作用了两个字段,player_id,task_id

 

这时候可以考虑使用group_concat函数来进行排除,不过这个mysql函数是在mysql4.1以上才支持的

 

其实还有另外一种解决方式,就是使用

SELECT player_id, task_id, count(DISTINCT player_id) FROM task.

虽然这样的返回结果多了一列无用的count数据(有时也许就需要这个数据)

 

4、同时我们还可以利用下面的方式解决2遇到的歧义问题通过group by 分组

select player_id,task_id from task group by player_id

distinct 优化

 

5 substring函数

1、格式:select substring(string,position)

例 从“MYSQL SUBSTRING”中提取”Substring”

SELECT SUBSTRING('MYSQL SUBSTRING', 7)

要从“MySQL SUBSTRING”字符串中获取子字符串:“SUBSTRING”,子串的位置必须从7开始

 

如果position参数为零,则SUBSTRING函数返回一个空字符串

SELECT SUBSTRING('MYSQL SUBSTRING', 0);

  1. 格式:select substring(string,position,length)

例:"MySQL SUBSTRING"获取"MySQL"

SELECT SUBSTRING('MySQL SUBSTRING',1,5)

或SELECT SUBSTRING('MySQL SUBSTRING' FROM 1 FOR 5)

或SELECT SUBSTRING('MySQL SUBSTRING' FROM -15 FOR 5);


关键字、函数有点迷。。。


持续更新。。。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值