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 ...
随机推荐
- php弹窗后跳入另一个页面
之前写项目时,在跳转页面前加入一个弹窗,发现弹窗没有弹出来就直接跳转了,之前使用的header跳转发现不行,换成location.href也不行,后来再location.href前加入一个parent ...
- 单例设计模式(Singleton)
一.单例设计模式介绍 所谓类的单例设计模式,就是采取一定的方法保证在整个的软件系统中,对某个类只能存在一个对象实例, 并且该类只提供一个取得其对象实例的方法(静态方法) 例如:Hibernate的Se ...
- Python使用递归绘制谢尔宾斯基三角形
谢尔宾斯基三角形使用了三路递归算法,从一个大三角形开始,通过连接每一个边的中点,将大三角型分为四个三角形,然后忽略中间的三角形,依次对其余三个三角形执行上述操作. 运行效果: 源代码: 1 impor ...
- JavaScript操作select下拉框选项移动
运行结果: 源代码: 1 <!DOCTYPE html> 2 <html lang="zh"> 3 <head> 4 <meta char ...
- 微信jssdk分享(附代码)
老规矩---demo图: (注释:微信分享只支持右上角三个点触发) ======> 老规矩上菜: 1. 这边我封装了 share.js function allSharefun(param) ...
- 理解Promise函数中的resolve和reject
看了promise的用法,一直不明白里面的resolve和reject的用法: 运行了这两段代码之后彻底理解了promise的用法: var p = new Promise(function (res ...
- MySQL 中继日志
什么是中继日志从服务器I/O线程将主服务器的二进制日志读取过来记录到从服务器本地文件即relay-log日志中,然后从服务器SQL线程会读取relay-log日志的内容并应用到从服务器,从而使从服务器 ...
- 在原有mysql机器上增加一台实例
采用的是yum install mysql-community-server yum方式安装mysql(社区版) 文章基础上新加一个mysql实例. 这个完全可以直接实战上应用,只要规划好即可 服务器 ...
- ORM中choices参数(重要)、MTV于MVC模型、多对多关系三种创建方式
choices参数(重要) **使用方式
- Lumia一键刷稳定版 Win10 arm 及其报错处理
前言 之前我发了一篇Lumia1520 刷Win10 arm双系统的文章,不过后来发现那个方法对小白来说太不友好,且系统也不稳定,所以我找到了更好的方法 刷机 我们可以利用刷机迷进行刷机,支持一键刷机 ...