mysql 数据处理函数 聚合函数

数据处理函数/单行处理函数

  • lower 转换小写
select lower(ename) as ename from emp;
  • upper 转换大写
select upper(name) as name from t_student;
  • substr 取子串(substr( 被截取的字符串, 起始下标,截取的长度))
select substr(ename, 1, 1) as ename from emp;
		注意:起始下标从1开始,没有0.
  • concat函数进行字符串的拼接
select concat(empno,ename) from emp;
  • length 取长度
select length(ename) enamelength from emp;
  • trim 去空格
select * from emp where ename = trim('   KING');
  • str_to_date 将字符串varchar类型转换成date类型
语法格式:
		str_to_date('字符串日期', '日期格式')
		mysql的日期格式:
		%Y	年
		%m 月
		%d 日
		%h	时
		%i	分
		%s	秒
		insert into t_user(id,name,birth) values(1, 'zhangsan', str_to_date('01-10-1990','%d-%m-%Y'));

		str_to_date函数可以把字符串varchar转换成日期date类型数据,
		通常使用在插入insert方面,因为插入的时候需要一个日期类型的数据,
		需要通过该函数将字符串转换成date
  • date_format 将date类型转换成具有一定格式的varchar字符串类型。
select id,name,date_format(birth,'%Y/%m/%d') as birth from t_user;
date_format函数怎么用?
date_format(日期类型数据, '日期格式')
这个函数通常使用在查询日期方面。设置展示的日期格式。
  • format(数字, ‘格式’) 设置千分位
select ename,format(sal, '$999,999') as sal from emp;
+--------+-------+
| ename  | sal   |
+--------+-------+
| SMITH  | 800   |
| ALLEN  | 1,600 |
| WARD   | 1,250 |
| JONES  | 2,975 |
| MARTIN | 1,250 |
| BLAKE  | 2,850 |
| CLARK  | 2,450 |
| SCOTT  | 3,000 |
| KING   | 5,000 |
| TURNER | 1,500 |
| ADAMS  | 1,100 |
| JAMES  | 950   |
| FORD   | 3,000 |
| MILLER | 1,300 |
+--------+-------+
  • case…when…then…when…then…else…end
select 
	ename,
	job, 
	sal as oldsal,
	(case job when 'MANAGER' then sal*1.1 when 'SALESMAN' then sal*1.5 else sal end) as newsal 
from 
	emp;
  • round 四舍五入
select round(1236.567, 0) as result from emp;
  • rand() 生成随机数
select round(rand()*100,0) from emp;
  • ifnull 可以将 null 转换成一个具体值
    ifnull是空处理函数。专门处理空的。
    在所有数据库当中,只要有NULL参与的数学运算,最终结果就是NULL。
select ename, (sal + ifnull(comm, 0)) * 12 as yearsal from emp;

聚合函数

多行处理函数的特点:输入多行,最终输出一行。

5个:
	count	计数
	sum	求和
	avg	平均值
	max	最大值
	min	最小值

注意:
	分组函数在使用的时候必须先进行分组,然后才能用。

分组函数在使用的时候需要注意哪些?

	第一点:分组函数自动忽略NULL,你不需要提前对NULL进行处理。
	第二点:分组函数中count(*)和count(具体字段)有什么区别?
	count(具体字段):表示统计该字段下所有不为NULL的元素的总数。
    count(*):统计表当中的总行数。(只要有一行数据count则++)
	因为每一行记录不可能都为NULL,一行数据中有一列不为NULL,则这行数据就是有效的。
	第三点:分组函数不能够直接使用在where子句中。因为group by 的执行顺序在where之后
	执行顺序
		1. from
		2. where
		3. group by
		4. select
		5. order by
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值