• 为了简化操作,mysql提供了大量的函数给程序员使用(比如你想输入当前时间,可以调用now()函数)
  • 函数可以出现的位置:插入语句的values()中,更新语句中,删除语句中,查询语句及其子句中。

聚集函数

  • avg
  • count
  • max
  • min
  • sum

用于处理字符串的函数

  • 合并字符串函数:concat(str1,str2,str3…)
  • 比较字符串大小函数:strcmp(str1,str2)
  • 获取字符串字节数函数:length(str)
  • 获取字符串字符数函数:char_length(str)
  • 字母大小写转换函数:大写:upper(x),ucase(x);小写lower(x),lcase(x)
  • 字符串查找函数
  • 获取指定位置的子串
  • 字符串去空函数
  • 字符串替换函数:

用于处理数值的函数

  • 绝对值函数:abs(x)
  • 向上取整函数:ceil(x)
  • 向下取整函数:floor(x)
  • 取模函数:mod(x,y)
  • 随机数函数:rand()
  • 四舍五入函数:round(x,y)
  • 数值截取函数:truncate(x,y)

用于处理时间日期的函数

  • 获取当前日期:curdate(),current_date()
  • 获取当前时间:curtime(),current_time()
  • 获取当前日期时间:now()
  • 从日期中选择出月份数:month(date),monthname(date)
  • 从日期中选择出周数:week(date)
  • 从日期中选择出周数:year(date)
  • 从时间中选择出小时数:hour(time)
  • 从时间中选择出分钟数:minute(time)
  • 从时间中选择出今天是周几:weekday(date),dayname(date)

详解+演示

聚集函数:

  • 聚集函数用于汇集记录(比如不想知道每条学生记录的确切信息,只想知道学生记录数量,可以使用count())。
  • 聚集函数就是用来处理“汇集数据”的,不要求了解详细的记录信息。
  • 聚集函数(aggregate function) 运行在行组上,计算和返回单个值的函数。

实验表数据(下面的运行数据基于这个表):

create table student(
name varchar(15),
gender varchar(15),
age int
);
insert into student values("lilei","male",18);
insert into student values("alex","male",17);
insert into student values("jack","male",20);
insert into student values("john","male",19);
insert into student values("nullpeople","male",null);

avg(字段)函数:

  • 返回指定字段的数据的平均值
  • avg() 通过对表中行数计数并计算指定字段的数据总和,求得该字段的平均值。
  • avg() 函数忽略列值为 NULL 的行,如果某行指定字段为null,那么不算这一行。

count(字段)函数:

  • 返回指定字段的数据的行数(记录的数量)
  • 字段可以为"*",为*时代表所有记录数,与字段数不同的时,记录数包括某些字段为null的记录,而字段数不包括为null的记录。

max(字段)函数:

  • 返回指定字段的数据的最大值
  • 如果指定字段的数据类型为字符串类型,先按字符串比较,然后返回最大值。
  • max() 函数忽略列值为 null的行

min(字段)函数:

  • 返回指定字段的数据的最小值
  • 如果指定字段的数据类型为字符串类型,先按字符串比较,然后返回最小值。
  • min()函数忽略列值为 null的行

sum(字段)函数:

  • 返回指定字段的数据之和
  • sum()函数忽略列值为 null的行

补充:

  • 聚集函数的字段如果的数据为null,则忽略值为null的记录。
    • 比如avg:有5行,但是只有四行的年龄数据,计算结果只算四行的,
    • 但是如果不针对字段,那么会计算,比如count(x)是计算记录数的,null值不影响结果。
  • 还有一些标准偏差聚集函数,这里不讲述,想了解更多的可以百度。
  • 聚集函数在5.0+版本上还有一个选项DISTINCT,与select中类似,就是忽视同样的字段。【不可用于count(x)】

 

用于处理字符串的函数:

合并字符串函数:concat(str1,str2,str3…)

  • 用于将多个字符串合并成一个字符串,如果传入的值中有null,那么最终结果是null
  • 如果想要在多个字符串合并结果中将每个字符串都分隔一下,可以使用concat_ws(分隔符,str1,str2,str3…),如果传入的分隔符为null,那么最终结果是null(不过这时候如果str有为null不影响结果)

比较字符串大小函数:strcmp(str1,str2)

  • 用于比较两个字符串的大小。左大于右时返回1,左等于右时返回0,,左小于右时返回-1,
  • strcmp类似编程语言中的比较字符串函数(依据ascll码?),会从左到右逐个比较,直到有一个不等就返回结果,否则比较到结尾。

