当前位置: 首页 > news >正文

SQL的函数类型

目录

一、聚合函数

二、数值型函数

三、字符串函数

四、日期函数

五、流程控制函数


一、聚合函数

定义:聚合函数是指对一组值进行运算,最终返回是单个值,也可以被称为组合函数。

COUNT()     统计目标行数量的函数
AVG()		求平均值
SUM()		求合
MIN()		求最小值
MAX()		求最大值

备注:除COUNT函数之外,其他的聚合函数都会忽略NULL值

补充知识点:COUNT(*) 和 COUNT(1) 和 COUNT(字段名) 三者区别

COUNT(*)  和 COUNT(1) 
当表数据量较大时,对表进行检索,count1  时效要比  count*  慢
当表数据量较小时,对表进行检索,count1  时效要比  count*  快
count1 聚索引状 
count* 自动选择索引
结论:这两个 通常 不予比较
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
COUNT(1)  和 COUNT(字段) 
count1会统计表中所有的记录数,包含了字段为NULL的记录
count字段会忽略当前字段中出现null的情况,如果出现null值,不统计这条记录三者区别
1.count(*) 包含了所有列,相当于所有行记录,在统计结果时不忽略NULL
2.count(1) 包含了所有的忽略列,用1表示代码行,在统计结果时不忽略NULL
3.count(字段) 只会包含具有列名的那一列,在统计结果时会忽略NULL在执行效率上
如果列名<===>主键列 
count(字段)>count(*)>count(1)
如果列名!<===>主键列
count(*)||count(1)>count(字段)
如果表多列都无主键
count(1)>count(*)>count(字段)执行效率最高的
SELECT COUNT(主键列) .....

二、数值型函数

函数名称作用
ABS()求绝对值
SQRT()求平方根
POW()或POWER()返回参数的幂次方
MOD()求余数
CEIL()或CEILING()向上取整
FLOOR()向下取整
ROUND()四舍五入
RAND随机生成一个数字 (0-1) 之间

eg:

#随机生成 0-----99999的数字
#1随机生成一个数字  (0-1)   之间
SELECT RAND();
#2将生成的随机数*100000
SELECT RAND()*100000;
#3对结果进行FLOOR向下取整
SELECT FLOOR(RAND()*100000);

三、字符串函数

函数名称作用
LENGTH()返回字符串长度
CHAR_LENGTH()返回字符串的字节长度
CONCAT()合并字符串长度,返回结果为连接后新生成的字符串,参数可以是一个或多个
INSERT(str,pos,len,newstr)替换字符串函数
LOWER()将字符串内所有的字符转小写
UPPER()将字符串中所有的字符转大写
LEFT(str,len)从字符串左侧进行截取,返回字符串左边若干长度的字符
RIGHT(str,len)从字符串右侧进行截取,返回字符串右边若干长度的字符
TRIM()删除字符串两次空格
REPLACE(str,l1,l2)字符串替换函数,返回替换后的新字符串
SUBSTRING(str,s,len)截取字符串,返回从指定位置开始指定长度的字符串
REVERSE()字符串逆序函数,返回余元字符串顺序相反的字符串
STRCMP(str1,str2)比较两个表达式的顺序,如果str1小于str2返回 -1 0相等 1大于
LOCATE(substr,str)返回第一次出现目标字符串的索引位
INSTR(substr,str)返回最后一次出现目标字符串的索引位

四、日期函数

函数名称作用
CURDATE() CURRENT_DATE() CURRENT_DATE返回当前系统的日期值
CURTIME() CURRENT_TIME() CURRENT_TIME返回当前系统的时间
NOW() SYSDATE()返回当前系统的日期及时间
DATE(PAREM)返回指定对象的日期部分
TIME(PAREM)返回指定对象的时间部分
YEAR(PAREM)返回指定对象的年份(1970--2069)
MONTH(PAREM)返回指定对象的月份
DAY(PAREM)返回指定对象的日期
DAYOFWEEK(PAREM)获取指定日期对应的一周的索引位置值,也就是星期数,注意周日是开始日,为1
WEEK(PAREM)获取指定日期是一年中的第几周,返回值的范围是否为 0〜52
DATEDIFF(PAREM,PAREM)返回两个日期之间的相差天数

