12.MYSQL基础-常见函数
4. 常见函数
一、字符函数
概念
- 类似于Java的方法,将一组逻辑语句封装在方法中,对外暴露方法名
优点
- 隐藏了实现细节
- 提高代码的重用性
调用
- select 函数名(实参列表) 【 from 表】;
特点
- 叫什么(函数名)
- 干什么(函数功能)
分类
- 单行函数(如 concat、length、ifnull)
- 分组函数(功能:做统计使用,又称为统计函数、聚合函数、组函数)
concat拼接字符串【utf8中汉字占三个字符】
- select concat (last_name,’-‘,first_name) as 姓名 from student;
upper、lower大小写
select upper(‘tom’);
select lower(‘tom’);
实例:将姓变大写,名变小写,然后拼接
select concat(upper(last_name),’-’,lower(first_name)) as 姓名 from student;
substr、sbustring【索引从1开始】
截取从指定索引处后方所有字符
SELECT SUBSTR(‘iPhone13ProMax’,7) AS output (13ProMax)
截取从指定索引处指定字符长度的字符
SELECT SUBSTR(‘iPhone13ProMax’,7,2) AS output (13)
姓名中首字符大写,其他字符小写,然后用_拼接,显示出来
SELECT CONCAT(UPPER(SUBSTR(last_name,1,1)),’-’,LOWER(SUBSTR(last_name,2))) AS output from student;
instr 返回字符串第一次出现的索引
- SELECT INSTR(‘iPhone13ProMax’,‘iPhone’) AS output 结果:1
trim【除去字段两边内容默认去除空格】
- SELECT TRIM(‘ 何浩祥 ’) AS out_put结果:何浩祥
- SELECT TRIM (‘aa’ from ‘aaaaa何aaa浩祥aaaa’) AS out_put 结果:何aaa浩祥
LPAD用指定的字符实现左填充指定长度
- SELECT LPAD (‘何浩祥’,10,’6’) AS out_put; 结果:6666666何浩祥
RPAD用指定的字符实现右填充指定长度
- SELECT RPAD (‘何浩祥’,10,’!’) AS out_put; 结果:何浩祥!!!!!!!
replace 替换
- SELECT REPLACE(‘何浩祥牛逼何浩祥牛逼’,’牛逼’,’厉害’) AS HHXNB;
二、数字函数
round四舍五入
- SELECT ROUND(1.56) 2
- SELECT ROUND(1.527,2) 1.53
ceil 向上取整,返回>=该参数的最小整数
- SELECT CEIL(1.001) 2
floor 向下取整,返回<=该参数的最大整数
- SELECT FLOOR(-9.99) -10
truncate 【截断】
- SELECT TRUNCATE(1.6999,1) 1
mod 取余
- mod(a,b): a-a/b*b
- SELECT MOD(10,3); 1
三、日期函数
SELECT NOW(); 返回系统当前日期
SELECT CURDATE(); 返回当前系统日期,不包含时间
SELECT CURTIME(); 返回当前时间不包含日期
指定部分,年、月、日、时分秒
- SELECT YEAR(‘2000-11-13’) AS 年;
- SELECT MONTH(NOW()) AS 月;
- SELECT MONTHNAME(NOW()) AS 月; 月份的英文
STR_TO_DATE将字符通过指定格式转换日期
查询入学时间为2008-12-11的学生信息
SELECT * FROM student WHERE inschool=‘2008-12-11’;
SELECT * FROM student WHERE inschool=STR_TO_DATE(‘12-11 2008’,’%c-%d %Y);
DATE_FORMAT 将日期转换为字符
- SELECT DATE_FORMAT(NOW(),’%y年%m月%d日’) AS out_put;
DATEDIFF,两个时间相差的天数
SELECT DATEDIFF(NOW(),’2000-11-13’);
四、 其他函数
SELECT VERSION (); 版本号
SELECT DATABASE(); 当前数据库
SELECT USER(); 当前用户
五、流程控制函数
if 函数:if else的效果
SELECT IF(10>5,’大’,’小’);
查询学生信息,是否获得奖状
SELECT name,awards,IF(awards IS NULL ‘没奖状 呵呵’,’有奖状哈哈 ’) AS 备注 FROM student;
case函数的使用
switch case
case 要判断的字段或表达式
when 常量1 then 要显示的值1或语句1
when 常量2 then 要显示的值2或语句2
。。。
else 要显示的值n或语句n
end
案例查询学生的英语成绩
一班的显示成绩为成绩的1.3倍
二班的显示成绩为成绩的1.2倍
三班的显示成绩为成绩的1.1倍
其他班显示原始成绩
SELECT Englis AS 原始成绩,class
case class
when ‘一班’ then English*1.3
when ‘二班’ then English*1.2
when ‘三班’ then English*1.1
else English
end as 附加成绩
from student
多重if
case
when 条件1 then 要显示的值1或者语句1
when 条件2 then 要显示的值2或者语句2
。。。
else 要显示的语句n
end
案例如果英语成绩大于90,显示级别为A
案例如果英语成绩大于80,显示级别为B
案例如果英语成绩大于60,显示级别为C
其他情况显示D
SELECT English
case
when English>90 then ‘A’
when English>80 then ‘B’
when English>60 then ‘C’
ELSE ‘D’
END AS 成绩级别
FROM student
六、分组函数
功能:用作统计使用,又称为聚合函数或统计函数或者组函数
分类:sum求和、avg 平均值、max最大值、min最小值、count计算非空个数
简单使用:
SELECT SUM(English) FROM student;
SELECT AVG(English) FROM student;
SELECT MAX(English) FROM student;
SELECT MIN(English) FROM student;
SELECT COUNT(English) FROM student;
SELECT SUM(English) 和,AVG(English) 平均值,MAX(English) 最大值,MIN(English) 最小值,COUNT(English) 个数
FROM student
SELECT SUM(English) 和,ROUND(AVG(English) ,2) 平均值,MAX(English) 最大值,MIN(English) 最小值,COUNT(English) 个数
FROM student
特点
sum、avg一般用于处理数值型,max、min可以处理任何数据类型
以上分组函数都忽略null值
可以和distinct搭配去实现去重
SELECT SUM(DISTINCT English),SUM(English) FROM student;
conut函数的详细介绍
统计所有行数
SELECT COUNT(*) FROM student;
SELECT COUNT(1) FROM student;
和分组函数一同查询的字段要求是group by后的字段
12.MYSQL基础-常见函数的更多相关文章
- 12. Mysql基础入门
课程大纲 • 数据库概述 • MySQL基本操作 • MySQL索引基础 • MySQL高级特性
- (3.12)mysql基础深入——mysql日志文件/其他文件(socket/pid/表结构/Innodb)
(3.12)mysql基础深入——mysql日志文件/其他文件(socket/pid/表结构/Innodb) 关键词:mysql日志文件,mysqldumpslow分析工具 目录:日志文件的分类 1. ...
- MYSQL基础操作
MYSQL基础操作 [TOC] 1.基本定义 1.1.关系型数据库系统 关系型数据库系统是建立在关系模型上的数据库系统 什么是关系模型呢? 1.数据结构可以规定,同类数据结构一致,就是一个二维的表格 ...
- mysql 基础篇5(mysql语法---数据)
6 增删改数据 -- ********一.增删改数据********* --- -- 1.1 增加数据 -- 插入所有字段.一定依次按顺序插入 INSERT INTO student VALUES(1 ...
- MySQL基础学习总结
1.MySQL基础概念 mysql逻辑架构如下: 每个客户端连接都会在服务器中拥有一个线程,这个连接的查询只会在这个单独的线程中执行. MySQL是分层的架构.上层是服务器层的服务和查询执行引擎,下层 ...
- mysql基础面试
php面试题之五--MySQL数据库(基础部分) 五.MySQL数据库 mysql_num_rows() mysql_affected_rows() 这两个函数都作用于 mysql_query($qu ...
- MySQL基础操作命令
MySQL基础操作命令 1. 查看MySQL进程 ps -ef|grep mysql |grep -v grep 2. 查看MySQL端口 ss -lnt | grep 3306 3. MySQL的启 ...
- MYSQL 基础操作
1.MySQL基础操作 一:MySQL基础操作 1:MySQL表复制 复制表结构 + 复制表数据 create table t3 like t1; --创建一个和t1一样的表,用like(表结构也一样 ...
- mysql基础之基本数据类型
原文:mysql基础之基本数据类型 列类型学习 mysql三大列类型 整型 Tinyint/ smallint/ mediumint/int/ bigint(M) unsigned zerofill ...
随机推荐
- node+express+mysql 实现登陆注册
基于 node.express.mysql 实现的登录注册. 1.`首先在终端中 安装 node .` 2.`通过npm install express -g 命令全局安装 express`. 3.` ...
- SSM框架整合(Spring、SpringMVC、Mybatis)
#毫无疑问我们肯定是使用Spring去整合SpringMVC和Mybatis,在整合过程中我们首先要让各自的模块实现,然后再去使用Spring整合:比如我先实现Mybatis框架的配置,然后再通过测试 ...
- 告别收费BI!如何自己动手做一个免费的可视化数据报表还支持文档在线预览?
本人大学刚毕业目前在一家互联网公司从事产品运营工作,一季度刚过,公司需要我出一份产品运营数据报表,由于产品用户数据.订单数据等数据量太大,我希望找一款Bi产品,支持我做出一个精美的可视化报表,还可以让 ...
- 2021.10.29 P1649 [USACO07OCT]Obstacle Course S(BFS)
2021.10.29 P1649 [USACO07OCT]Obstacle Course S(BFS) 题意: 给一张n*n的图,起点为A,终点为 B,求从A到B转弯次数最少为多少. 分析: 是否存在 ...
- 2021.08.06 P4392 Sound静音问题(ST表)
2021.08.06 P4392 Sound静音问题(ST表) [P4392 BOI2007]Sound 静音问题 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 题意: 序列a,求 ...
- docker进阶_dockerswarm
DockerSwarm Docker Swarm简介 Docker Swarm的功能 Docker Swarm包含两个方面:docker安全集群,以及一个微服务应用引擎 集群方面,swarm将 ...
- 微信小程序wx.login先执行onLaunch与onLoad加载顺序问题
@ 目录 遇到问题 请求api返回需要先登录,实际上登录已成功 问题分析 解决问题 自定义回调函数 app.js index.js 扩展提问 学习交流 随机数字随机幸运数+ My Blog 技术交流 ...
- Linux-简-脚本集合
编写脚本,求100以内所有正奇数之和 while加 if 判断 #!/bin/bash # # # sum=0 i=1 while (($i<=100));do sur=$[i%2] if [ ...
- 干货 | Keepalived高可用服务配置实例
一个执着于技术的公众号 Keepalived系列导读 Keepalived入门学习 keepalived安装及配置文件详解 前言 在前面的章节中,我们学习了Keepalived简介.原理.以及Keep ...
- 十分钟快速了解《你不知道的 JavaScript》(上卷)
最近刚刚看完了<你不知道的 JavaScript>上卷,对 JavaScript 有了更进一步的了解. <你不知道的 JavaScript>上卷由两部分组成,第一部分是< ...