【WEEK6】 【DAY3】MySQL函数【中文版】

2024.4.3 Wednesday

目录

  • 5.MySQL函数
    • 5.1.常用函数
      • 5.1.1.数据函数
      • 5.1.2.字符串函数
        • 5.1.2.1.CHAR_LENGTH(str)计算字符串str长度
        • 5.1.2.2.CONCAT(str1,str2,...)拼接字符串str1 str2 ...
        • 5.1.2.3.INSERT(str,pos,len,newstr)把原文str第pos位开始长度为len的字符串替换成newstr
        • 5.1.2.4.转换大小写
        • 5.1.2.5.INSTR(str,substr)找到str中substr的位置
        • 5.1.2.6.REPLACE(str,from_str,to_str)
        • 5.1.2.7.SUBSTR(str FROM pos FOR len)从pos截取长度为len的子字符串
        • 5.1.2.8.反转
        • 5.1.2.9.查询姓‘张’的同学,替换成姓‘邹’
      • 5.1.3.时间和日期函数(记)
        • 5.1.3.1.获取当前日期
        • 5.1.3.2.获取当前时间
        • 5.1.3.3.获取本地时间
        • 5.1.3.4.获取系统时间
        • 5.1.3.5.获取年月日,时分秒
      • 5.1.4.系统信息函数
        • 5.1.4.1.用户
        • 5.1.4.2.版本
    • 5.2.聚合函数(常用)
      • 5.2.1.简介
      • 5.2.2.Count查询记录中的行数
      • 5.2.3.注意点
      • 5.2.4.SUM AVG MAX MIN
      • 5.2.5.题目(转接到4.7.分组和过滤)

5.MySQL函数

5.1.常用函数

5.1.1.数据函数

-- 常用函数 --
-- 数据函数
SELECT ABS(-8)	-- 绝对值

在这里插入图片描述

SELECT CEILING(9.1)	-- 向上取整

在这里插入图片描述

SELECT FLOOR(9.9)	-- 向下取整

在这里插入图片描述

SELECT RAND()	-- 返回一个[0,1)之间的随机数

在这里插入图片描述

SELECT SIGN(-9)	-- 判断一个数的符号:负数返回-1,0返回0,正数返回1
SELECT SIGN(9)
SELECT SIGN(0)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

5.1.2.字符串函数

5.1.2.1.CHAR_LENGTH(str)计算字符串str长度
-- 字符串函数
SELECT CHAR_LENGTH('鲁智深倒拔垂杨柳')	-- CHAR_LENGTH(str)计算字符串str长度

在这里插入图片描述

5.1.2.2.CONCAT(str1,str2,…)拼接字符串str1 str2 …
SELECT CONCAT('鲁智深','倒拔','垂杨柳')	-- CONCAT(str1,str2,...)拼接字符串str1 str2 ...

在这里插入图片描述

5.1.2.3.INSERT(str,pos,len,newstr)把原文str第pos位开始长度为len的字符串替换成newstr
SELECT INSERT('鲁智深倒拔垂杨柳',1,3,'林冲')	-- INSERT(str,pos,len,newstr)把原文str第pos位开始长度为len的字符串替换成newstr

在这里插入图片描述

5.1.2.4.转换大小写
SELECT LOWER('HHH')	-- 全部转为小写
SELECT UPPER('hhh')	-- 全部转为大写

在这里插入图片描述
在这里插入图片描述

5.1.2.5.INSTR(str,substr)找到str中substr的位置
SELECT INSTR('鲁智深倒拔垂杨柳','拔')	-- INSTR(str,substr)找到str中substr的位置

在这里插入图片描述

5.1.2.6.REPLACE(str,from_str,to_str)
SELECT REPLACE('鲁智深倒拔垂杨柳','倒拔','reverse a tendency')	-- REPLACE(str,from_str,to_str)

在这里插入图片描述

5.1.2.7.SUBSTR(str FROM pos FOR len)从pos截取长度为len的子字符串
SELECT SUBSTR('鲁智深倒拔垂杨柳' FROM 4 FOR 5)	-- SUBSTR(str FROM pos FOR len)从pos截取长度为len的子字符串

在这里插入图片描述

5.1.2.8.反转
SELECT REVERSE('鲁智深倒拔垂杨柳')	-- 反转

在这里插入图片描述