eg:

#查询A学生和当前时间的天数差
SELECT DATEDIFF(NOW(),(SELECT BornDate FROM student WHERE StudentName = '张三'));#根据生日查询其年龄
SELECT FLOOR(DATEDIFF(NOW(),(SELECT BornDate FROM student WHERE StudentName = '张三'))/365)  AS "时差";

五、流程控制函数

函数名称作用
IF(条件,结果1,结果2)判断,如果条件=true 返回结果1 反之 返回结果2
CASE搜索函数
IFNULL(value1,value2)判断,如果value1不为NULL 则函数返回值就是value1 反之 返回value2

eg:

#示例1
SELECT IF(12,2,3);
SELECT IF(1<2,'YES','NO');
SELECT IF(STRCMP('TEST001','TEST001'),'NO','YES');
条件内  结果 true(非0的自然数)    false(0)#示例2 分别显示学生信息,有邮箱和没有邮箱的备注信息
SELECT StudentName "学生姓名",IF(Email IS NULL,'没有邮箱','存在邮箱') "是否具有邮箱"
FROM student;#示例3 使用IFNULL,函数入参两个,如果入参不为空则返回第一个值,否则返回第二个值
SELECT IFNULL(1,2),IFNULL(NULL,2),IFNULL(9/3,2);
SELECT StudentName "学生姓名",IFNULL(Email,'没有邮箱') "邮箱地址"
FROM student;#示例4
CASE<表达式>WHEN<值1>  THEN<结果1>WHEN<值2>  THEN<结果2>WHEN<值3>  THEN<结果3>WHEN<值4>  THEN<结果4>
ELSE <默认结果>
END
#需求 查询成绩表  限定考试科目 高等数学-1 
#	 要求如下   如果学号是1   显示成绩为原成绩
#	 要求如下   如果学号是2   显示成绩为原成绩的1.5倍
#	 要求如下   如果学号是3   显示成绩为原成绩的2倍
#	 要求如下   其他学生成绩显示原成绩#1-查出高数-1的科目编号
SELECT SubjectNo FROM subject WHERE SubjectName = '高等数学-1';
#2-通过科目编号找到学生的考试成绩
SELECT * FROM result WHERE SubjectNo = (SELECT SubjectNo FROM subject WHERE SubjectName = '高等数学-1');
#3-通过CASE语法修改并查看参数
SELECT StudentNo "学号",StudentResult "原成绩",
CASE StudentNoWHEN 1 THEN StudentResult*1WHEN 2 THEN StudentResult*1.5WHEN 3 THEN StudentResult*2ELSE StudentResultEND "修改后的成绩"
FROM result 
WHERE SubjectNo = (SELECT SubjectNo FROM subject WHERE SubjectName = '高等数学-1');

相关文章:

SQL的函数类型

目录 一、聚合函数 二、数值型函数 三、字符串函数 四、日期函数 五、流程控制函数 一、聚合函数 定义&#xff1a;聚合函数是指对一组值进行运算&#xff0c;最终返回是单个值&#xff0c;也可以被称为组合函数。 COUNT() 统计目标行数量的函数 AVG() 求平均值 SU…...

TSINGSEE青犀视频智慧电梯管理平台,执行精准管理、提升乘梯安全

一、方案背景 随着城市化进程的不断加快&#xff0c;我国已经成为全球最大的电梯生产和消费市场&#xff0c;电梯也成为人们日常生活中不可或缺的一部分。随着电梯数量的激增&#xff0c;电梯老龄化&#xff0c;维保数据不透明&#xff0c;物业管理成本高&#xff0c;政府监管…...

VMware:在部分链上无法执行所调用的函数,请打开父虚拟磁

