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 ...
随机推荐
- Hive进行数据统计时报错:org.apache.hadoop.mapreduce.v2.app.MRAppMaster: Error starting MRAppMaster
报错详情: 2020-04-09 22:56:58,827 ERROR [Listener at 0.0.0.0/45871] org.apache.hadoop.mapreduce.v2.app.M ...
- 微信h5静默和非静默授权获取用户openId和用户信息的方法和步骤:
原文链接:https://blog.csdn.net/qq_35430000/article/details/79299529 一.openId是什么?openId是用户在当前公众号下的唯一标识('身 ...
- JAVASE for 笔记
//0到100中奇数偶数的和package com.huang.boke.flowPath;public class Fordeme { public static void main(String[ ...
- docker容器编排原来这么丝滑~
前言: 请各大网友尊重本人原创知识分享,谨记本人博客:南国以南i 概念介绍: Docker Docker 这个东西所扮演的角色,容易理解,它是一个容器引擎,也就是说实际上我们的容器最终是由Docker ...
- Codeforces Round #771 (Div. 2), problem: (B) Odd Swap Sort
Problem - B - Codeforces 就是给你个序列, 给他整成升序的, 每次操作可以使相邻两个数交换位置, 交换条件是二数之和为奇数 结果只需输出是否可以整成升序的 思路: 需要奇数偶数 ...
- python 包之 redis 数据库操作教程
一.安装 redis 是一个 Key-Value 数据库 Value 支持 string(字符串),list(列表),set(集合),zset(有序集合),hash(哈希类型)等类型 pip inst ...
- ThinkPHP3.2.3反序列化链子分析
前言 目前官方已经不再维护ThinkPHP3.2.3,本文仅对ThinkPHP3.2.3反序列化链子进行复现,如有纰漏,还望指正. 环境介绍 MAMP pro PhpStorm Xdebug 利用条件 ...
- python数据处理matplotlib入门(2)-利用随机函数生成变化图形
综合前述的类.函数.matplotlib等,完成一个随机移动的过程(注意要确定移动的次数,比如10万次),每次行走都完全是随机的,没有明确的方向,结果是由一系列随机决策确定的,最后显示出每次移动的位置 ...
- 攻防世界-MISC:simple_transfer
这是攻防世界高手进阶区的题目,题目如下: 点击下载附件一,得到一个流量包,用wireshark打开搜索flag无果,无奈跑去查看WP,说是先查看一下协议分级,但是并没有像WP所说的协议的字节百分比占用 ...
- XCTF练习题---MISC---glance-50
XCTF练习题---MISC---glance-50 flag:TWCTF{Bliss by Charles O'Rear} 解题步骤: 1.观察题目,下载附件 2.下载完成以后,隐隐约约像是一张动图 ...