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的函数类型
目录 一、聚合函数 二、数值型函数 三、字符串函数 四、日期函数 五、流程控制函数 一、聚合函数 定义:聚合函数是指对一组值进行运算,最终返回是单个值,也可以被称为组合函数。 COUNT() 统计目标行数量的函数 AVG() 求平均值 SU…...

TSINGSEE青犀视频智慧电梯管理平台,执行精准管理、提升乘梯安全
一、方案背景 随着城市化进程的不断加快,我国已经成为全球最大的电梯生产和消费市场,电梯也成为人们日常生活中不可或缺的一部分。随着电梯数量的激增,电梯老龄化,维保数据不透明,物业管理成本高,政府监管…...
VMware:在部分链上无法执行所调用的函数,请打开父虚拟磁
VMware:在部分链上无法执行所调用的函数,请打开父虚拟磁 问题:VMware给虚拟机扩展硬盘容量,提示:在部分链上无法执行所调用的函数,请打开父虚拟磁。原因:是因为你的虚拟磁盘文件是分多个文件存储的…...

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

【百度Apollo】自动驾驶规划技术:实现安全高效的智能驾驶
🎬 鸽芷咕:个人主页 🔥 个人专栏:《linux深造日志》《粉丝福利》 ⛺️生活的理想,就是为了理想的生活! ⛳️ 推荐 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下…...