VMware:在部分链上无法执行所调用的函数&#xff0c;请打开父虚拟磁 问题&#xff1a;VMware给虚拟机扩展硬盘容量&#xff0c;提示&#xff1a;在部分链上无法执行所调用的函数&#xff0c;请打开父虚拟磁。原因&#xff1a;是因为你的虚拟磁盘文件是分多个文件存储的&#xf…...

【数据结构 08】红黑树

一、概述 红黑树&#xff0c;是一种二叉搜索树&#xff0c;每一个节点上有一个存储位表示节点的颜色&#xff0c;可以是Red或Black。 通过对任何一条从根到叶子的路径上各个节点着色方式的限制&#xff0c;红黑树确保没有一条路径会比其他路径长上两倍&#xff0c;因而是接进…...

【百度Apollo】自动驾驶规划技术:实现安全高效的智能驾驶

&#x1f3ac; 鸽芷咕&#xff1a;个人主页 &#x1f525; 个人专栏:《linux深造日志》《粉丝福利》 ⛺️生活的理想&#xff0c;就是为了理想的生活! ⛳️ 推荐 前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下…...

《C程序设计》上机实验报告(五)之一维数组二维数组与字符数组

实验内容&#xff1a; 1.运行程序 #include <stdio.h> void main( ) { int i,j,iRow0,iCol0,m; int x[3][4]{{1,11,22,33},{2,28,98,38},{3,85,20,89}}; mx[0][0]; for(i0;i<3;i) for(j0;j<4;j) if (x[i][j]>m) { mx[i][j]; iRowi…...

【BUG】联想Y7000电池电量为0且无法充电解决方案汇总

因为最近火灾很多&#xff0c;所以昨天夜晚睡觉的时候把插线板电源关掉了&#xff0c;电脑也关机了。 各位一定要注意用电安全&#xff0c;网上的那些事情看着真的很难受qvq。 第二天早上起床的时候一看发现电脑直接没电了&#xff0c;插上电源后也是显示 你一定要冲进去啊(ू˃…...

centos7常用命令之安装插件2

centos7安装插件1 7、kibana 【启动kibana,需要调整这个配置文件(/opt/kibana-6.3.0/config/kibana.yml)的一处ip地址,因为每次虚拟机的ip地址可能会有所不同&#xff0c; 同时访问页面地址的ip:5601时,ip地址也对应修改】 1.解压缩包 cd /opt/ tar -xvf kibana-6.3.0-linux-x…...

MATLAB - 仿真单摆的周期性摆动

系列文章目录 前言 本例演示如何使用 Symbolic Math Toolbox™ 模拟单摆的运动。推导摆的运动方程&#xff0c;然后对小角度进行分析求解&#xff0c;对任意角度进行数值求解。 一、步骤 1&#xff1a;推导运动方程 摆是一个遵循微分方程的简单机械系统。摆最初静止在垂直位置…...

Pandas进阶--map映射,分组聚合和透视pivot_table详解

文章目录 1.Pandas的map映射&#xff08;1&#xff09;映射&#xff08;2&#xff09;map充当运算工具 2.数据分组和透视&#xff08;1&#xff09;分组统计 - groupby功能 是pandas最重要的功能&#xff08;2&#xff09;聚合agg 3.透视表pivot_table&#xff08;1&#xff09…...

Visual Studio 和Clion配置Cocos2d-x环境

Visual Studio 和Clion配置Cocos2d-x环境 我就不贴图片的&#xff0c;懒得上传图床。懒。开发环境: ​ 系统: Window11 ​ 编译器: CMake MSVC ​ 开发工具&#xff1a;Clion or Visual Studio ​ 请自行配置好&#xff0c;Python2.7&#xff0c;和Cmake ​ Cocos2d-x下载…...

【百度Apollo】本地调试仿真:加速自动驾驶系统开发的利器

&#x1f3ac; 鸽芷咕&#xff1a;个人主页 &#x1f525; 个人专栏: 《linux深造日志》《粉丝福利》 ⛺️生活的理想&#xff0c;就是为了理想的生活! ⛳️ 推荐 前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下…...