获取字符串字节数函数:length(str)

  • 用于获取字符串字节长度(返回字节数,因此要注意字符集)

获取字符串字符数函数:char_length(str)

  • 用于获取字符串长度

字母大小写转换函数:大写:upper(x),ucase(x);小写lower(x),lcase(x)

  • upper(x),ucase(x)用于将字母转成大写,x可以是单个字母也可以是字符串
  • lower(x),lcase(x)用于将字母转成小写,x可以是单个字母也可以是字符串
  • 对于已经是了的,不会进行大小写转换。

字符串查找函数:

  • find_in_set(str1,str2)
    • 返回字符串str1在str2中的位置,str2包含若干个以逗号分隔的字符串(可以把str2看出一个列表,元素是多个字符串,查找结果是str1在str2这个列表中的索引位置,从1开始)
  • field(str,str1,str2,str3…)
    • 与find_in_set类似,但str2由一个类似列表的字符串变成了多个字符串,返回str在str1,str2,str3…中的位置。
  • locate(str1,str2):
    • 返回子串str1在字符串str2中的位置
  • position(str1 IN str2)
    • 返回子串str1在字符串str2中的位置
  • instr(str1,str2)
    • 返回子串str2在字符串str1中的位置【注意这里调转了】

获取指定位置的子串:

  • elt(index,str1,str2,str3…)
    • 返回指定index位置的字符串
  • left(str,n)
    • 截取str左边n个字符
  • right(str,n)
    • 截取str右边n个字符
  • substring(str,index,len)
    • 从str的index位置截取len个字符

字符串去空函数:

  • ltrim(str):
    • 去除字符串str左边的空格
  • rtrim(str)
    • 去除字符串str右边的空格
  • trim()
    • 去除字符串str两边的空格

字符串替换函数:

  • insert(str1,index,len,str2)
    • 使用str2从str1的index位置替换str1的len个元素
  • replace(str,str1,str2)
    • 将str中的子串str1全部替换成str2

用于处理数值的函数:

绝对值函数:abs(x)

  • 返回x的绝对值

向上取整函数:ceil(x)

  • 返回x的向上取整的整数

向下取整函数:floor(x)

  • 返回x的向下取整的整数

取模函数:mod(x,y)

  • 返回x mod y的结果

随机数函数:rand()

  • 返回0-1内的随机数
  • 如果想对某种情况都使用同一随机值,可以使用rand(x),x相同时返回同样的随机结果。

四舍五入函数:round(x,y)

  • 返回数值x带有y为小数结果的数值(四舍五入)

数值截取函数:truncate(x,y)

  • 返回数值x截取y位小数的结果(不四舍五入)

用于处理时间日期的函数:

获取当前日期:curdate(),current_date()

  • 返回格式为:

获取当前时间:curtime(),current_time()

  • 返回格式为:

获取当前日期时间:now()

  • 返回格式为:

从日期中选择出月份数:month(date),monthname(date)

从日期中选择出周数:week(date)

  • 返回格式为:

从日期中选择出周数:year(date)

  • 返回格式为:

从时间中选择出小时数:hour(time)

  • 返回格式为:

从时间中选择出分钟数:minute(time)

  • 返回格式为:

从时间中选择出今天是周几:weekday(date),dayname(date)

  • 返回格式为:

日期函数还是比较常用的,想了解更多,可以参考官方文档:

https://dev.mysql.com/doc/refman/5.7/en/date-and-time-functions.html


想了解更多函数,可以参考官方文档(下面的是5.7的):

https://dev.mysql.com/doc/refman/5.7/en/func-op-summary-ref.html


作者:progor

