MySQL数据库中的内置函数
SQL函数分为单行函数和多行函数:
单行函数: 红色标注的为重点。
… … … …字符串函数:
… … … … … … … … … … 1.length() 存储长度
… … … … … … … … … … 2.char_length() 字符个数
… … … … … … … … … … 3.concat()首尾相连
… … … … … … … … … … 4.concat_ws()
… … … … … … … … … … 5.trim() 剪切
… … … … … … … … … … 6.substr() 获取指定字符串
… … … … … … … … … … 7.replace() 替代
… … … … … … … … … … 8.reverse() 反转
… … … … … … … … … … 9.strcmp() 比较
… … … …数值函数:
… … … … … … … … … … 1.mod(x,y)取余
… … … … … … … … … … 2.round(x,[y]) 四舍五入
… … … … … … … … … … 3.truncate(x,y) 直接截取
… … … …日期函数:
… … … … … … … … … … 1.now(x,y)当前时间
… … … … … … … … … … 2.date_format(date,format) 获取指定格式的日期
… … … … … … … … … … 3.datediff(date1,date2) 时间差
… … … … … … … … … … 4.timediff(time1,time2) 时间差(参数需相同)
… … … …转换函数:
… … … … … … … … … … 1.convert(value,type)
… … … …其它函数:
… … … … … … … … … … 1.if(expr1,expr2,expr3)(类似三目运算)
… … … … … … … … … … 2.ifnull(expr1,expr2)(特例)
多行函数:
… … … …常用组函数:
… … … … … … … … … … 1.avg() 平均值
… … … … … … … … … … 2.max() 最大值
… … … … … … … … … … 3.min() 最小值
… … … … … … … … … … 4.sum() 求和
… … … … … … … … … … 5.count() 求行数
… … … … … … … … … … 6.stddev() 标准差
… … … … … … … … … … 7.variance() 方差
先创建一个表,并添加一些数据用来测试:
create table student(
id char(1) primary key,
name varchar(8),
sex char(2) default '男' ,
age int(3) default 0
);insert into student values ('1','王明','男',18);
insert into student values ('2','孙丽','女',17);
insert into student values ('3','王明','男',27);
insert into student (id,sex,age) values ('4','男',27);
单行函数:
单行函数仅对单条数据中的列进行操作并且返回一个结果.
- 字符串函数
- length(column_name|str):返回字符串存储长度
select name,length(name) from student
- char_length(column_name|str):返回字符串中字符个数
select name,char_length(name) from student
- concat(column_name1|str1, column_name2|str2,…):将多个字符串首尾相连后返回;
select concat(id,name,sex,age) from student
- concat_ws(separator,column_name1|str1, column_name2|str2,…):将多个字符串按照执行separator进行首尾相连;
select concat_ws(',',id,name,sex,age) from student
- trim([{both | leading | trailing} [remstr] from] str):返回去掉str源字符串两端、前缀或后缀字符串remstr;不指定both、leading、trailing ,则默认为 both,此时不能使用from关键字;不指定remstr,则去掉str两端的空格;
select trim(' Tom ') from dual
select trim(both 'a' from 'aaaTomaaaa')
select trim(leading 'a' from 'aaassTomaa')
select trim(trailing 'abc' from 'abcssTomasabc')
- substr(str,pos[,len]):从源字符串str中的指定位置pos开始取一个字串并返回;
- pos从1开始
- len指定子串的长度,如果省略则一直取到字符串的末尾;len为负值表示从源字符串的尾部开始取起。
- 函数substr()是函数substring()的同义词。
select substr('abbccs',2)
select substr('abbccs',2,3)
- replace(str, from_str, to_str):将源字符串str中所有子串form_str(大小写敏感替代成字符串to_str并返回替换后的字符串;
select replace('110#120#119','#','¥')
- reverse(str):返回字符串str反转结果
select reverse(' a vfd')
- strcmp(expr1,expr2):两个字符串相同则返回0;第一个小于第二个返回-1,否则返回1;
select strcmp('abc','a')
select strcmp('abc','abc')
select strcmp('abc','b')
- 数值函数
- mod(x,y):取x与y的余数;
select mod(5,2)
- round(x[,y]):返回参数x的四舍五入值,该值有y位小数;不指定第二个参数,则默认为0;
select round(3.1415926,3)
- truncate(x,y):返回数字x截断后的结果,该值有y位小数;
select truncate(3.1415926,3)
- 日期函数
- now():获取当前日期+时间;
select now()
- date_format(date,format):获取指定格式的日期
select date_format(now(),'%Y年%m月%d日 %H时%i分%s秒')
select date_format(now(),'%y年%m月%d日 %h时%i分%s秒')
- datediff(date1,date2):返回(date1 - date2)天;
select datediff('2020-07-02','2019-07-02')
- timediff(time1,time2):返回time1-time2,注意:函数的两个参数类型必须相同
select timediff('23:59:30','00:00:30')
- 转换函数
- convert(value,type):将value转换为type类型,type可以是char(字符型)、date(日期型)、time(时间型)、datetime(日期时间型)、 signed(整型) 和decimal(浮点型)类型中的一个;
elect convert(now(),char(10))
select convert(now(),char(20))select convert(now(),date)select convert(now(),time)select convert(now(),datetime)select convert('99',signed)+1select convert('99.99',decimal(4,2))+0.01
- 其它函数
- if(expr1,expr2,expr3): expr1为TRUE,返回expr2,否则返回expr3
有点像三目运算。
#如果名字为null,则显示‘未知’
select if(name is null,'未知',name) from student
- ifnull(expr1,expr2):expr1为NULL,返回expr2,否则返回expr1 。
这个是上面那个的特例。
select ifnull(name,'未知') from student
多行函数:
多行函数又称组函数,这类函数用于对多行数据进行操作
在使用时需要注意以下两点:
- 组函数忽略空值——可以通过ifnull函数或if(expr1, expr1, expr1)用一个值代替空值;
- 组函数默认考虑重复值——可以通过distinct关键字使组函数不考虑重复值;
常用组函数:
- avg(input):求平均值;
#计算学生平均年龄,包括重复的年龄
select avg(age) from student;
- max(input):求最大值;
#获取学生表中最大年龄
select max(age) from student;
- min(input):求最小值;
#获取学生表中最小年龄
select min(age) from student;
- sum(input):求和;
#计算学生表中年龄之和
select sum(age) from student;
- count(*|input):求行数,如果使用 * 则不会忽略空值的行,
select count(name) from student;#值为3,student表中有一条数据中的name为空
select count(distinct name) from student;#值为2,student表中有一条数据中的name为空,有两条数据name的值重复
select count(ifnull(name,' ')) from student;#值为4, 将name为空的值置为1个空格
select count(*) from student;#值为4,*不会忽略空值的行
- stddev(input):求标准差;
- variance(input):求方差;
注意:count、max和min组函数操作的数据的数据类型可以是char、varchar、int或date,但不能为clob;avg、sum、stddev和varlance仅能用在数字类型的数据上。
回顶部
相关文章:

elasticsearch从入门到出门-01windows上安装使用
elasticsearch 1、安装JDK,至少1.8.0_73以上版本,java -version2、下载和解压缩Elasticsearch安装包,目录结构3、启动Elasticsearch:bin\elasticsearch.bat,es本身特点之一就是开箱即用,如果是中小型应…

读django文档——Managing static files (e.g. images, JavaScript, CSS)
在上一篇读django文档——nginx uwsgi 部署django项目_苦行僧的妖孽日常-CSDN博客 部署django项目后,发现在runserver时都能正常部署的 static 文件都没有生效。查看文档解决该问题,记录这一过程。 If you use django.contrib.staticfiles as explaine…

pytorch中tensor.mul()和mm()和matmul()
tensor.mul tensor.mul和tensor * tensor 都是将矩阵的对应位置的元素相乘,因此要求维度相同,点乘torch.mul(input, other, *, outNone) → Tensor 参数: input (Tensor) – the input tensor. other (Tensor or Number) torch.mul(input, …

python学习笔记 day44 数据库三范式
参考自 https://www.cnblogs.com/wangfengming/articles/7929118.html 1. 数据库三范式概念: 为了建立减少冗余,结构合理的数据库,涉及数据库时必须要遵守一定的规则,在关系数据库中,这种规则就成为范式,范…

行内标签(最常用的:a标签、img标签、span标签)
a 标签: 功能: 从一个页面跳转到其他页面,或者是当前页面的其他位置。 属性: href :指定跳转的目标路径。 值可以是一个外部网站的地址;也可以是一个内部网页的地址 target: _self 默认值,在当…

SAP HR模块配置假期日历和缺勤类型
目录 一、配置假期日历 二、配置缺勤信息类型 2.1、定义缺勤类型 2.2、定义缺勤的计算规则 2.3、分配缺勤计算规则到缺勤类型 一、配置假期日历 SAP的HR模块中,业务顾问在实施的时候一般会配置未来10年的假期日历,到期后再进行配置。 延长假期日…

表格(table、tr、th、td、colspan、rowspan)
表格一: <!DOCTYPE html> <html> <head><meta charset"UTF-8"><title></title><style>table{width: 720px;/*设置表格水平宽度为720px*/margin: 0 auto;/*使表格水平居中*/border: 1px solid black;/*设置边框…

Java基础概念性的知识总结
属于个人的所学的知识总结,不是全面的 1.JDK、JRE和JVM三者的区别 01.JDK:(Java Development ToolKit)Java开发工具包,是整个Java的核心。包括了Java的运行环境、JRE、一堆Java工具和Java基础的类库。 02.JRE:(Java Runtime Envir…

vue里的数据
背景: 一个项目完工在即,鉴于此,前端使用了vue,写下此栏,以供日后翻阅, 会涉及到我所运用到的vue相关知识,需要一定的js基础。 默认vue的single-file-components(单文件组件开发&…

【Leetcode】刷题之路2(python)
哈希映射类题目(简单题小试牛刀啦bhn) 242.有效的字母异位词349.两个数组的交集1002.查找常用字符202.快乐数383.赎金信 242. 有效的字母异位词 用python的Counter类太绝了!!! 一行代码解决问题,这道题实…

ORA-01113 file 1 needs media recovery
启动数据库时报错。ORA-01113 datafile1需要恢复。 rman执行恢复。恢复后尝试打开数据库,看结果 rman target / recover datafile 1; alter database open; 反复上述过程,直到所有数据文件恢复。 recover datafile 1; …… recover datafile 13; 如果…

大数据批量导入,解决办法,实践从定时从 sqlserver 批量同步数据到 mySql
c#代码,批量导入数据代码 public class MySql_Target : ZFCommon.DataAccesser.Base.DABase{public MySql_Target(){this.InitDataAccesser(ZFCommon.DataAccesser.DatabaseType.MySql, ReadConfig.TargetConnection);}///大批量数据插入,返回成功插入行数 /// <…

【目标检测】yolo系列:从yolov1到yolov5之YOLOv5训练自己数据集(v6.0)
一、源码下载及requirments 源码下载地址:https://github.com/ultralytics/yolov5 (持续更新中) 本人所用环境如下: pytorch:1.8(因为cuda版本用了pytorch1.8) cuda:10.1 Python&am…

CSS之常用选择器(元素、id、类、通配选择器)
<!DOCTYPE html> <html><head><meta charset"UTF-8"><title></title><style>/*1、元素选择器作用:根据标签名来选中指定的元素语法:标签名{}例子:p{} h1{} div{}*//*p{color: red;}*/…

Java中 实体类 VO、 PO、DO、DTO、 BO、 QO、DAO、POJO的概念
PO(persistant object) 持久对象 在 o/r 映射的时候出现的概念,如果没有 o/r 映射,没有这个概念存在了。通常对应数据模型 ( 数据库 ), 本身还有部分业务逻辑的处理。可以看成是与数据库中的表相映射的 java 对象。最简单的 PO 就是对应数据库中某个表中…

SAP有用的NOTE(持续更新)
目录 2421240 - Portal is not loaded on Chrome 56 or higher. 66971 - Supported SAP GUI platforms 66971 - Supported SAP GUI platforms 1999880 - FAQ: SAP HANA System Replication 2250144 - FAQ: SAP HANA Secure User Store 2222200 - FAQ: SAP HANA Network …

【目标检测】yolo系列:从yolov1到yolov5之YOLOv1详解及复现
检测器通常能够被分为两类,一类是two-stage检测器,最具代表的为faster R-CNN;另一类是one-stage检测器,包括YOLO,SSD等。一般来说,two-stage检测器具有高定位和识别准确性,而one-stage则有速度上…

Ubuntu终端命令行缩短显示路径
平时我们使用linux终端命令行的时候,常常会被一个问题困扰,那就是文件路径过长, 有时候甚至超过了一行,这样看起来非常别扭,其实只要两步就可以解决这个问题: 1,修改.bashrc文件(用户…

主要的约瑟夫环问题
解说 http://poj.org/problem?id3517 n个人,编号为1~n。每次从1開始数,数到m的人出圈。最后一个出圈的人的编号。f[1] 0; for(int i 2; i < n; i) {f[i] ( f[i-1] m)%i; } printf("%d\n",f[n]1);这里第一次出圈的人的编号是mÿ…

CSS之复合选择器(交集、并集选择器)
<!DOCTYPE html> <html><head><meta charset"UTF-8"><title></title><style>/*将class为red的元素设置为红色*/.red{color: red;}/*将class为red的div字体大小设置为30px*//*1、交集选择器作用:选中同时复合多…

SAP有用的知识(持续更新)
一、安装SAP 1.1、产品可用性矩阵(Product Availability Matrix) SAP官网-Maintenance-Product Availability Matrix,点击页面的Access the Product Availability Matrix。 选中你公司授权的商品(Licensed Products)…

【目标检测】yolo系列:从yolov1到yolov5之YOLOv2详解及复现
YOLO v2 Yolov2论文链接:YOLO9000: Better, Faster, Stronger yolov2的改进 从Yolov2论文的标题可以直观看到就是Better、Faster、Stronger。Yolov1发表之后,计算机视觉领域出现了很多trick,例如批归一化、多尺度训练等等,v2也…

我有一个很好的思维习惯-反思
和我共事过的同事有的会说我聪明,我就暂且当做是夸奖吧,其实我并不是聪明,只是有一个思维习惯。做事过程中或者做完一件事之后会反思这个过程,有哪些地方我是重复操作的,有没有什么地方可以简化流程的,这应…

CSS之关系选择器(子元素、后代、兄弟选择器)
<!DOCTYPE html> <html><head><meta charset"UTF-8"><title></title><style>/*为div的子元素span设置一个字体颜色*//*子元素选择器:作用:选中指定父元素的指定子元素语法:父元素>子…

网络管理员比赛回顾01-基本操作和简单vlan
目录 一、模拟器eNSP 二、基本操作 三、配置IP地址 四、VLAN 一、模拟器eNSP 使用eNSP模拟器,来源于网络上的安装包,学习一个。基本操作就不多说了,在实践里慢慢记录 二、基本操作 认识3种视图:用户视图、系统视图、接口视…

【Leetcode】刷题之路3(python版)
回溯专题 1.回溯算法的本质是n叉树的深度优先搜索,同时,需要注意剪枝减少复杂度。 2.回溯算法三部曲 确定参数和返回值回溯函数终止条件单层循环 3.回溯法思路 回溯法是一种算法思想,而递归是一种编程方法,回溯法可以用递归来…

Luogu 4438 [HNOI/AHOI2018]道路
$dp$。 这道题最关键的是这句话: 跳出思维局限大胆设状态,设$f_{x, i, j}$表示从$x$到根要经过$i$条公路,$j$条铁路的代价,那么对于一个叶子结点,有$f_{x, i, j} c_x * (a_x i) * (b_x j)$,对于内部结点…

52深入理解C指针之---不透明指针
该系列文章源于《深入理解C指针》的阅读与理解,由于本人的见识和知识的欠缺可能有误,还望大家批评指教。一、size_t:用于安全表示长度,所有平台和系统都会解析成自己对应的长度 1、定义:size_t类型表示C中任何对…

CSS之布局(文档流)
文档流: <!DOCTYPE html> <html><head><meta charset"utf-8" /><title>文档流</title><style>.box1{background-color: yellow;}</style></head><body><!--文档流(normal fl…

网络管理员比赛回顾02-网关、静态路由、动态路由
目录 一、配置网关 二、配置静态路由 三、配置动态路由 3.1、使用RIP协议配置动态路由 3.2、使用OSPF协议配置动态路由 2021年9月参加青年网络管理员比赛,因为网管超龄不能按照“青年”参赛,临时培训我们这批“青年”参赛,回顾一下经过以…