ztest中ddof起什么作用

⭐️ statsmodels 中 ztest 基本使用 statsmodels 也是一个强大的统计分析库&#xff0c;提供了丰富的统计模型和检验功能。对于 Z 检验&#xff0c;statsmodels 提供了 ztest 函数。 以下是使用 statsmodels 进行 Z 检验的示例&#xff1a; from statsmodels.stats.weights…...

linux 主机无法联网问题

主机不能联网 一 查看当前ip ping路由 ifconfig wlan0 wlan0: flags4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500inet 192.168.2.78 netmask 255.255.255.0 broadcast 192.168.2.255ping 192.168.2.1查看是否能ping通 二 查看路由表 route -n Destination G…...

2024/1/27 备战蓝桥杯 1-1

目录 求和 0求和 - 蓝桥云课 (lanqiao.cn) 成绩分析 0成绩分析 - 蓝桥云课 (lanqiao.cn) 合法日期 0合法日期 - 蓝桥云课 (lanqiao.cn) 时间加法 0时间加法 - 蓝桥云课 (lanqiao.cn) 扫雷 0扫雷 - 蓝桥云课 (lanqiao.cn) 大写 0大写 - 蓝桥云课 (lanqiao.cn) 标题…...

支持下一代网络IpV6的串口服务器,IpV6串口485接口转网口

和IPv4比较&#xff0c;IPv6有两个极具吸引力的特点&#xff1a;一个是IPv6采用的128位地址格式&#xff0c;而IPv4采用32位的地址格式&#xff0c;因此IPv6使地址空间增大了296&#xff1b;另一个是IPv6物联网数据业务具有更强的支持能力&#xff0c;成为未来物联网的重要协议…...

uniapp H5 实现上拉刷新 以及 下拉加载