5.1.2.9.查询姓‘张’的同学,替换成姓‘邹’
use `school`
-- 查询姓‘张’的同学
SELECT * FROM student
WHERE studentname LIKE '张%'
-- 替换成姓‘邹’(不会改变数据库里的原始数据),所以不用替换回来
SELECT REPLACE(studentName, '张', '邹') FROM student
WHERE studentname LIKE '张%'

在这里插入图片描述
在这里插入图片描述

5.1.3.时间和日期函数(记)

5.1.3.1.获取当前日期
SELECT CURRENT_DATE	-- 获取当前日期,好像不需要括号

在这里插入图片描述

SELECT CURDATE()

在这里插入图片描述

5.1.3.2.获取当前时间
SELECT NOW()	-- 获取当前时间

在这里插入图片描述
*水印太烦人了,先关掉吧

5.1.3.3.获取本地时间
SELECT LOCALTIME()	-- 获取本地时间

在这里插入图片描述

5.1.3.4.获取系统时间
SELECT SYSDATE()	-- 获取系统时间

在这里插入图片描述

5.1.3.5.获取年月日,时分秒
SELECT YEAR(NOW())

在这里插入图片描述

SELECT MONTH(NOW())

在这里插入图片描述

SELECT DAY(NOW())

在这里插入图片描述

SELECT HOUR(NOW())

在这里插入图片描述

SELECT MINUTE(NOW())

在这里插入图片描述

SELECT SECOND(NOW())

在这里插入图片描述

5.1.4.系统信息函数

5.1.4.1.用户
-- 系统信息函数
SELECT SYSTEM_USER()	-- 用户

在这里插入图片描述

SELECT USER()

在这里插入图片描述

5.1.4.2.版本
SELECT VERSION()

在这里插入图片描述

5.2.聚合函数(常用)

5.2.1.简介

函数名称描述
COUNT( )返回满足Select条件的记录总和数,如 select count(*) 【不建议使用 *,效率低】
SUM( )返回数字字段或表达式列作统计,返回一列的总和
AVG( )通常为数值字段或表达列作统计,返回一列的平均值
MAX( )可以为数值字段,字符字段或表达式列作统计,返回最大的值
MIN( )可以为数值字段,字符字段或表达式列作统计,返回最小的值

5.2.2.Count查询记录中的行数

-- 聚合函数 --
-- 以下几个count都能够统计相应的表中的数据(查询记录中的行数)
SELECT COUNT(studentname) FROM student;	-- Count(指定列(字段)),会忽略所有的null值

在这里插入图片描述

SELECT COUNT(borndate) FROM student;	-- 有一行没有出生日期,所以统计出来的行数比所有的少1

在这里插入图片描述

SELECT COUNT(*) FROM student;	-- Count(*),不会忽略null值,本质:计算行数

在这里插入图片描述

SELECT COUNT(1) FROM result;	-- Count(1),不会忽略null值,本质:计算行数

在这里插入图片描述

5.2.3.注意点

-- 从含义上讲,count(1) 与 count(*) 都表示对全部数据行的查询。
 -- count(字段) 会统计该字段在表中出现的次数,忽略字段为null 的情况。即不统计字段为null 的记录。
 -- count(*) 包括了所有的列,相当于行数,在统计结果的时候,包含字段为null 的记录;
 -- count(1) 用1代表代码行,在统计结果的时候,包含字段为null 的记录 。
 /*
 很多人认为count(1)执行的效率会比count(*)高,原因是count(*)会存在全表扫描,而count(1)可以针对一个字段进行查询。其实不然,count(1)和count(*)都会对全表进行扫描,统计所有记录的条数,包括那些为null的记录,因此,它们的效率可以说是相差无几。而count(字段)则与前两者不同,它会统计该字段不为null的记录条数。
 
 下面它们之间的一些对比:
 
 1)在表没有主键时,count(1)比count(*)快
 2)有主键时,主键作为计算条件,count(主键)效率最高;
 3)若表格只有一个字段,则count(*)效率较高。
 */

5.2.4.SUM AVG MAX MIN

SELECT SUM(`StudentResult`) AS 总和 FROM result

在这里插入图片描述

SELECT AVG(`StudentResult`) AS 平均分 FROM result

在这里插入图片描述

SELECT MAX(`StudentResult`) AS 最高分 FROM result

