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

黑马mysql教程笔记(mysql8教程)基础篇——函数(字符串函数、数值函数、日期函数、流程函数)

参考文章1:https://www.bilibili.com/video/BV1Kr4y1i7ru/

参考文章2:https://dhc.pythonanywhere.com/article/public/1/

在这里插入图片描述

文章目录

  • 基础篇
    • 函数
      • 字符串函数
        • 常用函数
        • 使用示例
        • 实例:更新已有的所有员工号,使其满足5位数长度,不足5位左方补零
      • 数值函数
        • 常见函数
        • 使用示例
        • 实例:通过数据库的函数,生成一个六位数的随机验证码
      • 日期函数
        • 常用函数
        • 使用示例
        • 实例:查询所有员工的入职天数,并根据入职天数倒序排序
      • 流程函数
        • 常用函数
        • 例子
        • 实例:统计班级每个学员的成绩,并根据分数展示优秀、及格或不及格

基础篇

函数

  • 字符串函数
  • 数值函数
  • 日期函数
  • 流程函数

字符串函数

常用函数
函数功能
CONCAT(s1, s2, …, sn)字符串拼接,将s1, s2, …, sn拼接成一个字符串
LOWER(str)将字符串全部转为小写
UPPER(str)将字符串全部转为大写
LPAD(str, n, pad)左填充,用字符串pad对str的左边进行填充,达到n个字符串长度
RPAD(str, n, pad)右填充,用字符串pad对str的右边进行填充,达到n个字符串长度
TRIM(str)去掉字符串头部和尾部的空格
SUBSTRING(str, start, len)返回从字符串str从start位置起的len个长度的字符串
REPLACE(column, source, replace)替换字符串
使用示例
-- 拼接
SELECT CONCAT('Hello', 'World');
-- HelloWorld-- 小写
SELECT LOWER('Hello');
-- hello-- 大写
SELECT UPPER('Hello');
-- HELLO-- 左填充
SELECT LPAD('01', 5, '-');
-- ---01-- 右填充
SELECT RPAD('01', 5, '-');
-- 01----- 去除空格
SELECT TRIM(' Hello World ');
-- Hello World-- 切片(起始索引为1)
SELECT SUBSTRING('Hello World', 1, 5);
-- Hello
实例:更新已有的所有员工号,使其满足5位数长度,不足5位左方补零

在这里插入图片描述

-- 1. 由于业务需求变更,企业员工的工号,统一为5位数,目前不足5位数的全部再前面补0。比如:1号员工的工号应该为00001。
update emp set workno = lpad(workno, 5, '0')

在这里插入图片描述

数值函数

常见函数
函数功能
CEIL(x)向上取整
FLOOR(x)向下取整
MOD(x, y)返回x/y的模
RAND()返回0~1内的随机数
ROUND(x, y)求参数x的四舍五入值,保留y位小数
使用示例
-- 数值函数-- ceil
select ceil(1.1);
-- 2-- floor
select floor(1.9);
-- 1-- mod(取余)
select mod(3, 4);
-- 3-- rand
select rand();
-- 0.7344290974870595-- round
select round(2.3456, 2);
-- 2.35
select round(2.3456, 10);
-- 2.3456
实例:通过数据库的函数,生成一个六位数的随机验证码
-- 案例:通过数据库的函数,生成一个六位数的随机验证码
select lpad(round(rand()*1000000, 0), 6, '0')
-- 318197
-- 743267

日期函数

常用函数
函数功能
CURDATE()返回当前日期
CURTIME()返回当前时间
NOW()返回当前日期和时间
YEAR(date)获取指定date的年份
MONTH(date)获取指定date的月份
DAY(date)获取指定date的日期
DATE_ADD(date, INTERVAL expr type)返回一个日期/时间值加上一个时间间隔expr后的时间值,单位为type(year、month、day、hour、minute、second)
DATEDIFF(date1, date2)返回起始时间date1和结束时间date2之间的天数
TIMESTAMPDIFF(type, timestamp1, timestamp2)返回起始时间timestamp1和结束时间timestamp2之间的type时间差
使用示例
 -- 日期函数-- curdate()