《C程序设计》上机实验报告(五)之一维数组二维数组与字符数组
实验内容: 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且无法充电解决方案汇总
因为最近火灾很多,所以昨天夜晚睡觉的时候把插线板电源关掉了,电脑也关机了。 各位一定要注意用电安全,网上的那些事情看着真的很难受qvq。 第二天早上起床的时候一看发现电脑直接没电了,插上电源后也是显示 你一定要冲进去啊(ू˃…...
centos7常用命令之安装插件2
centos7安装插件1 7、kibana 【启动kibana,需要调整这个配置文件(/opt/kibana-6.3.0/config/kibana.yml)的一处ip地址,因为每次虚拟机的ip地址可能会有所不同, 同时访问页面地址的ip:5601时,ip地址也对应修改】 1.解压缩包 cd /opt/ tar -xvf kibana-6.3.0-linux-x…...

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

Pandas进阶--map映射,分组聚合和透视pivot_table详解
文章目录 1.Pandas的map映射(1)映射(2)map充当运算工具 2.数据分组和透视(1)分组统计 - groupby功能 是pandas最重要的功能(2)聚合agg 3.透视表pivot_table(1)…...
Visual Studio 和Clion配置Cocos2d-x环境
Visual Studio 和Clion配置Cocos2d-x环境 我就不贴图片的,懒得上传图床。懒。开发环境: 系统: Window11 编译器: CMake MSVC 开发工具:Clion or Visual Studio 请自行配置好,Python2.7,和Cmake Cocos2d-x下载…...

【百度Apollo】本地调试仿真:加速自动驾驶系统开发的利器
🎬 鸽芷咕:个人主页 🔥 个人专栏: 《linux深造日志》《粉丝福利》 ⛺️生活的理想,就是为了理想的生活! ⛳️ 推荐 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下…...

ztest中ddof起什么作用
⭐️ statsmodels 中 ztest 基本使用 statsmodels 也是一个强大的统计分析库,提供了丰富的统计模型和检验功能。对于 Z 检验,statsmodels 提供了 ztest 函数。 以下是使用 statsmodels 进行 Z 检验的示例: 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比较,IPv6有两个极具吸引力的特点:一个是IPv6采用的128位地址格式,而IPv4采用32位的地址格式,因此IPv6使地址空间增大了296;另一个是IPv6物联网数据业务具有更强的支持能力,成为未来物联网的重要协议…...

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地址划分
网络工程师必学知识:2、IPv4和IPv6地址划分 1.概述:2.IPv4:地址划分:有类划分,无类划分。一、有类划分:分为5类。ABCDE,掩码分别位8、16、24、28、27取值范围:出类别bit不变…...
Rust - 变量
不管学什么语言好像都得从变量开始,不过只需要懂得大概就可以了。 但在Rust里不先把变量研究明白后面根本无法进行… 变量绑定 变量赋值❌ 变量绑定✔️ Rust中没有“赋值”一说,而是称为绑定。 int a 3; //C中的变量赋值 a 3; //python中的…...

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

IDEA运行Tomcat出现乱码问题解决汇总
最近正值期末周,有很多同学在写期末Java web作业时,运行tomcat出现乱码问题,经过多次解决与研究,我做了如下整理: 原因: IDEA本身编码与tomcat的编码与Windows编码不同导致,Windows 系统控制台…...
挑战杯推荐项目
“人工智能”创意赛 - 智能艺术创作助手:借助大模型技术,开发能根据用户输入的主题、风格等要求,生成绘画、音乐、文学作品等多种形式艺术创作灵感或初稿的应用,帮助艺术家和创意爱好者激发创意、提高创作效率。 - 个性化梦境…...
ssc377d修改flash分区大小
1、flash的分区默认分配16M、 / # df -h Filesystem Size Used Available Use% Mounted on /dev/root 1.9M 1.9M 0 100% / /dev/mtdblock4 3.0M...

【第二十一章 SDIO接口(SDIO)】
第二十一章 SDIO接口 目录 第二十一章 SDIO接口(SDIO) 1 SDIO 主要功能 2 SDIO 总线拓扑 3 SDIO 功能描述 3.1 SDIO 适配器 3.2 SDIOAHB 接口 4 卡功能描述 4.1 卡识别模式 4.2 卡复位 4.3 操作电压范围确认 4.4 卡识别过程 4.5 写数据块 4.6 读数据块 4.7 数据流…...

【大模型RAG】Docker 一键部署 Milvus 完整攻略
本文概要 Milvus 2.5 Stand-alone 版可通过 Docker 在几分钟内完成安装;只需暴露 19530(gRPC)与 9091(HTTP/WebUI)两个端口,即可让本地电脑通过 PyMilvus 或浏览器访问远程 Linux 服务器上的 Milvus。下面…...
python如何将word的doc另存为docx
将 DOCX 文件另存为 DOCX 格式(Python 实现) 在 Python 中,你可以使用 python-docx 库来操作 Word 文档。不过需要注意的是,.doc 是旧的 Word 格式,而 .docx 是新的基于 XML 的格式。python-docx 只能处理 .docx 格式…...
全面解析各类VPN技术:GRE、IPsec、L2TP、SSL与MPLS VPN对比
目录 引言 VPN技术概述 GRE VPN 3.1 GRE封装结构 3.2 GRE的应用场景 GRE over IPsec 4.1 GRE over IPsec封装结构 4.2 为什么使用GRE over IPsec? IPsec VPN 5.1 IPsec传输模式(Transport Mode) 5.2 IPsec隧道模式(Tunne…...
return this;返回的是谁
一个审批系统的示例来演示责任链模式的实现。假设公司需要处理不同金额的采购申请,不同级别的经理有不同的审批权限: // 抽象处理者:审批者 abstract class Approver {protected Approver successor; // 下一个处理者// 设置下一个处理者pub…...

推荐 github 项目:GeminiImageApp(图片生成方向,可以做一定的素材)
推荐 github 项目:GeminiImageApp(图片生成方向,可以做一定的素材) 这个项目能干嘛? 使用 gemini 2.0 的 api 和 google 其他的 api 来做衍生处理 简化和优化了文生图和图生图的行为(我的最主要) 并且有一些目标检测和切割(我用不到) 视频和 imagefx 因为没 a…...
C语言中提供的第三方库之哈希表实现
一. 简介 前面一篇文章简单学习了C语言中第三方库(uthash库)提供对哈希表的操作,文章如下: C语言中提供的第三方库uthash常用接口-CSDN博客 本文简单学习一下第三方库 uthash库对哈希表的操作。 二. uthash库哈希表操作示例 u…...