mysql内置函数查询

news2024/10/9 19:30:56
  1. 聚合函数 :聚合函数查询时纵向查询,它是对一列的 值进行计算,然后返回一个单一的值,聚合函数会忽略空值。
namedescription
avg()返回参数的平均值
bit_and()按位返回and
bit_or()按位返回or
bit_xor()按位返回异或
count()返回返回的指定列不为null的行数
count(distinct)返回去重后的计算
group_concat()返回连接的字符串
json_array()将结果集作为单个的json数组返回
json_object()将结果集作为单个json对象返回
max()返回最大值,如果指定列是字符串类型,则按字符串排序运算
min()返回最小值,如果指定列是字符串类型,则按字符串排序运算
sum()返回数值和,如果指定列类型不是数值类型,则返回结果为0
std()返回样本的标准差
stddev()返回样本的标准差
stddev_pop()返回样品的标准差
  • 语法

    select count(id) from table_name;
    select count(id) from product where price > 200; -- 查询价格大于200的商品总条数
    select sum(price) from product where category_id = 'c001'; -- 查询商品类别为'c001'的所有商品价格总和
    
  • 聚合函数对null值的处理

    – count():如果count函数的参数为*,即count(*),则统计所有记录的个数,如果参数为字段,则不统计包含null的值的记录的个数。

    – sum()和avg():他俩忽略null值的存在,就好像该记录不存在。

    – max()和min():同样忽略null的存在。

  • group_concat():

    – 函数首先根据group by指定的列进行分组,并且用分隔符分隔,将同一个分组中的值连接起来,返回一个字符串结果.

    – 语法:

    group_concat([distinct]) 字段名 [order by 排序字段 sac/desc] [separator '分隔符']
    
    • 使用distinct可以排除重复值;
    • 如需要对结果中的值进行排序,可以使用prder by子句;
    • separator 是一个字符串值,默认为逗号。

    – 示例:

    • 创建数据库demo1,并在demo1中创建员工表emp、插入数据

      create database demo1;
      use demo1;
      
      create table emp(
      	emp_id int primary key auto_increment comment '员工编号',
      	emp_name varchar(16) not null default '' comment '员工姓名',
      	salary decimal(8,2) not null default 0 comment '员工工资',
      	department char(16) not null default '' comment '所属部门'
      	)charset=utf8;
      	
      insert into emp(emp_name, salary, department) values('金金',5000,'财务'),
      ('王非',5800,'财务'),
      ('李刚',6200,'财务'),
      ('小刘',5700,'生产'),
      ('王鹏',6700,'生产'),
      ('张烟',5200,'生产'),
      ('刘云',7500,'商务'),
      ('许新',7200,'商务'),
      ('许新',7800,'商务');
      

    ​ – 将所有员工的名字合并成一行

    select group_concat(emp_name) from emp;
    

在这里插入图片描述

​ – 指定分隔符合并

select group_concat(emp_name separator '--') from emp;

在这里插入图片描述

​ – 指定排序方式和分隔符

select group_concat(emp_name order by salary separator '--') from emp;

在这里插入图片描述

– 将同一部门的员工拼接在一行

select department, group_concat(emp_name order by salary separator '--') from emp group by department;

在这里插入图片描述
2. 数值计算类函数

