数据库期末考试(三)-常见函数的学习,字符函数、数字函数、日期函数、分组函数

常见函数的学习

概念:java中的方法,将一组逻辑语句封装在方法体中,对外暴露方法名
好处:隐藏了实现细节,提高代码的重用性
调用:select 函数名() from 表;
特点:叫什么(函数名)
干什么(函数功能)

分类:

  1. 单行函数:concat,length,ifull等
  2. 分组函数(又称为统计函数/聚合函数)–一组织传出一个值

字符函数

Length:获取参数值的字节个数

Concat:拼接字符串

Upper、lower
Select UPPER (“john”);//转换为大写

将姓变为大写,名变为小写,然后拼接
Select concat(upper(last_name),LOWER(first)name)) 姓名 from employees;

Substr、substring 截取字符串
注意:索引从1开始
截取从指定索引出后面所有字符
Select substr(‘李莫愁爱上了陆展元’,6) out_put;;
截取从指定索引指定字符长度的字符
Select substr(‘李莫愁爱上了陆展元’,1,3) out_put;;

姓名中首字符大写,其他字符小写,然后用下划线拼接,显示出来
Select concat(substr(last_name,1,1),’_’,substr(last_name,2))) out_put
From employees;

Instr:用来返回子串第一次出现的索引,如果找不到就是返回0
Select instr(‘杨不悔爱上了殷六侠’,’殷六侠’) as out_put;

Trim:去除空格

Select trim(‘ 张吉山 ‘) as out_put;

这是去掉了前后的字符
Select trim(‘a’ from ‘aaaaaaaa张佩珊aaaaaaaaa’) as out_put;

Lpad:用指定的符实现填充指定长度
Select lpad(‘殷素素’,10,’*’) as output;
Rpad:右填充

Replace:替换
Select replace(‘张无忌爱上周自若’,’周自若’,’赵敏’) as out_put;

数学函数

Round 四舍五入
Select round(1.63);
Select round(1.567,2);//小数点后面保留两位

Cell:向上取整,返回大于等于该参数的最小整数

Floor 向下取整

Truncate 截断
Select truncate(1.653234,1);//不管后面是什么都不要了

Mod 取余
在这里插入图片描述

日期函数

Now 返回当前系统日期+时间
Select now();

Curdate 返回当前系统日期,不包含时间
Select curdate();

Curtime 返回当前的时间,不包含日期
Select curtime();

可以获取指定的部分,年,月,日,小时,分钟,秒
Select year(now()) 年;
在这里插入图片描述

分组函数

在这里插入图片描述
在这里插入图片描述
可以和distinck搭配使用,实现去重运算
Select sum(distinck salary) from employes;
去重之后再求和

Count函数的单独介绍
Select count(salary) from employees;

Select count(*) from employees;
任何列只要是非空的都可以统计上
统计行数

Select count(1) from employees;
统计1的个数

Select count(“翠微”) from employees;
相当于常量,但是一般都是填1

效率:
MYISAM 存储引擎下,count()的效率高
INNODB 存储引擎下,count(
)和count(1)差不多,但是比count(字段)要高一些

和分组函数一同查询的字段有限制
Select avg(salary),employee_id from employees;
这是不对的,avg表示的是一个值,而employee_id是107个值

和分组函数一同查询的字段要求时group by后的字段。

查询公司员工工资的最大值,最小值,平均值,总和
Select max(salary) mx_sal,min(salary) mi_sal, avg(salary) ag_Sal,sum(salary) sum
From employees;

查询员工表中的最大入职时间和最小入职时间的相差天数(diffence)
Max(hiredata) min(hiredate)

Select datediff(‘2017-10-1’’2017—29’);

Select datediff(max(hiredate),min(hiredate)) difference
From employees;

查询部门编号为90的员工个数
Select count(*)
From employees
Where deparment_is=90;

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

向上Claire

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值