在这里插入图片描述

SELECT MIN(`StudentResult`) AS 最低分 FROM result

在这里插入图片描述

5.2.5.题目(转接到4.7.分组和过滤)

 -- 查询不同课程的平均分,最高分,最低分
 -- 前提:根据不同的课程进行分组
 SELECT subjectname,AVG(studentresult) AS 平均分,MAX(StudentResult) AS 最高分,MIN(StudentResult) AS 最低分
 FROM result AS r
 INNER JOIN `subject` AS s
 ON r.subjectno = s.subjectno
 GROUP BY r.subjectno
 HAVING 平均分>80;
 
 /*
 where写在group by前面.
 要是放在分组后面的筛选
 要使用HAVING..
 因为having是从前面筛选的字段再筛选,而where是从数据表中的>字段直接进行的筛选的
 */

具体实现:

SELECT SubjectName, AVG(StudentResult), MAX(StudentResult), MIN(StudentResult)
FROM result r
INNER JOIN `subject` sub
ON r.`SubjectNo` = sub.`SubjectNo`
-- WHERE AVG(StudentResult) > 70	这样写不符合语法要求(WHERE不能使用聚合函数)
GROUP BY r.SubjectNo	-- 通过什么字段来分组
HAVING AVG(StudentResult) > 70	-- 筛选分组后的数据用HAVING

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Springboot传参要求

传参的参数名称必须与Set方法的参数名字相同 ,不然会报错。

PAC的启用与构建

PAC如何启用?构建PAC的编译选项控制?本博客探讨这几个问题。

【局部路径规划算法】—— DWA动态窗口法(c++实现))

参考资料: (1)机器人局部避障的动态窗口法(dynamic window approach) (2)机器人局部避障的动态窗口法 (3)局部规划算法:DWA算法原理 (4)SLAM学习:…

Android Monkey自动化测试

monkey一般用于压力测试,用户模拟用户事件 monkey 基本用法 adb shell monkey [参数] [随机事件数]monkey常用命令 -v:用于指定反馈信息级别,总共分三个等级-v -v -vadb shell mokey -v -v -v 100-s:用于指定伪随机数生成器的种…

安卓MT管理器v2.15.1

软件介绍 MT管理器是一款强大的文件管理工具和APK逆向修改神器。如果你喜欢它的双窗口操作风格,可以单纯地把它当成文件管理器使用。如果你对修改APK有深厚的兴趣,那么你可以用它做许许多多的事,例如汉化应用、替换资源、修改布局、修改逻辑…

相交链表 - LeetCode 热题 22

大家好!我是曾续缘💤 今天是《LeetCode 热题 100》系列 发车第 22 天 链表第 1 题 ❤️点赞 👍 收藏 ⭐再看,养成习惯 相交链表 给你两个单链表的头节点 headA 和 headB ,请你找出并返回两个单链表相交的起始节点。如果…

CVE-2021-30517:Type confusion bug in LoadSuperIC

前言 这个漏洞是一个比较老的洞,之所以分析这个漏洞,只要是想再学习一下 ICs 相关的知识。并该漏洞的利用是利用与 String/Function 之间的混淆,比较有意思。 环境搭建 sudo apt install python git checkout 7d5e5f6c62c3f38acee12dc4114…

【蓝桥杯第十四届省赛B】(部分详解)

【01串的熵】 https://www.lanqiao.cn/problems/3498/learning/?subject_code1&group_code4&match_num14&match_flow1&origincup #include <iostream> #include<cmath> using namespace std; int main() {double n23333333;double sum0;for(int…

代码学习记录35

随想录日记part35 t i m e &#xff1a; time&#xff1a; time&#xff1a; 2024.04.03 主要内容&#xff1a;今天开始要学习动态规划的相关知识了&#xff0c;今天的内容主要涉及三个方面&#xff1a; 最后一块石头的重量 II &#xff1b;目标和 &#xff1b;一和零 。 1049…

Linux基础篇:文件系统介绍——根目录下文件夹含义与作用介绍

Linux文件系统介绍——文件夹含义与作用 Linux文件系统是一个组织和管理文件的层次结构。它包括了目录、子目录和文件&#xff0c;这些都是按照一定的规则和标准进行组织的。以下是Linux文件系统的一些关键组成部分&#xff1a; 1./bin&#xff1a; 该目录包含了系统启动和运…

