MySQL中的函数

2023-05-16

1.单行函数和多行函数(聚合函数、分组函数):

只对一行进行变换 每行返回一个结果;

(1).单行函数:

a.数值函数:

基本函数:

  • ABS(x)---绝对值;
  • SIGN(x)---0:0,整数:1,负数:-1;
  • CELL(x)、CELLING(x)---天花板函数,取离该值最近的,大于该值的整数;
  • FLOOR(x)---地板函数,取离该值最近的,小于该值的整数;
  • LEAST(...),GREATEST(...)
  • RAND()--->0-1、RAND(x)--->x是因子,如果两个随机数的因子是相同的那么得到的随机数也是相同的。---随机数;
  • ROUND(x)--->舍去小数位;ROUND(x,y)--->保留y位小数,如果y是负数,就去看整数位的保留值,将第几位舍或入。---四舍五入;
  • TRUNCATE(x,y)--->舍去y位后的数。---截断;
  • SQRT---开方,开根号;
  • AVG();

三角函数:

其中参数都是弧度---弧度和角度的转换--->RADIANS(x)---角度转换为弧度;DEGREES(x)---弧度转换为角度

  • SIN(x)
  • COS(x)
  • TAN(x)
  • ACOS(x)
  • ASIN(x)
  • ATAN(x)
  • ATAN2(m,n)
  • COT(x)

指数和对数:

  • POW、POWER--->指数;
  • EXP(x)--->e为底,x为指数;
  • LN(x)、LOG(x);

进制的转换:

  • BIN()---二进制;
  • HEX()---十六进制;

b.字符串函数:

  • ASCII:只看第一位;
  • CHAR_LENGH:字符长度;LENGH:字节长度;
  • CONCAT:连接字符(段)、CONCAT_WS(...)参数里的第一个字符串是用来连接后面的字符串的;
  • INSERT(原字符串,首位索引(这里的索引是从1开始,分页的时候从0开始),偏移量,插入的字符串)
  • REPLACE(原字符串,需要替换的字符串部分,替换进去的字符串部分)
  • LEFT(字符串,取左边的x个)、RIGHT(字符串,取右边的x个)
  • LPAD(str,补成x位,用'...'这个字符串来在左侧补充)---右对齐、RPAD(str,补成x位,用'...'这个字符串来在右侧补充)---左对齐
  • LTRIM、RTRIM:去除字符串左、右侧的空格。TRIM(s):去除字符串左侧和右侧的空格;TRIM('s1' FROM 's'):去除字符串s中首尾的s1;
  • REPLACE(str,n):重复n次;
  • LOCATE:找到首次出现的位置;
  • ELT:返回指定位置的字符串;
  • NULLIF(str1,str2)---如果str1=str2,就返回NULL,如果不相等,就返回str1;

c.日期和时间函数:

获取日期和时间:

  • CURDATE()、CURRENT_DATE()、CURRENT_TIME()、CURTIME()NOW()、UTC_DATE、UTC_TIME;

日期和时间戳的转换:

  • 转换成毫秒;
  • UNIX_TIMESTAMP();

获取月份、星期、星期数、天数:

  • YEAR()、MONTH()、DAY()、HOUR()、MINUTE()、SECOND()、DATENAME()

日期的格式化和解析:

  • DATE_FORMAT(date,fmt)---fmt一般是'%Y-%M-%D'TIME_FORMAT(date,fmt)---fmt一般是'%H:%m:%s'
  • 解析:STR_TO_DATE(str)

d.流程控制函数:

  • IF(value,value1,value2)---如果value为true则返回value1,否则返回value2;

  • IFNULL(value1,value2)---如果value1为true则返回value1,否则返回value2;

  • CASE WHEN 条件1 THEN 结果1 WHEN 条件2 THEN 条件2...(ELSE)...END(...)(别名)

  • CASE (expr)---表达式  WHEN 常量1 THEN 常量1 WHEN 常量2 THEN 常量2...

  • 查询自带循环;


e.加密与解密:

  • PASSWORD(str):将str加密,返回一串随机字符串;加密结果不可逆---MySQL8.0不推荐使用
  • MD5(str):加密结果不可逆
  • SHA(str):更安全,加密结果不可逆
  • ENCODE()、DECODE()---8.0中不可用,加密解密;

f.信息函数:

  • VERSION()、CONNECTION_ID()、USER()、DATABASE()...

g.其他函数:

  • FORMAT()---四舍五入保留到小数点后n为位; 
  • CONV(value,m,n):进制转换,从m到n;