select curdate();
-- 2023-10-12-- curtime()select curtime();
-- 21:48:47-- now()select now();
-- 2023-10-12 21:48:47-- YEAR, MONTH, DAY, HOUR, MINUTE, SECOND
select year(now());
-- 2023
select month(now());
-- 10
select day(now());
-- 12
select hour(now());
-- 21
select minute(now());
-- 48
select second(now());
-- 47-- date_add
select date_add(now(), interval 70 year);
-- 2093-10-12 21:59:52
select date_add(now(), interval 70 second);
-- 2023-10-12 22:01:17-- datediff(前面减后面)select datediff('2021-10-02', '2021-10-01');
-- 1select datediff('2021-10-02', '2022-10-01');
-- -364select datediff(now(), '2021-10-01');
-- 741-- timestampdiff(后面减前面)
SELECT TIMESTAMPDIFF(YEAR, '2000-01-01', '2021-12-31');
-- 21
SELECT TIMESTAMPDIFF(second , '2000-01-01 15:00:00', '2000-01-01 14:00:00');
-- -3600
SELECT TIMESTAMPDIFF(month , '2000-01-01 15:00:00', '2000-03-01 12:00:00');
-- 1
实例:查询所有员工的入职天数,并根据入职天数倒序排序
-- 查询所有员工入职天数,并根据入职天数倒序排序
select name, datediff(current_date(), entrydate) as 'entrydays' from emp order by entrydays desc ;

desc为倒序排序

在这里插入图片描述

流程函数

常用函数
函数功能
IF(value, t, f)如果value为true,则返回t,否则返回f
IFNULL(value1, value2)如果value1不为空,返回value1,否则返回value2
CASE WHEN [ val1 ] THEN [ res1 ] … ELSE [ default ] END如果val1为true,返回res1,… 否则返回default默认值
CASE [ expr ] WHEN [ val1 ] THEN [ res1 ] … ELSE [ default ] END如果expr的值等于val1,返回res1,… 否则返回default默认值
例子
-- 流程控制函数-- if
select if(false, 'ok', 'Error');
-- Error-- ifnull
select ifnull('Ok', 'Default');
-- Okselect ifnull('', 'Default');
--select ifnull(null, 'Default');
-- Default
-- case when then else end
selectname as '姓名',(case when age > 30 then '中年' else '青年' end) as '年纪'
from emp;

在这里插入图片描述

-- case when then else end-- 需求:查询emp表的员工姓名和工作地址(北京/上海 ----> 一线城市,其他 ----> 二线城市)
selectname as '姓名', (case workaddress when '北京' then '一线城市'  when '上海' then '一线城市' else '二线城市' end) as '工作地址'
from emp;-- 不够简洁,优化一下:
selectname as '姓名',if(workaddress in ('北京', '上海'), '一线城市', '二线城市') as '工作地址'
from emp;

在这里插入图片描述

实例:统计班级每个学员的成绩,并根据分数展示优秀、及格或不及格

需求:

-- 统计班级每个学员的成绩,展示规则如下:
-- >= 85,展示优秀
-- >= 60,展示及格
-- 否则,展示不及格

建表语句:

create table score(id int comment 'ID',name varchar(20) comment '姓名',math int comment '数学',english int comment '英语',chinese int comment '语文'
) comment '学员成绩表';

插入数据:

insert into score(id, name, math, english, chinese) VALUES (1, 'Tom', 67, 88, 95 ), (2, 'Rose' , 23, 66, 90),(3, 'Jack', 56, 98, 76);

查看表数据:
在这里插入图片描述

sql查询语句:

selectid,name,(case when math >= 85 then '优秀' when math >=60 then '及格' else '不及格' end ) as '数学',(case when english >= 85 then '优秀' when english >=60 then '及格' else '不及格' end ) as '英语',(case when chinese >= 85 then '优秀' when chinese >=60 then '及格' else '不及格' end ) as '语文'
from score;

