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

news2024/11/18 19:27:50

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

在这里插入图片描述

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

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

相关文章

vue3数据库中存头像图片相对路径在前端用prop只能显示路径或无法显示图片只能显示alt中内容的问题的解决

不想看前情可以直接跳到头像部分代码 前情: 首先我们是在数据库中存图片相对路径,这里我们是在vue的src下的assets专门建一个文件夹img存头像图片。 然后我们如果用prop"avatar" label"头像"是只能显示图片路径的,即lo…

CEF的了解

(14 封私信 / 80 条消息) CEF和Electron的区别是什么? - 知乎 (zhihu.com) Electron面向的开发者:会用JavaScript,HTML,CSS,不会C CEF面向的开发者:会用JavaScript,HTML,CSS,会C (14 封私信 / 80 条消息) liulun - …

代码随想录Day28:回溯算法Part4

Leetcode 93. 复原IP地址 讲解前: 这道题其实在做完切割回文串之后,学会了使用切割的方法来找到字符串的possible 子串之后,思路就会很快找到,细想一下其实无非也就是对given string然后进行切割,只是深度是固定的因…

【数据结构与算法】二叉搜索树和平衡二叉树

二叉搜索树 左子树的结点都比当前结点小,右子树的结点都比当前结点大。 构造二叉搜索树: let arr [3, 4, 7, 5, 2]function Node(value) {this.value valuethis.left nullthis.right null }/*** 添加结点* param root 当前结点* param num 新的结…

50道Java经典面试题总结

1、那么请谈谈 AQS 框架是怎么回事儿? (1)AQS 是 AbstractQueuedSynchronizer 的缩写,它提供了一个 FIFO 队列,可以看成是一个实现同步锁的核心组件。 AQS 是一个抽象类,主要通过继承的方式来使用&#x…

AI绘图:Stable Diffusion WEB UI 详细操作介绍:基础篇

接上一篇《AI绘图体验:Stable Diffusion本地化部署详细步骤》本地部署完了SD后,大家肯定想知道怎么用,接下来补一篇Stable Diffusion WEB UI 详细操作,如果大家还没有完成SD的部署,请参考上一篇文章进行本地化的部署。…

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

❤️❤️前言~🥳🎉🎉🎉 hellohello~,大家好💕💕,这里是E绵绵呀✋✋ ,如果觉得这篇文章还不错的话还请点赞❤️❤️收藏💞 💞 关注💥&…

Spring Boot:Web开发之视图模板技术的整合

Spring Boot 前言Spring Boot 整合 JSPSpring Boot 整合 FreeMarkerSpring Boot 整合 ThymeleafThymeleaf 常用语法 前言 在 Web 开发中,视图模板技术(如 JSP 、FreeMarker 、Thymeleaf 等)用于呈现动态内容到用户界面的工具。这些技术允许开…

【css】使用display:inline-block后,元素间存在4px的间隔

问题:在本地项目中使用【display: inline-block】,元素间存在4px间隔。打包后发布到外网又不存在这个问题了。 归根结底这是一个西文排版的问题,英文有空格作为词分界,而中文则没有。 此时的元素具有文本属性,只要标签…

RUST语言函数的定义与调用

1.定义函数 定义一个RUST函数使用fn关键字 函数定义语法: fn 函数名(参数名:参数类型,参数名:参数类型) -> 返回类型 { //函数体 } 定义一个没有参数,没有返回类型的参数 fn add() {println!("调用了add函数!"); } 定义有一个参数的函数 fn add(a:u32)…

android framework 学习笔记(1)

学习资料:《Android Framework 开发揭秘》_哔哩哔哩_bilibili 什么是android framework 看图说话,android框架从上至下分为: 应用层(Application),Java framework(Application Framework),Native framework. 包括Libraries 和 A…

vue弹出的添加信息组件中 el-radio 单选框无法点击问题

情景描述:在弹出的添加信息的组件中的form中有一个单选框,单选框无法进行点击切换 原因如下: 单选框要求有个默认值,因为添加和更新操作复用同一个组件,所以我在初始化时对相关进行了判定,如果为空则赋初始值 结果这样虽然实现了初始值的展示,但是就是如此造成了单选框的无法切…

电商技术揭秘一:电商架构设计与核心技术

文章目录 引言一、电商平台架构概述1.1 架构设计原则与架构类型选择1.2 传统电商平台架构与现代化架构趋势分析 二、高并发处理与负载均衡2.1 高并发访问特点分析与挑战2.2 负载均衡原理与算法选择 三、分布式数据库与缓存技术3.1 分布式数据库设计与一致性考量3.2 缓存策略与缓…

(4)(4.6) Triducer

文章目录 前言 1 安装triducer 2 故障排除 3 参数说明 前言 Triducer 集速度、温度和深度传感器于一体。埃文在这篇 ardupilot.org 博文底部提供了这些说明(Evan at the bottom of this ardupilot.org blog post)。 1 安装triducer 下面的示例提供了在 Pixhawk 上安装 tri…

postgis 建立路径分析,使用arcmap处理路网数据,进行拓扑检查

在postgresql+postgis上面,对路网进行打断化简,提高路径规划成功率。 一、创建空间库以及空间索引 CREATE EXTENSION postgis; CREATE EXTENSION pgrouting; CREATE EXTENSION postgis_topology; CREATE EXTENSION fuzzystrmatch; CREATE EXTENSION postgis_tiger_geocoder;…

58商铺全新UI试客试用平台网站php源码

探索未来商铺新纪元,58商铺全新UI试客试用平台网站PHP源码完整版震撼来袭! 在这个数字化飞速发展的时代,58商铺一直致力于为商家和消费者打造更加便捷、高效的交易平台。今天,我们荣幸地推出全新UI试客试用平台网站PHP源码完整版…

springboot 项目整合easy-captcha验证码功能

效果 1、验证码使用easy-captcha,在pom文件增加依赖 <!-- google 验证码 --><dependency><groupId>com.github.whvcse</groupId><artifactId>easy-captcha</artifactId></dependency> 2、增加获取kaptcha的ctrl package com.*.*.s…

pygame三角形重心坐标填充 沿x轴旋转

import pygame from pygame.locals import * import sys import math# 初始化Pygame pygame.init()# 设置窗口大小 width, height 800, 600 screen pygame.display.set_mode((width, height)) pygame.display.set_caption(3D Triangle Fill with Barycentric Coordinates)# 定…

LVS、HAProxy

集群&#xff1a;将很多个机器组织到一起&#xff0c;作为一个整体对外提供服务。集群在扩展性、性能方面都可以做到很灵活。集群的分类&#xff1a;负载均衡集群&#xff1a;Load Balance。高可用集群&#xff1a;High Available。高性能集群&#xff1a;High Performance Com…

MyBatis的基本应用

源码地址 01.MyBatis环境搭建 添加MyBatis的坐标 <!--mybatis坐标--><dependency><groupId>org.mybatis</groupId><artifactId>mybatis</artifactId><version>3.5.9</version></dependency><!--mysql驱动坐…