(2).聚合函数:

输入的是一组数据的集合,输出的是单个值;不可以嵌套;

  • AVG()
  • SUM()
  • MAX()
  • MIN()
  • COUT()
  • GROUP BY:根据某个条件进行分组,如果有多个条件则是某个条件中另一个情况的所有都返回出来;其中非主函数的字段必须出现在GROUP BY中,反之不一定;写在FROM、WHERE后面,LIMIT后面;
  • GROUP BY中使用WITH ROLLUP--把所有组的数据执行组函数-->不可以参与排序
  • HAVING:也是用来过滤数据的(WHERE),但是一般和GROUP BY相关;
  • 如果过滤条件中出现了组(聚合)函数,那么就不能用WHERE,得用HAVING,并且放在GROUP BY后面;当过滤条件时没有聚合函数时,则此过滤条件可以申明在WHERE和HAVING里,但是尽量写在WHERE里---效率更高。
  • HAVING和WHILE的对比:(1).HAVING适用范围更广;(2).WHERE效率更快,先筛选后连接,HAVING先连接后筛选;
  • SQL语句的执行顺序:FROM---WHERE---JOIN...ON---GROUP BY---HAVING---SELECT---ORDER BY---LIMIT;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

MySQL中的函数 的相关文章

  • 在一个后台为MYSQL的网站上集成搜索

    我有一个位置搜索website http www jammulinks com对于一个城市 我们首先收集该城市所有可能类别的数据 如学校 学院 百货商店等 并将其信息存储在单独的表中 因为每个条目除了名称 地址和电话号码外都有不同的详细信息
  • AWS RDS MySql - 如何在设置“公开可用”后允许访问

    刚刚使用默认设置和用户 密码创建了新的 AWS RDS MySql 实例 我也将其设置为publicly available并在此过程中创建新的 VPC 目前无法从我的笔记本电脑连接到此 RDS mysql h endpoint u myu
  • mysql表中的数据非常大。即使 select 语句也需要很多时间

    我正在开发一个数据库 它是一个相当大的数据库 有 13 亿行和大约 35 列 这是我检查表状态后得到的结果 Name Table Name Engine InnoDB Version 10 Row format Compact Rows 1
  • 如何为我的整个 Node.js 应用程序使用相同的 MySQL 连接?

    我有一个app js 我从那里运行我的整个应用程序 在 app js 内部 我require许多文件中都有代码 对于每个文件 我都这样做 var mysql require mysql var mclient mysql createCon
  • 更改mysql数据库表中的日期格式

    大家早上好 只是一个简单的问题 在我现有的 MySql 数据库中 我几乎没有包含日期 的列 目前这些是年 月 日格式 但现在我需要将其全部更改为年 月 日格式 我试过了select date format curdate d m Y 但它不
  • 如何在查询语句之外从mysql查询中获取值?

    这是下面的函数console log function quo value value connection query SELECT role from roles where id 1 function error results fi
  • mysql-connector-c++ - “get_driver_instance”不是“sql::mysql”的成员

    我是 C 的初学者 我认为学习的唯一方法就是接触一些代码 我正在尝试构建一个连接到 mysql 数据库的程序 我在 Linux 上使用 g 没有想法 我运行 make 这是我的错误 hello cpp 38 error get driver
  • 显示和随机化 php 数组

    我有一个显示结果的数组 如下所示 Array 0 gt 71 1 gt 56 2 gt 64 3 gt 82 4 gt 90 5 gt 80 6 gt 65 7 gt 62 8 gt 14 9 gt 3 我的代码是 while row my
  • Mysql带限制的删除语句

    我试图从表中删除行 但出现错误 DELETE FROM chat messages ORDER BY timestamp DESC LIMIT 20 50 我在 50 时收到此错误 您的 SQL 语法有错误 检查与您的 MySQL 服务器版
  • 将IP保存到数据库中

    当用户登录时 我想将他们的 IP 保存在数据库中 我该怎么做呢 MySQL 字段最适合使用哪种类型 获取IP的PHP代码是什么样的 我正在考虑将其用作登录 会话内容的额外安全功能 我正在考虑使用用户现在拥有的 IP 检查用户从数据库登录的
  • MySql 视图脚本中的注释

    可以这样做吗 我尝试过多个 gui mysql workbench navicat toad for mysql 但没有一个保存这样的注释 something important select something else importan
  • “修改列”与“更改列”

    我知道 我们不能使用重命名列MODIFY COLUMN语法 但我们可以使用CHANGE COLUMN syntax 我的问题是 主要用途是什么modify syntax 例如 ALATER TABLE tablename CHANGE co
  • 使用 MYSQL 将 h:mm pm/am 时间格式插入数据库

    我正在尝试将以 h mm am pm 格式写入的时间插入到存储为标准 DATETIME 格式 hh mm ss 的数据库中 但我不知道如何将发布的时间转换为标准格式所以数据库会接受它 这是我到目前为止一直在尝试的 title POST in
  • MySQL NOT IN 来自同一个表中的另一列

    我想运行 mysql 查询来选择表中的所有行films其中的值title该列不存在于另一列的所有值中的任何位置 collection 这是我的表格的简化版本 其中包含内容 mysql gt select from films id titl
  • MySQL InnoDB 约束不起作用

    我偶然发现 innoDB 约束的奇怪行为 但找不到原因 我有包含数据的表格 下面列出了它们的结构 CREATE TABLE contents id int 10 unsigned NOT NULL AUTO INCREMENT title
  • 如何使用 MySQL 选择有特定值的 2 个连续行?

    我正在构建一个系统 该系统应该显示学生何时连续缺席两天 例如 此表包含缺勤情况 day id missed 2016 10 6 1 true 2016 10 6 2 true 2016 10 6 3 false 2016 10 7 1 tr
  • 研究MySQL、SQLite源码了解RDBMS实现[关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我知道实现数据库是一个很大的话题 但我想通过研究数据库系统的源代码来基本了解数据库系统的工作原理 例如
  • 在 MySQL 数据库中保持 TEXT 字段唯一的最佳方法

    我想让 TEXT 字段的值在我的 MySQL 表中唯一 经过小型研究 我发现由于性能问题 每个人都不鼓励在 TEXT 字段上使用 UNIQUE INDEX 我现在想用的是 1 创建另一个字段来包含 TEXT 值的哈希值 md5 text v
  • 奇怪的 MySQL Python mod_wsgi 无法连接到 'localhost' (49) 上的 MySQL 服务器问题

    StackOverflow上也有类似的问题 但我还没有发现完全相同的情况 这是在使用 MySQL 的 OS X Leopard 机器上 一些起始信息 MySQL Server version 5 1 30 Apache 2 2 13 Uni
  • phpActiveRecord 日期时间格式不正确

    当尝试使用 phpActiveRecord 在表中创建记录时 出现以下错误 Invalid datetime format 1292 Incorrect datetime value 2013 06 20 11 59 08 PDT for

随机推荐

  • Linux系统ftp服务器搭建

    1 安装ftp yum y install vsftpd 2 启动ftp服务 xff1a systemctl restart vsftpd 查看网络端口使用 xff1a netstat tunlp 可以看到vsftp对应使用的21端口 3
  • UltraVNC 使用方法详细说明

    介绍 VNC Virtual Network Console 是虚拟网络控制台的缩写 UltraVNC 是客户端 服务器软件 xff0c 允许你经由 TCP IP 连线 xff08 也就是主机都在同一网络环境下 xff09 xff0c 控制
  • IE浏览器设置兼容性

    在访问一些老旧的网站时 xff0c 会出现图像等画面显示不全或不显示的现象 xff0c 可尝试设置一下浏览器的兼容性视图 打开IE浏览器 xff0c 点击 设置 钮 选择兼容性视图设置 2 在添加网站窗口 xff0c 填入对应网站网址 xf
  • windows10 更改系统默认程序

    更改系统默认打开程序 点击wind10系统左下角windows图标 2 点击 设置 3 在设置界面选择 应用 4 在侧边栏选择 默认应用 5 在默认应用中可修改系统应用的默认打开软件
  • 打印机维护

    打印机使用过程中大致会有两种问题 一 硬件问题 xff1a 等耗材更换 xff1a 墨水 xff0c 碳粉 xff0c 硒鼓 xff0c 墨盒 1 喷墨打印机 xff1a 主要就是字车 搓纸组件和横向移动就是x轴 xff1b 2 针式打印机
  • I2C总线和触摸屏驱动移植实战-linux驱动开发第9部分-朱有鹏-专题视频课程

    I2C总线和触摸屏驱动移植实战 linux驱动开发第9部分 9306人已学习 课程介绍 本课程是linux驱动开发的第9个课程 xff0c 主要内容是linux的I2C子系统以及电容触摸屏驱动的移植 学习本课程的核心点在于I2C子系统 xf
  • 【C语言和C++】实现线程池

    目录 一 线程池总体结构 二 线程数组 三 添加任务队列 四 管理者线程 五 销毁 六 其他子函数 七 测试代码 附录 xff08 C和C 43 43 代码 xff09 最后有全部代码 xff0c 急需可以跳过 线程池是一种概念 xff0c
  • 【C语言】算法学习·哈希算法全解

    目录 C中的哈希 它能做什么 xff1f 快吗 xff1f 是图书馆吗 xff1f C C 43 43 和平台 BSD 许可 下载 uthash 获得帮助 贡献 包括的额外内容 历史 可以直接从此处开始阅读 哈希结构 钥匙 哈希句柄 关于记
  • 小知识·PD充电协议

    目录 PD充电器硬件结构 pd充电协议是什么 pd协议快充什么意思 PD快充协议优势 USB PD快速充电通信原理 PD充电器硬件结构 典型的手机充电器的硬件结构 xff08 以基于Dialog方案的高通QC2 0快充协议为例 xff09
  • 小知识·typec耳机原理

    目录 数字耳机和模拟耳机 手机中模拟和数字耳机的差异 typec耳机介绍 数字耳机和模拟耳机 模拟耳机即我们的常见的3 5mm接口的耳机 xff0c 包括左右声道 xff0c 地或者mic xff0c 如左图 数字耳机 右图 包含一个usb
  • 小知识·adb安装和使用方法

    目录 一 adb是什么 xff1f 二 adb有什么作用 三 如何启用adb调试 四 如何判断设备连接正常 五 如何下载安装adb 1 adb下载地址 xff1a 2 按装步骤 六 adb命令大全 1 查看设备 2 Adb应用管理 3 安装
  • 【C++】搭建HTTP服务器

    目录 项目介绍 网络协议栈介绍 协议分层 数据的封装与分用 HTTP相关知识介绍 HTTP的特点 URL格式 URI URL URN HTTP的协议格式 HTTP的请求方法 HTTP的状态码 HTTP常见的Header CGI机制介绍 CG
  • Linux命令·netstat

    netstat命令用于显示与IP TCP UDP和ICMP协议相关的统计数据 xff0c 一般用于检验本机各端口的网络连接情况 netstat是在内核中访问网络及相关信息的程序 xff0c 它能提供TCP连接 xff0c TCP和UDP监听
  • Linux命令·ss

    ss是Socket Statistics的缩写 顾名思义 xff0c ss命令可以用来获取socket统计信息 xff0c 它可以显示和netstat类似的内容 但ss的优势在于它能够显示更多更详细的有关TCP和连接状态的信息 xff0c
  • LeetCode·每日一题·2437. 有效时间的数目·模拟

    作者 xff1a 小迅 链接 xff1a https leetcode cn problems number of valid clock times solutions 2262448 mo ni zhu shi chao ji xian
  • john破解用户密码和防破解

    目录 一 系统弱口令检测 二 防止暴力破解 一 系统弱口令检测 Joth the Ripper xff0c 简称JR 一款开源的密码分析工具 xff0c 支持字典式的暴力破解 通过对shadow文件的口令分析 xff0c 可以检测密码强度
  • 块设备驱动介绍-linux驱动开发第10部分-朱有鹏-专题视频课程

    块设备驱动介绍 linux驱动开发第10部分 3265人已学习 课程介绍 本课程是linux驱动开发的第10个课程 xff0c 主要内容是linux的块设备驱动的介绍 xff0c 首先详细讲了块设备驱动和字符设备驱动的核心差异 xff0c
  • Linux各个系统版本及区别(Ubuntu,CentOS..)

    一 概览 Linux的版本号分为两部分 xff1a 内核版本和发行版本 内核版本 xff1a 不包含外围程序GNU程序库和工具 xff0c 命令行shell xff0c 图形界面的X Window系统和相应的桌面环境等 发行版本 xff1a
  • keil5编译报错问题

    keil5一开始编译文件总是报错 error 3092 anonymous unions are only supported in gnu mode or when enabled with pragma anon unions 错误 x
  • MySQL中的函数

    1 单行函数和多行函数 xff08 聚合函数 分组函数 xff09 xff1a 只对一行进行变换 每行返回一个结果 xff1b 1 单行函数 xff1a a 数值函数 xff1a 基本函数 xff1a ABS x 绝对值 SIGN x 0