当前位置: 首页 > 编程日记 > 正文

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);

单行函数:

单行函数仅对单条数据中的列进行操作并且返回一个结果.

  • 字符串函数
  1. length(column_name|str):返回字符串存储长度
select name,length(name) from student

在这里插入图片描述

  1. char_length(column_name|str):返回字符串中字符个数
select name,char_length(name) from student

在这里插入图片描述

  1. concat(column_name1|str1, column_name2|str2,…):将多个字符串首尾相连后返回;
select concat(id,name,sex,age) from student

在这里插入图片描述

  1. concat_ws(separator,column_name1|str1, column_name2|str2,…):将多个字符串按照执行separator进行首尾相连;
select concat_ws(',',id,name,sex,age) from student

在这里插入图片描述

  1. 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')

在这里插入图片描述

  1. substr(str,pos[,len]):从源字符串str中的指定位置pos开始取一个字串并返回;
    1. pos从1开始
    2. len指定子串的长度,如果省略则一直取到字符串的末尾;len为负值表示从源字符串的尾部开始取起。
    3. 函数substr()是函数substring()的同义词。
select substr('abbccs',2)

在这里插入图片描述

select substr('abbccs',2,3)

在这里插入图片描述

  1. replace(str, from_str, to_str):将源字符串str中所有子串form_str(大小写敏感替代成字符串to_str并返回替换后的字符串;
select replace('110#120#119','#','¥')

在这里插入图片描述

  1. reverse(str):返回字符串str反转结果
select reverse(' a vfd')

在这里插入图片描述

  1. strcmp(expr1,expr2):两个字符串相同则返回0;第一个小于第二个返回-1,否则返回1;
select strcmp('abc','a')

在这里插入图片描述

select strcmp('abc','abc')

在这里插入图片描述

select strcmp('abc','b') 

在这里插入图片描述

  • 数值函数
  1. mod(x,y):取x与y的余数;
select mod(5,2)

在这里插入图片描述

  1. round(x[,y]):返回参数x的四舍五入值,该值有y位小数;不指定第二个参数,则默认为0;
select round(3.1415926,3)

在这里插入图片描述

  1. truncate(x,y):返回数字x截断后的结果,该值有y位小数;
select truncate(3.1415926,3)

在这里插入图片描述

  • 日期函数
  1. now():获取当前日期+时间;
select now()

在这里插入图片描述

  1. date_format(date,format):获取指定格式的日期
select date_format(now(),'%Y年%m月%d日 %H时%i分%s秒')

在这里插入图片描述

select date_format(now(),'%y年%m月%d日 %h时%i分%s秒')

在这里插入图片描述

  1. datediff(date1,date2):返回(date1 - date2)天;
select datediff('2020-07-02','2019-07-02')

在这里插入图片描述

  1. timediff(time1,time2):返回time1-time2,注意:函数的两个参数类型必须相同
select timediff('23:59:30','00:00:30')

在这里插入图片描述

  • 转换函数
  1. 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

在这里插入图片描述

  • 其它函数
  1. 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

在这里插入图片描述

多行函数:

多行函数又称组函数,这类函数用于对多行数据进行操作

在使用时需要注意以下两点:

  1. 组函数忽略空值——可以通过ifnull函数或if(expr1, expr1, expr1)用一个值代替空值;
  2. 组函数默认考虑重复值——可以通过distinct关键字使组函数不考虑重复值;

常用组函数:

  1. avg(input):求平均值;
#计算学生平均年龄,包括重复的年龄
select avg(age) from student;
  1. max(input):求最大值;
#获取学生表中最大年龄
select max(age) from student;
  1. min(input):求最小值;
#获取学生表中最小年龄
select min(age) from student;
  1. sum(input):求和;
#计算学生表中年龄之和
select sum(age) from student;
  1. 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,*不会忽略空值的行
  1. stddev(input):求标准差;
  2. 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)

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

Java基础概念性的知识总结

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

vue里的数据

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

【Leetcode】刷题之路2(python)