查询结果:
在这里插入图片描述

相关文章:

黑马mysql教程笔记(mysql8教程)基础篇——函数(字符串函数、数值函数、日期函数、流程函数)

参考文章1:https://www.bilibili.com/video/BV1Kr4y1i7ru/ 参考文章2:https://dhc.pythonanywhere.com/article/public/1/ 文章目录 基础篇函数字符串函数常用函数使用示例实例:更新已有的所有员工号,使其满足5位数长度&#xff…...

Python武器库开发-基础篇(一)

前言 以Python编程为主,围绕渗透测试展开的一门专栏。专栏内容包括: Python基础编程(Python基础、语法、对象、文件操作,错误和异常),Python高级编程(正则表达式、网络编程、WEB编程&#xff0…...

Qt (QFileDialogQColorDialogQFontDialog) 对话框实战

目录 一、QFileDialog 类 (文件对话框) 二、QColorDialog 类(颜色对话框) 三、QFontDialog 类(字体对话框类) 一、QFileDialog 类 (文件对话框) QFileDialog 是 Qt 框架中的一个类,用于在应用程序中提供文件对话框。它允许用户选择文件或目录,并且可…...

2.SpringSecurity - 处理器简单说明

文章目录 SpringSecurity 返回json一、登录成功处理器1.1 统一响应类HttpResult1.2 登录成功处理器1.3 配置登录成功处理器1.4 登录 二、登录失败处理器2.1 登录失败处理器2.2 配置登录失败处理器2.3 登录 三、退出成功处理器3.1 退出成功处理器3.2 配置退出成功处理器3.3 退出…...

AGI热门方向:国内前五!AI智能体TARS-RPA-Agent落地,实在智能打造人手一个智能助理

早在 1950 年代,Alan Turing 就将「智能」的概念扩展到了人工实体,并提出了著名的图灵测试。这些人工智能实体通常被称为 —— 代理(Agent)。 代理这一概念起源于哲学,描述了一种拥有欲望、信念、意图以及采取行动能力…...

运动品牌如何做到“全都要”?来看看安踏的答案

文 | 螳螂观察 作者 | 易不二 运动鞋服是兼具高景气和清晰格局的优质消费赛道。 中信证券给出的这一预测,欧睿国际也做出了更具体的测算:预计到2027年,中国运动服饰市场规模有望以约为8.7%的年复合增长率,突破5500亿元人民币。…...

LeetCode75——Day6

文章目录 一、题目二、题解 一、题目 151. Reverse Words in a String Given an input string s, reverse the order of the words. A word is defined as a sequence of non-space characters. The words in s will be separated by at least one space. Return a string …...

http代理有什么好处,怎么通过http代理服务安全上网呢?

通过http代理上网是一种常见的网络代理方式。http代理是指通过代理服务器进行网络连接,以实现隐藏自己的真实IP地址、保护个人隐私等目的。下面我们将介绍通过http代理上网的好处以及如何使用http代理服务来安全上网。 一、通过http代理上网的好处 1. 保护个人隐私 …...

vue3后台管理框架之axios二次封装

在开发项目的时候避免不了与后端进行交互,因此我们需要使用axios插件实现发送网络请求。在开发项目的时候 我们经常会把axios进行二次封装。 目的: 1:使用请求拦截器,可以在请求拦截器中处理一些业务(开始进度条、请求头携带公共参数) 2:使用响应拦截器&#xf…...

你的Github账户可能被封禁!教你应对Github最新的2FA二次验证! 无地区限制, 无额外设备的全网最完美方案

1 2FA 的定义 双因素身份验证 (2FA) 是一种身份和访管理安全方法,需要经过两种形式的身份验证才能访河资源和数据,2FA使企业能够监视和帮助保护其最易受攻击的信息和网络。 2 2FA 的身份验证方法 使用双因素身份验证时有不同的身份验证方法。此处列出…...

【C语言】#define宏与函数的优劣对比

本篇文章目录 1. 预处理指令#define宏2. #define定义标识符或宏,要不要最后加上分号?3.宏的参数替换后产生的运算符优先级问题3.1 问题产生3.2 不太完美的解决办法3.3 完美的解决办法 4.#define的替换规则5. 有副作用的宏参数6. 宏与函数的优劣对比6.1 宏…...

flask基础开发知识学习

之前做了一些LLM的demo,接口用flask写的,但是涉及到后端的一些业务就感觉逻辑写的很乱,代码变成屎山,于是借助官方文档和GPT迅速补了一些知识,总结一下一个很小的模板 于是决定边学边重构之前的代码… 文章目录 代码结…...

内网和热点同时连接使用配置

解决如标题问题 查看当前永久路由信息 route print截图保存(重要) 截图保存(重要)查出来的永久路由,以防配置不成功时回退,回退方法就是下面的“添加永久路由” 删除当前的路由 0.0.0.0 是上面查出的网络地址 route delete 0.0.0.0内网IP信息 添加永久…...

C语言 形参、实参

定义 形参 形式上的参数,没有确定的值 实参 实际存在的,已经确定的参数,常量,变量,表达式,都是实参 区别 实参的值不随形参的变化而变化 在C语言中,数据传送是单向的,即只能把实…...

linux入门到精通-第四章-gcc编译器

目录 参考gcc概述gcc的工作流程 参考 gcc编译器 gcc概述 编辑器vi、记事本)是指我用它来写程序的 (编辑码),而我们写的代码语句,电脑是不懂的,我们需要把它转成电脑能懂的语句,编译器就是这样的转化工具。就是说,我…...

