黑马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;

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

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

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

相关文章

常规动态网页爬取

1.抓取动态网页“http://www.ptpress.com.cn”内容,将新书推荐中生活板块的书籍书名、价格和作者爬取并保存。 import requests import json import openpyxlurl https://www.ptpress.com.cn/recommendBook/getRecommendBookListForPortal?bookTagIdd5cbb56d-09ef…

21-数据结构-内部排序-交换排序

简介:主要根据两个数据进行比较从而交换彼此位置,以此类推,交换完全部。主要有冒泡和快速排序两种。 目录 一、冒泡排序 1.1简介: 1.2代码: 二、快速排序 1.1简介: 1.2代码: 一、冒泡排序…

测试用例基础

测试用例的基本要素 测试环境, 操作步骤, 测试数据, 预期结果 测试用例的设计方法 基于需求的设计方法 需求文档 -> 梳理需求(掌握需求) -> 针对文档设计测试用例 只是针对需求进行大概的测试 具体的设计方法 等价类 等价类: 依据需求将输入(特殊情况…

Qtday01(qt简介、简单窗口组件)

今日任务 仿qq登录界面&#xff0c;QT实现 代码&#xff1a; 头文件&#xff1a; #ifndef MAINWINDOW_H #define MAINWINDOW_H#include <QMainWindow> #include <QLineEdit> #include <QLabel> #include <QPushButton> #include <QtDebug> #…

基于人工水母优化的BP神经网络(分类应用) - 附代码

基于人工水母优化的BP神经网络&#xff08;分类应用&#xff09; - 附代码 文章目录 基于人工水母优化的BP神经网络&#xff08;分类应用&#xff09; - 附代码1.鸢尾花iris数据介绍2.数据集整理3.人工水母优化BP神经网络3.1 BP神经网络参数设置3.2 人工水母算法应用 4.测试结果…

基于SSM的旅游信息管理系统设计与实现

末尾获取源码 开发语言&#xff1a;Java Java开发工具&#xff1a;JDK1.8 后端框架&#xff1a;SSM 前端&#xff1a;采用JSP技术开发 数据库&#xff1a;MySQL5.7和Navicat管理工具结合 服务器&#xff1a;Tomcat8.5 开发软件&#xff1a;IDEA / Eclipse 是否Maven项目&#x…

SpringMVC简介

SpringMVC概述 SpringMVC是一个基于Spring开发的MVC轻量级框架&#xff0c;Spring3.0后发布的组件&#xff0c;SpringMVC可以和Spring无缝整合&#xff0c;使用DispatcherServlet作为前端控制器&#xff0c;且内部提供了处理映射器、处理适配器、视图解析器等组件&#xff0c;…

HTX 与 Zebec Protocol 展开深度合作,并将以质押者的身份参与 ZBC Staking

自 2023 年下半年以来&#xff0c;加密市场始终处于低迷的状态&#xff0c;在刚刚结束的 9 月&#xff0c;加密行业总融资额创下 2021 年以来的新低&#xff0c;同时在 DeFi 领域 DEX 交易额为 318.9 亿美元&#xff0c;同样创下 2021 年 1 月以来的新低。 对于投资者而言&…

ubuntu20.04下Kafka安装部署及基础使用

Ubuntu安装kafka基础使用 kafka 安装环境基础安装下载kafka解压文件修改配置文件启动kafka创建主题查看主题发送消息接收消息 工具测试kafka Assistant 工具连接测试基础连接连接成功查看topic查看消息查看分区查看消费组 Idea 工具测试基础信息配置信息当前消费组发送消息消费…

基于堆优化优化的BP神经网络(分类应用) - 附代码

基于堆优化优化的BP神经网络&#xff08;分类应用&#xff09; - 附代码 文章目录 基于堆优化优化的BP神经网络&#xff08;分类应用&#xff09; - 附代码1.鸢尾花iris数据介绍2.数据集整理3.堆优化优化BP神经网络3.1 BP神经网络参数设置3.2 堆优化算法应用 4.测试结果&#x…

The given SOAPAction http__xxxxx_xx does not match an operation

这是在客户端调用服务端接口时报出的错误&#xff0c;主要是客户端在调用时设置了SOAPAction&#xff0c;参考如下&#xff1a; 解决方案 在注解WebMethod() 中加上action注解&#xff0c;设置上一模一样的SOAPAction即可&#xff0c;如下&#xff1a; WebMethod(action &qu…

基于AT89C51流水花样灯proteus仿真设计

一、仿真原理图&#xff1a; 二、仿真效果图&#xff1a; 三、仿真工程&#xff1a; c51单片机流水灯花样灯proteus仿真设计资源-CSDN文库

【Linux】线程互斥与同步

文章目录 一.Linux线程互斥1.进程线程间的互斥相关背景概念2互斥量mutex3.互斥量的接口4.互斥量实现原理探究 二.可重入VS线程安全1.概念2.常见的线程不安全的情况3.常见的线程安全的情况4.常见的不可重入的情况5.常见的可重入的情况6.可重入与线程安全联系7.可重入与线程安全区…

Library projects cannot set applicationId. applicationId is set to

Library projects cannot set applicationId. applicationId is set to com.xxx.library_cache in default config. 删掉即可

联邦学习+梯度+梯度剪枝

联邦学习需要参与者在每一次的本地训练后&#xff0c;上传所更新的模型参数并与其他参与者共享&#xff0c;而参数更新中仍有可能包含所有者的敏感信息 解决方案&#xff1a; 加密方法&#xff08;安全多方计算、同态加密&#xff09;通过将明文编码为密文的方式&#xff0c;…

Numpy(三)Numpy的函数与排序

Numpy&#xff08;三&#xff09;Numpy的函数与排序 一、通用函数 *通用函数使得Numpy数组操作用于数组中的每一个函数。它通常用C语言实现&#xff0c;可以提升执行效率。 1.1数学运算函数 1.1.1算数运算函数&#xff1a;通常使用的加、减、乘、除、乘方等数学运算符号 ①…

【广州华锐互动】VR高层火灾应急疏散演练提供一种无风险的逃生体验

在科技进步的今天&#xff0c;我们已经能够利用虚拟现实&#xff08;VR&#xff09;技术来模拟各种紧急情况&#xff0c;其中就包括高楼火灾逃生。VR高层火灾应急疏散演练系统是一种新兴的技术&#xff0c;它使用虚拟现实环境来模拟高楼火灾的实际情况&#xff0c;为人们提供一…

离线 notepad++ 添加到右键菜单

复制下面代码&#xff0c;修改文件后缀名为&#xff1a;reg Windows Registry Editor Version 5.00[HKEY_CLASSES_ROOT\*\shell\NotePad] "Notepad" "Icon""D:\\Notepad\\notepad.exe,0"[HKEY_CLASSES_ROOT\*\shell\NotePad\Command] "D:\…

基于水基湍流优化的BP神经网络(分类应用) - 附代码

基于水基湍流优化的BP神经网络&#xff08;分类应用&#xff09; - 附代码 文章目录 基于水基湍流优化的BP神经网络&#xff08;分类应用&#xff09; - 附代码1.鸢尾花iris数据介绍2.数据集整理3.水基湍流优化BP神经网络3.1 BP神经网络参数设置3.2 水基湍流算法应用 4.测试结果…

Discuz户外旅游|旅行游记模板/Discuz!旅行社、旅游行业门户网站模板

价值328的discuz户外旅游|旅行游记模板&#xff0c;本模板需要配套【仁天际-PC模板管理】插件使用。 模板说明 1、模板页面宽度1200px&#xff0c;简洁大气&#xff0c;较适合户外旅行、骑行、游记、摩旅、旅游、活动等类型的论坛、频道网站&#xff1b; 2、所优化的页面有&…