抽象类与接口(3)(接口部分)

❤️❤️前言~&#x1f973;&#x1f389;&#x1f389;&#x1f389; hellohello~&#xff0c;大家好&#x1f495;&#x1f495;&#xff0c;这里是E绵绵呀✋✋ &#xff0c;如果觉得这篇文章还不错的话还请点赞❤️❤️收藏&#x1f49e; &#x1f49e; 关注&#x1f4a5;&…

TiDB单机版安装和连接访问

TiDB单机版安装和连接访问 1、下载 $wget http://download.pingcap.org/tidb-latest-linux-amd64.tar.gz 2、解压缩 $tar -zxvf tidb-latest-linux-amd64.tar.gz 3、启动TiDB 启动PD $./bin/pd-server --data-dirpd --log-filepd.log 启动tikv $./bin/tikv-server --pd…

基于深度学习的扑克牌识别软件(网页版+YOLOv8_v7_v6_v5代码+训练数据集)

摘要&#xff1a;本文深入研究了基于YOLOv8/v7/v6/v5的扑克牌识别软件&#xff0c;核心采用YOLOv8并整合了YOLOv7、YOLOv6、YOLOv5算法&#xff0c;进行性能指标对比&#xff1b;详述了国内外研究现状、数据集处理、算法原理、模型构建与训练代码&#xff0c;及基于Streamlit的…

NASA数据集——1983 ——2016 年期间北美森林地点的野外地块特征数据、衍生的地上和地下燃烧碳以及获取的火灾气象指数(FWI)

文件修订日期&#xff1a;2022-05-04 数据集版本: 1 简介 该数据集综合了 1983 年至 2016 年期间美国阿拉斯加、西北地区和加拿大萨斯喀彻温省被烧毁的北方森林地点的野外地块特征数据、衍生的地上和地下燃烧碳以及获取的火灾气象指数&#xff08;FWI&#xff09;系统组件。…

基于 Quartz.NET 可视化任务调度平台 QuartzUI

一、简介 QuartzUI 是基于 Quartz.NET3.0 的定时任务 Web 可视化管理&#xff0c;Docker 打包开箱即用、内置 SQLite 持久化、语言无关、业务代码零污染、支持 RESTful 风格接口、傻瓜式配置、异常请求邮件通知等。 二、部署 QuartzUI 从 2022 年到现在没有提交记录&#xf…

计算机网络:局域网的数据链路层

✨✨ 欢迎大家来访Srlua的博文&#xff08;づ&#xffe3;3&#xffe3;&#xff09;づ╭❤&#xff5e;✨✨ &#x1f31f;&#x1f31f; 欢迎各位亲爱的读者&#xff0c;感谢你们抽出宝贵的时间来阅读我的文章。 我是Srlua小谢&#xff0c;在这里我会分享我的知识和经验。&am…

SQLyog连接数据库8.0版本解析错误问题解决方案

问题描述&#xff1a; 解决方案&#xff1a; alter userrootlocalhostidentified with mysql_native_password by 密码; 再次连接就可以了。

Autodesk AutoCAD 2025 (macOS, Windows) - 自动计算机辅助设计软件

Autodesk AutoCAD 2025 (macOS, Windows) - 自动计算机辅助设计软件 AutoCAD 2024 开始原生支持 Apple Silicon&#xff0c;性能提升至 2 倍 请访问原文链接&#xff1a;https://sysin.org/blog/autodesk-autocad/&#xff0c;查看最新版。原创作品&#xff0c;转载请保留出处…

Express框架搭建项目 node.js

文章目录 引言Express框架介绍express安装环境准备写一个简单的项目展示 文章总结 引言 Express是一个基于Node.js平台的轻量级Web应用框架&#xff0c;它提供了简洁的API和丰富的功能&#xff0c;使得开发者能够快速地构建Web服务器和API。本文将带领大家从零开始&#xff0c…

【初阶数据结构】——leetcode:160. 相交链表

文章目录 1. 题目介绍2. 思路1&#xff1a;暴力求解算法思想代码实现 3. 思路2&#xff1a;快慢指针算法思想代码实现 1. 题目介绍 链接: link 给你两个单链表的头节点 headA 和 headB &#xff0c;请你找出并返回两个单链表相交的起始节点。如果两个链表不存在相交节点&…