HCIP静态路由综合实验

题目: 步骤: 第一步:搭建上图所示拓扑; 第二步:为路由器接口配置IP地址; R1: [R1]display current-configuration intinterface GigabitEthernet0/0/0ip address 192.168.1.1 255.255.255.252 interfa…...

nginx前端配置(新)

基础配置 server {listen 80;server_name your-frontend-domain.com;# 根目录为前端网页文件所在目录root /path/to/your/frontend/files;# 默认文档(例如 index.html)index index.html;location / {try_files $uri $uri/ /index.html; #try_files 指…...

js,jquery,vue设置html标签隐藏不显示

前端 <p id"myElement"> </p>使用js将idmyElemnt的标签隐藏 使用 style.display 属性&#xff1a; 通过设置 style.display 属性为 "none"&#xff0c;可以隐藏标签。 var element document.getElementById("myElement");element…...

口袋参谋:如何实时监控对手数据?

​在如此激烈的淘宝天猫上开店&#xff0c;如何才能获取对手的数据呢&#xff1f; 俗话说的好&#xff0c;知己知彼百战百胜&#xff0c;那么这句话同样也适用于淘宝天猫上。 只有掌握对手推广策略以及数据&#xff0c;我们才有机会反超&#xff0c;因此做好竞品监控是运营店…...

Q-learning如何与ABC等一些元启发式算法能够结合在一起?

1、出现的问题 Q-learning能和元启发式算法&#xff08;如ABC、PSO、GA、SSA等&#xff09;结合在一起&#xff0c;实现工作流调度问题&#xff1f; Q-learning和ABC (Artificial Bee Colony) 等元启发式算法可以结合在一起以解决特定类型的问题。Q-learning是一种强化学习算法…...

从MSTAR到RSDD-SAR:一文看懂SAR目标检测数据集20年演进,你的模型该用哪个?

从MSTAR到RSDD-SAR&#xff1a;SAR目标检测数据集的二十年技术进化与选型实战 军用雷达技术研究员李明曾在2018年遇到一个棘手问题&#xff1a;他训练的舰船检测模型在实验室测试准确率达到98%&#xff0c;实际部署到南海海域时性能却暴跌至62%。问题根源很快锁定在数据集——他…...

M5Stack U126 RTC驱动库:PCF8563T嵌入式实时时钟深度解析

1. 项目概述M5Unit-RTC 是专为 M5Stack 生态中 Unit 系列模块设计的轻量级实时时钟&#xff08;RTC&#xff09;驱动库&#xff0c;对应硬件型号为U126—— 一款基于Ricoh RP5C01A 兼容架构、实际采用 NXP PCF8563T 实时时钟芯片的 IC 接口 RTC 模块。该模块集成高精度温度补偿…...

Obsidian Local Images Plus 插件使用指南

Obsidian Local Images Plus 插件使用指南 【免费下载链接】obsidian-local-images-plus This repo is a reincarnation of obsidian-local-images plugin which main aim was downloading images in md notes to local storage. 项目地址: https://gitcode.com/gh_mirrors/o…...

Mojo+Python混合部署案例深度拆解(从Jupyter到生产环境的无缝迁移全路径)

第一章&#xff1a;MojoPython混合部署案例深度拆解&#xff08;从Jupyter到生产环境的无缝迁移全路径&#xff09;Mojo 作为新兴的系统级编程语言&#xff0c;与 Python 生态天然兼容&#xff0c;为机器学习模型从探索性开发&#xff08;Jupyter Notebook&#xff09;迈向高吞…...

【深度解析】Claude Auto Dream:从“短期对话”到“项目级心智模型”的记忆系统升级

摘要 本文从 Anthropic 新增的 Auto Dream&#xff08;/dream&#xff09;功能出发&#xff0c;系统解析大模型“跨会话记忆一致性”这一核心难题&#xff0c;剖析 Auto Memory Auto Dream 组合背后的技术逻辑&#xff0c;并给出如何在自己项目里实现“类 Auto Dream 记忆管理…...

手把手教你用Node.js和Bun配置Cursor AI与Figma的MCP通信(附完整避坑清单)

从零构建Cursor AI与Figma的MCP通信桥梁&#xff1a;Node.jsBun全链路配置指南 当设计工具与AI代码助手实现双向通信时&#xff0c;创意工作流将迎来革命性变化。本文面向具备Node.js基础的前端/全栈开发者&#xff0c;深入解析如何搭建Cursor AI与Figma间的MCP协议通信通道。…...

离网逆变器下垂控制实战:从公式推导到MATLAB仿真(附资源下载)

离网逆变器下垂控制实战&#xff1a;从公式推导到MATLAB仿真 在新能源发电系统中&#xff0c;离网逆变器的稳定运行至关重要。传统电压电流双闭环控制虽然简单直接&#xff0c;但在面对复杂负载变化时&#xff0c;往往会出现电压跌落、频率失稳等问题。下垂控制技术通过模拟同…...

SGMICRO圣邦微 SGM6512YTS28G/TR TDFN-8L(2x2) 模拟开关/多路复用器

特性 典型导通电阻240120开路电阻平坦度3.3V至6V双电源供电操作3.3V至13.2V单电源工作电压-3dB带宽:70MHz轨到轨操作提供绿色TQFN-5x5-32L和TSSOP-28封装 工作温度范围:-40C至85C...

利用快马平台快速生成PyTorch图像分类原型,十分钟验证模型思路

最近在尝试用PyTorch做图像分类的原型验证时&#xff0c;发现从零开始搭建环境、写基础代码特别耗时。后来尝试用InsCode(快马)平台生成项目模板&#xff0c;十分钟就完成了模型验证。这里分享下用PyTorch快速构建MNIST分类器的关键步骤和踩坑经验。 数据准备环节 平台生成的代…...

告别‘阴阳屏’:深入MTK平台PQ底层,教你用代码实现多供应商屏幕色彩统一

MTK平台屏幕色彩统一实战&#xff1a;从Gamma参数调试到自动化加载 当你的项目同时采用三家不同供应商的屏幕模组时&#xff0c;用户滑动屏幕时可能看到三种截然不同的白色——这种"阴阳屏"现象在硬件采购多元化的今天越来越普遍。作为深耕显示领域多年的工程师&…...