MySQL | DQL—常见函数

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
云数据库 RDS MySQL Serverless,价值2615元额度,1个月
简介: MySQL | DQL—常见函数

一、概述


功能:类似于java中的方法

好处:提高重用性和隐藏实现细节

调用:select 函数名(实参列表);


二、单行函数


1、字符函数


concat:连接

substr:截取子串

upper:变大写

lower:变小写

replace:替换

length:获取字节长度

trim:去前后空格

lpad:左填充

rpad:右填充

instr:获取子串第一次出现的索引


2、数学函数


ceil:向上取整

round:四舍五入

mod:取模

floor:向下取整

truncate:截断

rand:获取随机数,返回0-1之间的小数


3、日期函数


now:返回当前日期+时间

year:返回年

month:返回月

day:返回日

date_format:将日期转换成字符

curdate:返回当前日期

str_to_date:将字符转换成日期

curtime:返回当前时间

hour:小时

minute:分钟

second:秒

datediff:返回两个日期相差的天数

monthname:以英文形式返回月



4、其他函数

version 当前数据库服务器的版本

database 当前打开的数据库

user当前用户

password('字符'):返回该字符的密码形式

md5('字符'):返回该字符的md5加密形式


5、流程控制函数


①if(条件表达式,表达式1,表达式2):如果条件表达式成立,返回表达式1,否则返回表达式2

②case情况1

case 变量或表达式或字段

when 常量1 then 值1

when 常量2 then 值2

...

else 值n

end


③case情况2

case

when 条件1 then 值1

when 条件2 then 值2

...

else 值n

end


三、分组函数


1、分类

max 最大值

min 最小值

sum 和

avg 平均值

count 计算个数


2、特点


①语法

select max(字段) from 表名;


②支持的类型

sum和avg一般用于处理数值型

max、min、count可以处理任何数据类型


③以上分组函数都忽略null

④都可以搭配distinct使用,实现去重的统计

select sum(distinct 字段) from 表;

⑤count函数

count(字段):统计该字段非空值的个数

count(*):统计结果集的行数

案例:查询每个部门的员工个数

1 xx    10

2 dd    20

3 mm    20

4 aa    40

5 hh    40


count(1):统计结果集的行数


效率上:

MyISAM存储引擎,count(*)最高

InnoDB存储引擎,count(*)和count(1)效率>count(字段)


⑥ 和分组函数一同查询的字段,要求是group by后出现的字段


练习:


1.查询公司员工工资的最大值,最小值,平均值,总和

SELECT MAX(salary) 最大值,MIN(salary) 最小值,AVG(salary) 平均值,SUM(salary) 和
FROM employees;

2.查询员工表中的最大入职时间和最小入职时间的相差天数 (DIFFRENCE)

SELECT MAX(hiredate) 最大,MIN(hiredate) 最小,(MAX(hiredate)-MIN(hiredate))/1000/3600/24 DIFFRENCE
FROM employees;
SELECT DATEDIFF(MAX(hiredate),MIN(hiredate)) DIFFRENCE
FROM employees;
SELECT DATEDIFF('1995-2-7','1995-2-6');

3.查询部门编号为90的员工个数

SELECT COUNT(*) FROM employees WHERE department_id = 90;


相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
7天前
|
关系型数据库 MySQL Linux
【MySQL-10】数据库函数-案例演示【字符串/数值/日期/流程控制函数】(代码演示&可cv代码)
【MySQL-10】数据库函数-案例演示【字符串/数值/日期/流程控制函数】(代码演示&可cv代码)
【MySQL-10】数据库函数-案例演示【字符串/数值/日期/流程控制函数】(代码演示&可cv代码)
|
7天前
|
SQL 关系型数据库 MySQL
【MySQL】DQL-案例练习-DQL基本介绍&语法&执行顺序(代码演示)
【MySQL】DQL-案例练习-DQL基本介绍&语法&执行顺序(代码演示)
|
7天前
|
SQL 关系型数据库 MySQL
【MySQL】DQL-排序查询-语法&注意事项&可cv例题语句
【MySQL】DQL-排序查询-语法&注意事项&可cv例题语句
|
7天前
|
SQL 关系型数据库 MySQL
【MySQL】DQL-排序查询-语法&排序方式&注意事项&可cv例题语句
【MySQL】DQL-排序查询-语法&排序方式&注意事项&可cv例题语句
|
7天前
|
SQL 关系型数据库 MySQL
【MySQL】DQL-分组查询-语法&where与having的区别&注意事项&可cv例题语句
【MySQL】DQL-分组查询-语法&where与having的区别&注意事项&可cv例题语句
【MySQL】DQL-分组查询-语法&where与having的区别&注意事项&可cv例题语句
|
7天前
|
SQL 关系型数据库 MySQL
【MySQL-8】DQL-查询语句全解 [ 基础/条件/分组/排序/分页查询 ](附带代码演示&案例练习)
【MySQL-8】DQL-查询语句全解 [ 基础/条件/分组/排序/分页查询 ](附带代码演示&案例练习)
|
7天前
|
SQL 关系型数据库 MySQL
【MySQL】DQL-聚合函数介绍&常见聚合函数&语法&注意事项&可cv例题语句
【MySQL】DQL-聚合函数介绍&常见聚合函数&语法&注意事项&可cv例题语句
|
7天前
|
SQL 关系型数据库 MySQL
【MySQL】DQL-条件查询语句全解(附带代码演示&案例练习)
【MySQL】DQL-条件查询语句全解(附带代码演示&案例练习)
|
7天前
|
SQL 关系型数据库 MySQL
【MySQL】DQL-基础查询-语句&演示(查询多个字段 / 所有字段/并设置别名/去重)
【MySQL】DQL-基础查询-语句&演示(查询多个字段 / 所有字段/并设置别名/去重)
|
7天前
|
SQL 关系型数据库 MySQL
【MySQL-4】简述SQLの通用语法及4种基本语句介绍(DDL/DML/DQL/DCL)
【MySQL-4】简述SQLの通用语法及4种基本语句介绍(DDL/DML/DQL/DCL)