mysql之常用函数(核心总结)的更多相关文章

  1. MYSQL基本常用函数

    MYSQL基本常用函数 一.字符的操作函数 (ps:mysql中的索引都是从1开始的.) 1.instr(param1,param2) 返回子串第一次出现的索引,若找不到则返回0. param1填写操 ...

  2. MySQL之常用函数

    MySQL有如下常用函数需要掌握: 1.数学类函数 函数名称 作用 ABS(x)   返回x的绝对值                      SQRT(x)   返回x的非负二次方根 MOD(x,Y ...

  3. mysql中常用函数简介(不定时更新)

    常用函数version() 显示当前数据库版本database() 返回当前数据库名称user() 返回当前登录用户名inet_aton(IP) 返回IP地址的数值形式,为IP地址的数学计算做准备in ...

  4. MySQL数据库常用函数

    一.数学函数 数学函数主要用于处理数字,包括整型.浮点数等. ABS(x) 返回x的绝对值 不区分大小写 SELECT ABS(-1) -- 返回1 CEIL(x),CEILING(x) 返回大于或等 ...

  5. MySQL数据库------常用函数

    一.数学函数 数学函数主要用于处理数字,包括整型.浮点数等. [1]ABS(x)        返回x的绝对值 例子:SELECT ABS(-1) -- 返回1 [2]CEIL(x),CEILING( ...

  6. MySQL 数据库 常用函数

    一.数学函数 数学函数主要用于处理数字,包括整型.浮点数等. ABS(x) 返回x的绝对值 SELECT ABS(-1) -- 返回1 CEIL(x),CEILING(x) 返回大于或等于x的最小整数 ...

  7. centos 7 c++连接mysql的常用函数说明及使用样例

    以下函数使用之前需安装mysql,并包含mysql.h头文件,设置好mysqlclient动态库 一.mysql_init() MYSQL * mysql_init(MYSQL *mysql); // ...

  8. PHP操作MySQL的常用函数

    某些情况下(如html中),调用php的变量时,要给变量加{},若要使字符串变量加上引号,则还需要在{}外加引号 如: $sql="select * from admin where use ...

  9. mysql的常用函数

    原文地址参考:http://www.cnblogs.com/ringwang/archive/2008/07/05/1236292.html 1. 控制流函数 1.1  IFNULL(expr1,ex ...

随机推荐

  1. iOS中通过链接地址打开指定APP并传参 by徐文棋

    基于项目需要,有时候需要通过一个链接,或者二维码扫描来直接打开我们所开发的客户端. 当然了.客户端也不仅仅是需要被打开,而且还要跳到相应的页面去,因此这里需要传参. 客户端想用链接打开,必须要在inf ...

  2. Dockerfile镜像实例

    Dockerfile镜像实例 目录 Dockerfile镜像实例 一.构建SSH镜像 1. 建立工作目录 2. 生成镜像 3. 启动容器并修改root密码 二.systemctl镜像 1. 建立工作目 ...

  3. 2022寒假集训day4

    day4(day5补完的) 继续刷搜索方面的题, 初步了解了序列. T1 迷宫问题 题目描述设有一个 n*n 方格的迷宫,入口和出口分别在左上角和右上角.迷宫格子中分别放 0 和 1 ,0 表示可通, ...

  4. postman python疑难

    例子1:postman请求时会将默认的headers的content-type替换成Content-Type,而直接使用python的request则不行,服务器端就会接收到错误的Content-Ty ...

  5. python小白记录三——pycharm+selenium搭建环境之 no module named 'selenium'异常解决

    在pycharm上搭建python+selenium自动化测试环境时,遇到一个很坑的问题:no moduel named 'selenium' 如下图: 1.查看你的python是否正确安装了sele ...

  6. hashlib模块&日志模块

    内容概要 hashlib模块 logging模块 第三方模块下载 内容详细 hashlib模块 hashlib 是一个提供了一些流行的hash(摘要)算法的Python标准库.其中所包括的算法有 md ...

  7. Solution -「LOCAL」舟游

    \(\mathcal{Description}\)   \(n\) 中卡牌,每种三张.对于一次 \(m\) 连抽,前 \(m-1\) 次抽到第 \(i\) 种的概率是 \(p_i\),第 \(m\) ...

  8. MYSQL优化的一些性能与技巧

    1. 为查询缓存优化你的查询 大多数的MySQL服务器都开启了查询缓存.这是提高性最有效的方法之一,而且这是被MySQL的数据库引擎处理的.当有很多相同的查询被执行了多次的时候,这些查询结果会被放到一 ...

  9. Spring Data JPA应用 之查询分析

    在Spring Data JPA应用之常规CRUD操作初体验 - 池塘里洗澡的鸭子 - 博客园 (cnblogs.com)尾附上了JpaRepository接口继承关系及方法,可以知道JpaRepos ...

  10. IDEA 端口占用,启动失败,提示Web server failed to start. Port 8080 was already in use.

    问题描述: 使用IDEA开发Spring Boot项目,今天启动提示端口占用,导致启动失败!(我昨天也是用的这个端口,可以正常启动) *************************** APPLI ...