uniapp H5 实现上拉刷新 以及 下拉加载 1. 先上图 下拉加载 2. 上代码 <script>import DragableList from "/components/dragable-list/dragable-list.vue";import {FridApi} from /api/warn.jsexport default {data() {return {tableList: [],loadingHi…...

网络工程师必学知识:2、IPv4和IPv6地址划分

网络工程师必学知识&#xff1a;2、IPv4和IPv6地址划分 1.概述&#xff1a;2.IPv4&#xff1a;地址划分&#xff1a;有类划分&#xff0c;无类划分。一、有类划分&#xff1a;分为5类。ABCDE&#xff0c;掩码分别位8、16、24、28、27取值范围&#xff1a;出类别bit不变&#xf…...

Rust - 变量

不管学什么语言好像都得从变量开始&#xff0c;不过只需要懂得大概就可以了。 但在Rust里不先把变量研究明白后面根本无法进行… 变量绑定 变量赋值❌ 变量绑定✔️ Rust中没有“赋值”一说&#xff0c;而是称为绑定。 int a 3; //C中的变量赋值 a 3; //python中的…...

【Linux】压缩脚本、报警脚本

一、压缩搅拌 要求&#xff1a; 写一个脚本&#xff0c;完成如下功能 传递一个参数给脚本&#xff0c;此参数为gzip、bzip2或者xz三者之一&#xff1b; (1) 如果参数1的值为gzip&#xff0c;则使用tar和gzip归档压缩/etc目录至/backups目录中&#xff0c;并命名为/backups/etc…...

Qwen3-ASR-0.6B开发者案例:集成至CRM系统实现通话内容自动归档

Qwen3-ASR-0.6B开发者案例&#xff1a;集成至CRM系统实现通话内容自动归档 1. 项目背景与需求场景 在现代企业客户关系管理&#xff08;CRM&#xff09;系统中&#xff0c;通话录音是宝贵的业务数据资源。销售团队的客户沟通、客服中心的问题解决、业务洽谈的重要细节——所有…...

别再写重复代码了!手把手教你用StringRedisTemplate搞定Shop-Type缓存(附完整代码)

告别重复劳动&#xff1a;基于StringRedisTemplate的Shop-Type缓存通用方案设计 在电商系统开发中&#xff0c;店铺分类(Shop-Type)这类基础数据的缓存处理几乎每个项目都会遇到。许多开发者习惯在每个Service中重复编写相似的缓存逻辑——序列化、反序列化、缓存判空、数据库回…...

零基础快速入门前端DOM 节点操作核心知识点及蓝桥杯 Web 应用开发考点解析(可用于备赛蓝桥杯Web应用开发)

DOM&#xff08;文档对象模型&#xff09;是 JavaScript 操作网页内容的核心接口&#xff0c;而节点操作则是 DOM 编程的基础&#xff0c;是蓝桥杯 Web 应用开发赛道的必考核心考点&#xff0c;无论是动态交互效果、数据渲染还是功能实现&#xff0c;都离不开节点的获取、增删、…...

DeOldify图像上色服务完整流程:基于Flask的Web服务部署与使用

DeOldify图像上色服务完整流程&#xff1a;基于Flask的Web服务部署与使用 1. 项目概述与核心功能 DeOldify图像上色服务是一个基于深度学习技术的Web应用&#xff0c;能够将黑白或褪色的老照片自动转换为彩色图像。这个项目通过简单的Web界面&#xff0c;让用户无需任何技术背…...

如何彻底解决Zotero-GPT集成中的AI调用故障:从诊断到优化的完整技术指南

如何彻底解决Zotero-GPT集成中的AI调用故障&#xff1a;从诊断到优化的完整技术指南 【免费下载链接】zotero-gpt GPT Meet Zotero. 项目地址: https://gitcode.com/gh_mirrors/zo/zotero-gpt Zotero-GPT项目作为文献管理工具与大型语言模型的深度集成方案&#xff0c;为…...

Android开发工具链:Git、RxJava、Dagger2的实战应用

Android开发工具链&#xff1a;Git、RxJava、Dagger2的实战应用 【免费下载链接】android-interview-questions-cn 项目地址: https://gitcode.com/gh_mirrors/an/android-interview-questions-cn Android开发工具链是提升开发效率和代码质量的关键。本文将详细介绍Git…...

python高校大学生家教平台的设计与开发

目录需求分析与功能规划技术栈选型数据库设计关键功能实现测试与部署持续迭代项目技术支持源码获取详细视频演示 &#xff1a;文章底部获取博主联系方式&#xff01;同行可合作需求分析与功能规划 明确平台核心需求&#xff0c;包括用户角色划分&#xff08;学生、教师、管理员…...

一键部署MedGemma:打造个人医学AI研究环境

一键部署MedGemma&#xff1a;打造个人医学AI研究环境 1. 为什么需要医学AI研究环境 在医学影像分析领域&#xff0c;研究人员常常面临两个主要挑战&#xff1a;一是缺乏高效的工具来快速验证新的AI模型在医学影像上的表现&#xff0c;二是需要一个直观的界面来展示和解释AI的…...

构建语音驱动的智能Agent:集成SenseVoice-Small与AI决策框架

构建语音驱动的智能Agent&#xff1a;集成SenseVoice-Small与AI决策框架 你有没有想过&#xff0c;对着电脑说句话&#xff0c;它就能帮你写代码、查资料、甚至控制智能家居&#xff1f;这听起来像是科幻电影里的场景&#xff0c;但现在&#xff0c;通过将强大的语音识别模型与…...

Anything to RealCharacters 2.5D转真人引擎:AI艺术展数字作品写实化呈现

Anything to RealCharacters 2.5D转真人引擎&#xff1a;AI艺术展数字作品写实化呈现 你是否曾想过&#xff0c;将那些精美的二次元插画、可爱的卡通头像&#xff0c;或者充满想象力的2.5D游戏角色&#xff0c;一键变成栩栩如生的真人照片&#xff1f;这听起来像是电影里的特效…...