namedescriptionexample
abs(x)返回x的绝对值select ABS(-1); --返回 1
ceil(x)向上取整select CEIL(1.5); --返回2
floor(x)向下取整select FLOOR(1.5); --返回1
GREATEST(exp1,exp2,exp3,…)返回列表中的最大值select GREATEST(3,24,38,5);
– 返回38
LEAST(exp1,exp2,exp3,…)返回列表中的最小值select LEAST(3,24,38,5);
– 返回3
select LEAST(‘Google’,‘Runoob’,'Apple);
– 返回 Apple
max(expression)返回expression中的最大值select max(salary) from emp;
– 返回emp表中salary字段最大的值(最高工资)
min(expression)返回expression中的最小值select min(salary) from emp;
– 返回emp表中salary字段最小的值(最低工资)
mod(x,y)返回x/y的模select mod(5,2); --返回5除以2的余数
pi()返回π(30141593)select pi(); --返回3.141593
power(x,y)返回x的y次方select pow(2,3); --返回8
rand()返回0到1内的随机数select rand()
round(x,y)将x四舍五入保留y位小数select round(3.1415,3); --返回3.142
select round(3.1415); --返回3
truncate(x,y)返回x保留y位小数的截断值,
省略y则去掉所有小数部分,
如果 y 为正数,那么小数点后 y 位将被截断;
如果 y 为负数,则会从左边开始截断
select truncate(3.1415,3); --返回3.141
select truncate(3.1415); --返回3
select truncate(3141.5); --返回3100
  1. 日期计算类函数

    namedescription
    curdate()返回当前日期
    curtime()返回当前时间
    now()返回当前日期和时间
    unix_timestamp(date)返回日期date的unix时间戳
    from_unixtime返回unix时间戳的日期值
    week(date)返回日期date为一年的第几周
    year(date)返回日期date的年份
    hour(time)返回time的小时值
    minute(time)返回time的分钟值
    monthname(date)返回date的月份名
    date_format(date,fmt)返回按字符串fmt格式化日期date值
    date_add(date,interval expr type)返回一个日期或时间值加上一个时间间隔 的时间值
    datadiff(exper,exper2)返回起始时间expr和结束时间expr2之间的天数
  2. 字符串相关函数

    namedescriptionexample
    cancat(s1,s2,…sn)无分隔符连接字符串s1,s2,…snselect cancat(‘hello’,‘world’); --返回helloworld
    select cancat(c1,c2) from tabalename;
    cancat_ws(x,s1,s2,…sn)使用分隔符x连接字符串s1,s2,…snselect cancat(‘–’,hello’,‘world’); --返回hello–world
    char_length(str)获取字符串str中字符个数select char_length(‘hello’); --5
    select char_length(‘你好吗’);–3
    field(s,s1,s2,…)返回s在字符串列表(s1,s2,…)中第一次出现的位置select field(‘d’,‘a’,‘b’,‘c’,‘d’,‘e’); --4
    length(str)获取字符串的字节长度,一个英文字符占1个字节,
    mysql默认的utf8编码中一个汉字占3个字节
    select length(‘hello’); --5
    select length(‘你好吗’); --9
    insert(str,x,y,instr)将字符串str中从x位置开始,y个长度的字符替换为instr
    lower(str)将字符串str转为小写
    upper(str)将字符串str转为大写
    left(str,x)返回字符串str最左边的x个字符
    right(str,x)返回字符串str中最右边的x个字符
    lpad(str,n,pad)用pad在str左边进行填充直到字符串达到n个字符长度,
    如果字符串本身的长度已经等于或超过指定的长度,则不做任何改变
    rpad(str,n,pad)用pad在str左边进行填充直到字符串达到n个字符长度,
    如果字符串本身的长度已经等于或超过指定的长度,则不做任何改变
    ltrim(str)去掉字符串str左边的空格
    rtrim(str)去掉字符串str右边的空格
    trim(str)去掉字符串str左右两边的空格
    repeat(str,x)返回str重复x次的结果
    replace(str,a,b)用b替换str中所有的a
    strcmp(s1,s2)比较s1和s2
    substring(str,x,y)返回在str中从x位置开始y个字符长度的子串
    position(x in y)返回字符串x在Y中第一次出现的位置select positon(‘opq’,‘abcopqefgopq’); --4
  3. mysql中常用的其他函数

    namedescription
    datebase()返回当前数据库名
    version()返回当前数据库版本
    user()返回当前登录的用户名
    inet_aton(ip)返回ip地址的数字表示
    inet_ntoa(num)返回数字代表的ip地址
    password(str)返回字符串str的加密后的字符串
    md5()返回字符串str的md5的值
    ifnull(column,0)如果column的值为null,则将其按0处理,否则等于其值本身

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2199819.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Uos-Uos使用Remmina通过VNC远程连接到另一台Uos

Uos使用Remmina通过VNC远程连接到另一台Uos 一、概述二、对端机器安装 VNC服务器三、本机远程对端服务器 一、概述 这里记录一下使用Remmina通过VNC远程连接到另一台Uos系统,环境均是Linux操作系统 本机ip:10.8.11.64 对端ip:10.20.42.17 …

进程的状态的理解(概念+Linux)

文章目录 进程的状态并行和并发物理和逻辑 时间片进程具有独立性等待的本质运行阻塞标记挂起等待 Linux下的进程状态(一)运行状态(R - running)(二)睡眠状态(S - sleeping)&#xff…

银河麒麟V10中启用SELinux

银河麒麟V10中启用SELinux 1、启用SELinux1.1 切换到strict模式1.2 注意 2、验证SELinux状态 💖The Begin💖点点关注,收藏不迷路💖 在银河麒麟高级服务器操作系统V10中,可以使用security-switch工具来启用SELinux&…

springboot邮件群发功能的开发与优化策略?

springboot邮件配置指南?如何实现spring邮件功能? SpringBoot框架因其简洁、高效的特点,成为了开发邮件群发功能的理想选择。AokSend将深入探讨SpringBoot邮件群发功能的开发过程,并提出一系列优化策略,以确保邮件发送…

香山南湖架构分析--FE

总体架构 分支预测和指令缓存,通过FTQ达到解耦的目的;FTQ将请求送给ICache,进行取指;取出的指令码通过预译码初步检查分支预测的错误并及时冲刷预测流水线;检查后的指令送入指令缓冲并传给译码模块,最终形成后端的指令…

抓住最后机会!24年PMP认证报名今日开始,流程详解助你成功

为减少同一时间集中报名造成的网络拥堵,本次报名将采取以下形式分地区、分批次开放报名。 一、考试安排 考试时间:2024年11月30日 第一批报名城市 2024年10月9日10:00至10月16日16:00,以下城市的考点将开通报名&…

城市交通场景分割系统源码&数据集分享

城市交通场景分割系统源码&数据集分享 [yolov8-seg-C2f-Faster&yolov8-seg-GhostHGNetV2等50全套改进创新点发刊_一键训练教程_Web前端展示] 1.研究背景与意义 项目参考ILSVRC ImageNet Large Scale Visual Recognition Challenge 项目来源AAAI Glob…

FineReport打开报错“配置数据库出错“怎么解决?

配置数据库被锁住,是否重置?将在embed文件夹生成备份并重置 我直接用管理员身份证打开就完美解决了!

fmql之Linux下AXI GPIO、MISC

AXI GPIO 正点原子第41章。 要使用AXI GPIO,就要在vivado工程中,添加相关的IP。 然后dts会自动生成相关的AXi GPIO的设备树内容。 MISC 正点原子第42章。 /***************************************************************Copyright © ALIENTE…

C++--特殊类的设计

下面所实现类的源码:源码链接 不可拷贝类 在C中,我们有时候需要设计一些不可拷贝的类,即不允许用户通过拷贝构造函数或赋值操作来创建该类的副本。这样设计通常是为了确保资源(如文件描述符、窗口句柄等)的唯一性&…

(JAVA)熟悉队列的进阶结构 - 优先队列

1. 优先队列 ​ 普通队列是一种先进先出的数据结构,元素在队列尾追加,而从队列头删除。 ​ 在某些情况下,我们可能需要找出队列中的最大值或者最小值,例如使用一个队列保存计算机的任务,一般情况下计算机的任务都是有…

FTP连接池与多线程上传下载算法实现(C语言)

FTP连接池与多线程上传下载算法实现(C语言) 设计思路伪代码示例C代码示例为了避免多线程环境下FTP连接池在故障重连时导致的竞争条件和core dump问题,我们需要设计一个精细的连接池管理系统,确保在连接重连时,其他线程不会尝试使用该连接。以下是一个简化的设计思路和示例…

开源计算器应用的全面测试计划:确保功能性和可靠性

✅作者简介:2022年博客新星 第八。热爱国学的Java后端开发者,修心和技术同步精进。 🍎个人主页:Java Fans的博客 🍊个人信条:不迁怒,不贰过。小知识,大智慧。 💞当前专栏…

Navicat图形化设置字段unique

点击索引,选择字段和索引类型即可。

前端学习笔记-JS进阶篇-04

1、深浅拷贝 开发中经常需要复制一个对象。如果直接用赋值会有下面问题: 首先浅拷贝和深拷贝只针对引用类型 1.1、浅拷贝 浅拷贝:拷贝的是地址 常见方法: 1.2.1、 拷贝对象:Object.assgin() / 展开运算符 {...obj} 拷贝对象…

目标检测指标:AP,mAP

目标检测指标:AP,mAP 论文:A Survey on Performance Metrics for Object-Detection Algorithms 文章目录 目标检测指标:AP,mAP摘要1 介绍2 主要的性能指标TP、FP、FNP、RAP A P 11 AP_{11} AP11​ A P a l l AP_{all}…

金慧-综合管理信息系统 LoginBegin.aspx SQL注入复现

0x01 产品描述: 金慧-综合管理信息系统(以下简称“金慧综合管理系统”)是上海金慧软件有限公司基于多年行业系统研发和实施经验,为各类企业量身定制的一套综合性管理解决方案。该系统旨在通过信息化手段,提升企业的管理…

openstack-swift.18421165

对象存储 swift 对象存储 是一种用于存储和管理大量数据的系统。类似于一个超大云盘。可以存储各种文件。(照片,视频,文档等等)。与传统的文件存储不同,对下个存储不关心文件的目录结构和层级关系,而是将每…

嵌入式仿真实验教学平台

一、基本介绍 嵌入式仿真实验教学平台:嵌入式硬件仿真、线上实验教学、虚实结合场景实训 二、案例 AVG场景实训 智能家居场景实训 智慧农业场景实训 智慧物流场景实训

Python【修炼2】

欢迎来到Cefler的博客😁 🕌博客主页:折纸花满衣 🏠个人专栏:Python 目录 👉🏻map👉🏻lambda👉🏻datetime日期输出格式 👉&#x1f3fb…