哈希映射类题目&#xff08;简单题小试牛刀啦bhn&#xff09; 242.有效的字母异位词349.两个数组的交集1002.查找常用字符202.快乐数383.赎金信 242. 有效的字母异位词 用python的Counter类太绝了&#xff01;&#xff01;&#xff01; 一行代码解决问题&#xff0c;这道题实…

ORA-01113 file 1 needs media recovery

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

大数据批量导入,解决办法,实践从定时从 sqlserver 批量同步数据到 mySql

c#代码&#xff0c;批量导入数据代码 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 源码下载地址&#xff1a;https://github.com/ultralytics/yolov5 &#xff08;持续更新中&#xff09; 本人所用环境如下&#xff1a; pytorch&#xff1a;1.8&#xff08;因为cuda版本用了pytorch1.8&#xff09; cuda&#xff1a;10.1 Python&am…

CSS之常用选择器(元素、id、类、通配选择器)

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

Java中 实体类 VO、 PO、DO、DTO、 BO、 QO、DAO、POJO的概念

PO(persistant object) 持久对象 在 o/r 映射的时候出现的概念&#xff0c;如果没有 o/r 映射&#xff0c;没有这个概念存在了。通常对应数据模型 ( 数据库 ), 本身还有部分业务逻辑的处理。可以看成是与数据库中的表相映射的 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详解及复现

检测器通常能够被分为两类&#xff0c;一类是two-stage检测器&#xff0c;最具代表的为faster R-CNN&#xff1b;另一类是one-stage检测器&#xff0c;包括YOLO&#xff0c;SSD等。一般来说&#xff0c;two-stage检测器具有高定位和识别准确性&#xff0c;而one-stage则有速度上…

Ubuntu终端命令行缩短显示路径

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

主要的约瑟夫环问题

解说 http://poj.org/problem?id3517 n个人&#xff0c;编号为1~n。每次从1開始数&#xff0c;数到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&#xff…

CSS之复合选择器(交集、并集选择器)

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

SAP有用的知识(持续更新)

一、安装SAP 1.1、产品可用性矩阵&#xff08;Product Availability Matrix&#xff09; SAP官网-Maintenance-Product Availability Matrix&#xff0c;点击页面的Access the Product Availability Matrix。 选中你公司授权的商品&#xff08;Licensed Products&#xff09…

【目标检测】yolo系列:从yolov1到yolov5之YOLOv2详解及复现

YOLO v2 Yolov2论文链接&#xff1a;YOLO9000: Better, Faster, Stronger yolov2的改进 从Yolov2论文的标题可以直观看到就是Better、Faster、Stronger。Yolov1发表之后&#xff0c;计算机视觉领域出现了很多trick&#xff0c;例如批归一化、多尺度训练等等&#xff0c;v2也…

我有一个很好的思维习惯-反思

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

CSS之关系选择器(子元素、后代、兄弟选择器)

<!DOCTYPE html> <html><head><meta charset"UTF-8"><title></title><style>/*为div的子元素span设置一个字体颜色*//*子元素选择器&#xff1a;作用&#xff1a;选中指定父元素的指定子元素语法&#xff1a;父元素>子…

网络管理员比赛回顾01-基本操作和简单vlan

目录 一、模拟器eNSP 二、基本操作 三、配置IP地址 四、VLAN 一、模拟器eNSP 使用eNSP模拟器&#xff0c;来源于网络上的安装包&#xff0c;学习一个。基本操作就不多说了&#xff0c;在实践里慢慢记录 二、基本操作 认识3种视图&#xff1a;用户视图、系统视图、接口视…

【Leetcode】刷题之路3(python版)

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

Luogu 4438 [HNOI/AHOI2018]道路

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

52深入理解C指针之---不透明指针

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

CSS之布局(文档流)

文档流&#xff1a; <!DOCTYPE html> <html><head><meta charset"utf-8" /><title>文档流</title><style>.box1{background-color: yellow;}</style></head><body><!--文档流&#xff08;normal fl…

网络管理员比赛回顾02-网关、静态路由、动态路由

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