【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 rINNER JOIN `subject` AS sON r.subjectno = s.subjectnoGROUP BY r.subjectnoHAVING 平均分>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

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

WPF上使用MaterialDesign框架---下载与配置

一、介绍: Material Design语言的一些重要功能包括 系统字体Roboto的升级版本 ,同时颜色更鲜艳,动画效果更突出。杜拉特还简要谈到了新框架的一些变化。谷歌的想法是让谷歌平台上的开发者掌握这个新框架,从而让所有应用就有统一的…

DETR【Transformer+目标检测】

End-to-End Object Detection with Transformers 2024 NVIDIA GTC,发布了地表最强的GPU B200,同时,黄仁勋对谈《Attention is All You Need》论文其中的7位作者,座谈的目的无非就是诉说,Transformer才是今天人工智能成…

技术揭秘:如何打造完美互动的充电桩硬件与服务平台?

充电桩平台全套源码地址 https://gitee.com/chouleng/cdzkjjh.git 这张图像是一个系统或服务的架构图。以下是对图中各个部分的描述: 前端: 位于图像的顶部,颜色为浅绿色。用户服务端: 紧邻前端,颜色为淡黄色。设备服…

基于深度学习的肿瘤图像检测系统(网页版+YOLOv8/v7/v6/v5代码+训练数据集)

摘要:在本博客中,我们深入探讨了基于YOLOv8/v7/v6/v5的肿瘤图像检测系统。核心上,我们采用了最新的YOLOv8技术,并将其与YOLOv7、YOLOv6、YOLOv5算法进行了综合整合和性能指标对比分析。我们详细阐述了当前国内外在此领域的研究现状…

个人医疗开支预测项目

注意:本文引用自专业人工智能社区Venus AI 更多AI知识请参考原站 ([www.aideeplearning.cn]) 项目背景 随着医疗成本的持续上涨,个人医疗开支成为一个重要议题。理解影响医疗费用的多种因素对于医疗保险公司、政府机构以及个人…

Java零基础入门-java8新特性(下篇)

一、概述 ​上几期,我们是完整的学完了java异常类的学习及实战演示、以及学习了线程进程等基础概念,而这一期,我们要来玩点好的东西,那就是java8,我们都知道java8是自2004年发布java5之后最重要且一次重大的版本更新&…

Mac OS上使用matplotlib库显示中文字体

文章目录 问题描述解决步骤参考文章 问题描述 如果我们想要使用matplotlib画图的话,可能会出现下面的这种warning: UserWarning: Glyph 24212 (\N{CJK UNIFIED IDEOGRAPH-5E94}) missing from current font.解决步骤 解决这个问题,可以按照下面的做法…

SpringBoot全局异常处理

问题 当我们没有做任何的异常处理时,我们三层架构处理异常的方案: Mapper接口在操作数据库的时候出错了,此时异常会往上抛(谁调用Mapper就抛给谁),会抛给service。 service 中也存在异常了,会抛给controller。 而在…

Python基于深度学习的人脸识别项目源码+演示视频,利用OpenCV进行人脸检测与识别 preview

​ 一、原理介绍 该人脸识别实例是一个基于深度学习和计算机视觉技术的应用,主要利用OpenCV和Python作为开发工具。系统采用了一系列算法和技术,其中包括以下几个关键步骤: 图像预处理:首先,对输入图像进行预处理&am…

鸿蒙南向开发案例:【智能养花机】

样例简介 智能养花机通过感知花卉、盆栽等植宠生长环境的温度、湿度信息,适时为它们补充水分。在连接网络后,配合数字管家应用,用户可远程进行浇水操作。用户还可在应用中设定日程,有计划的按日、按周进行浇水。在日程中用户可添…

Servlet原理Servlet API

目录 一、Servlet运行原理 1.1、问题 1.2、Servlet的具体执行过程 1.3、Tomcat初始化流程小结 1.4、Tomcat处理请求流程 二、Servlet API详解 2.1、HttpServlet类 2.1.1、处理Get请求 2.2、HttpServletRequest类 2.3、HttpServletResponse类 2.3.1、设置状态码 ​2.…

二维码的生成、下载Java,并返回给前端展示

分析 将生成的二维码图片,以IO流的方式,通过response响应体直接返回给请求方。 第一、不需要落到我们的磁盘,操作在内存中完成,效率比较高。 第二、所有生成二维码的请求,都可以访问这里,前端直接拿img标…

【tools】Lokalise 可用于本地化各种类型的应用程序和网站

【tools】Lokalise 可用于本地化各种类型的应用程序和网站 1. Lokalise 基本功能2. Lokalise 可用于本地化各种类型的应用程序和网站,那部署的应用程序和网站运行再什么地方,数据存储再什么位置?https://app.lokalise.com/quick-start 1. Lokalise 基本功能 Lokalise 是一款…

RUST语言基本数据类型认识

1.RUST的基本数据类型参考: 2.使用RUST数据类型声明变量并赋值: let a:i81;//8位有符号整数let a1:u82;//8位无符号整数let b:i161;//16位有符号整数let b1:u162;//16位无符号整数let c:i321;//32位有符号整数let c1:u322;//32位无符号整数let d:i641;//64位有符号整数let d1:u…

Java零基础入门-java8新特性(上篇)

一、本期教学目标 java8有哪些新特性什么是函数式接口什么是Lambda表达式掌握Stream ApiStream和Collect集合区别Stream创建方式Stream操作三步骤 二、概述 上几期,我们是完整的学完了java异常类的学习及实战演示、以及学习了线程进程等基础概念,而这一…

VSCode调试C++

1、环境准备 1.1、g的安装与使用 1.1.1、安装 方式一:Xcode安装 苹果的开发集成工具是Xcode.app,其中包含一堆命令行工具。 在 App store 可以看到其大小有好几个G,有点大。 方式二:Command Line Tools 安装 Command Line Too…

算法知识点汇总

知识点 1. 求二进制中1的个数 int get_count(int x)//返回x的二进制有多少个1 int get_count(int x) {int res 0;while (x){res ;x - x & -x;}return res; }2. 建树,和树的DFS 记得初始化头节点 const int N 1e5 10, M N * 2; int h[N], e[M], ne[M], id…

【智能算法】猎豹优化器(CO)原理及实现

目录 1.背景2.算法原理2.1算法思想2.2算法过程 3.结果展示4.参考文献 1.背景 2022年,MA Akbari等人受到自然界中猎豹捕猎行为启发,提出了猎豹优化器(The Cheetah Optimizer,CO)。 2.算法原理 2.1算法思想 CO法对猎…

Shell GPT:直接安装使用的chatgpt应用软件

ShellGPT是一款基于预训练生成式Transformer模型(如GPT系列)构建的智能Shell工具。它将先进的自然语言处理能力集成到Shell环境中,使用户能够使用接近日常对话的语言来操作和控制操作系统。 官网:GitHub - akl7777777/ShellGPT: *…

使用vuepress搭建个人的博客(一):基础构建

前言 vuepress是一个构建静态资源网站的库 地址:VuePress 一般来说,这个框架非常适合构建个人技术博客,你只需要把自己写好的markdown文档准备好,完成对应的配置就可以了 搭建 初始化和引入 创建文件夹press-blog npm初始化 npm init 引入包 npm install -D vuepress…