mysql使用--表达式和函数
1.表达式
 如:1+1,一般包含操作数,运算符。
 _1.操作数
 MYSQL中最常用的操作数有以下几种
 (1).常数
 (2).列名,针对某个具体的表,它的列名可被当作表达式的一部分
 (3).函数调用
 一个函数用于完成某个特定的功能。比如NOW()获取当前时间。
 (4).其他表达式
 一个表达式也可作为一个操作数与另一个操作数形成一个更复杂的形式。
_2.运算符
 常用的有
 (1).算术运算符
| 运算符 | 示例 | 描述 | 
|---|---|---|
| + | a+b | 加法 | 
| - | a-b | 减法 | 
| * | a*b | 乘法 | 
| / | a/b | 除法 | 
| DIV | a DIV b | 除法,取商的整数部分 | 
| % | a%b | 取余 | 
| - | -a | 取负值 | 
DIV取商的整数部分,/会保留小数部分。
 (2).比较运算符
| 运算符 | 示例 | 解释 | 
|---|---|---|
| = | a=b | 等于 | 
| <=> | a<=>b | 等于(NULL值安全等于) | 
| <>或!= | a<>b | 不等于 | 
| < | a<b | 小于 | 
| <= | a<=b | 小于或等于 | 
| > | a>b | 大于 | 
| >= | a>=b | 大于等于 | 
| BETWEEN | a BETWEEN b AND c | a需满足b<=a<=c | 
| NOT BETWEEN | a NOT BETWEEN b AND c | a需不满足b<=a<=c | 
| IN | a IN (b1, b2) | a是b1,b2中的某个 | 
| NOT IN | a NOT IN (b1, b2, b3) | a不是b1,b2中的某个 | 
| IS NULL | a IS NULL | |
| IS NOT NULL | a IS NOT NULL | |
| LIKE | a LIKE b | a匹配b | 
| NOT LIKE | a NOT LIKE b | 不匹配 | 
比较表达式结果要么1(TRUE),要么0(FALSE)
 (3).逻辑运算符
| 运算符 | 示例 | 描述 | 
|---|---|---|
| NOT(也可写作!) | NOT a | 对a取反 | 
| AND(也可写作&&) | a AND b | |
| OR(也可写作 | ) | |
| XOR | a XOR b | a和b有且只有一个为真时,表达式为真 | 
_3.表达式的使用
 _3.1.作为计算字段放在SELECT子句中
 如:SELECT number, score+100 FROM student_score;
 还有像这样的:SELECT 1, ‘a’ FROM student_score;
 查询处理为:
 (1).基于FROM结合WHERE得到结果集。
 (2).对结果集每一行结合SELECT语句得到最终集中一行结果。
_3.2.作为搜索条件放在WHERE子句
 基于FROME结合WHERE得到结果集时,对FROM得到表的每一行采用WHERE表达式,结果为TRUE,此行加入结果集。
_3.3.表达式中的NULL
 _3.3.1.NULL作为算术符的操作数时,表达式的结果都为NULL
 如:1+NULL结果是NULL,NULL*1结果也是NULL
 _3.3.2.除<=>、IS NULL、IS NOT NULL外,NULL作为其余比较运算符的操作数时,表达式的结果都为NULL。
 如:1=NULL结果是NULL,2>NULL结果是NULL。
 IS NULL,IS NOT NULL用于判断某个值是否为NULL,结果只能是0或1。
 <=>的操作数不包含NULL时,等价于=;当<=>的一个操作数为NULL,另一个不为NULL时,结果为0;两个操作数都为NULL时,结果为1;
2.函数
 _1.字符串处理函数
| 名称 | 调用示例 | 结果 | 描述 | 
|---|---|---|---|
| LEFT | LEFT(‘abc123’, 3) | abc | 提取左边指定长度串 | 
| RIGHT | RIGHT(‘abc123’, 3) | 123 | |
| LENGTH | LENGTH(‘abc’) | 3 | |
| LOWER | LOWER(‘ABC’) | abc | |
| UPPER | UPPER(‘abc’) | ABC | |
| LTRIM | LTRIM(’ abc’) | abc | |
| RTRIM | RTRIM('abc ') | abc | |
| SUBSTRING | SUBSTRING(‘abc123’, 2, 3) | bc1 | |
| CONCAT | CONCAT(‘abc’, ‘123’, ‘xyz’) | abc123xyz | |
| CHAR_LENGTH | CHAR_LENGTH(‘狗哥’) | 2 | 给定字符串的字符数量 | 
_2.日期和时间处理函数
| 名称 | 示例 | 结果 | 描述 | 
|---|---|---|---|
| NOW | NOW() | 2021-05-11 17:10:43 | 当前日期和时间 | 
| CURDATE | CURDATE() | 2021-05-11 | |
| CURTIME | CURTIME() | 17:10:43 | |
| DATE | DATE(‘2021-05-11 17:10:43’) | 2021-05-11 | 将给定日期和时间值的日期提取出来 | 
| DATE_ADD | DATE_ADD(‘2021-05-11 17:10:43’, INTERVAL 2 DAY) | 2021-05-13 17:10:43 | |
| DATE_SUB | DATE_SUB(‘2021-05-11 17:10:43’, INTERVAL 2 DAY) | 2021-05-09 17:10:43 | |
| DATEDIFF | DATEDIFF(‘2021-05-11’, ‘2021-05-17’) | -6 | |
| DATE_FORMAT | DATE_FORMAT(NOW(), ‘%m-%d-%Y’) | 05-11-2021 | |
| YEAR | YEAR(‘2021-05-11 17:10:43’) | 2021 | |
| MONTH | MONTH(‘2021-05-11 17:10:43’) | 5 | |
| DAY | DAY(‘2021-05-11 17:10:43’) | 11 | |
| HOUR | HOUR(‘2021-05-11 17:10:43’) | 17 | |
| MINUTE | MINUTE(‘2021-05-11 17:10:43’) | 10 | |
| SECOND | SECOND(‘2021-05-11 17:10:43’) | 43 | 
_2.1.使用DATE_ADD,DATE_SUB时,可自定义增加或减去的时间间隔的单位。
| 单位 | 描述 | 
|---|---|
| MICROSECOND | 毫秒 | 
| SECOND | 秒 | 
| MINUTE | 分钟 | 
| HOUR | 小时 | 
| DAY | 天 | 
| WEEK | 星期 | 
| MONTH | 月 | 
| QUARTER | 季度 | 
| YEAR | 年 | 
如:SELECT DATE_ADD(‘2021-05-11 17:10:43’, INTERVAL 2 MINUTE)
_2.2.使用DATE_FORMAT需注意,可通过一些所谓的格式符来自定义日期和时间的显示格式。
| 格式符 | 含义 | 
|---|---|
| %b | 简写的月份名称(Jan、、、) | 
| %D | 带英文后缀的月份中的日期(0th,1st,…) | 
| %d | 数字格式的月份中的日期(00,01,…) | 
| %f | 微妙(000000~999999) | 
| %H | 24小时制的小时(00~23) | 
| %h | 12小时制的小时(01~12) | 
| %i | 数值格式的分钟(00~59) | 
| %M | 月份名(January,…) | 
| %m | 数值形式的月份(00~12) | 
| %p | 上午或下午(AM代表上午,PM代表下午) | 
| %S | 秒(00~59) | 
| %s | 秒(00~59) | 
| %W | 星期名(Sunday,…) | 
| %w | 周内第几天(0=星期日,…) | 
| %Y | 4位数字形式的年(例如2019) | 
| %y | 2位数字形式的年(例如19) | 
_2.3.数值处理函数
| 名称 | 示例 | 结果 | 描述 | 
|---|---|---|---|
| ABS | ABS(-1) | 1 | |
| Pi | PI() | 3.141593 | |
| COS | COS(PI()) | -1 | |
| SIN | SIN(PI()) | 1 | |
| TAN | TAN(0) | 0 | |
| POW | POW(2, 2) | 4 | |
| SQRT | SQRT(9) | 3 | |
| MOD | MOD(5, 2) | 1 | |
| RAND | RAND() | 0.7537623539136372 | |
| CEIL | CEIL(2.3) | 3 | |
| FLOOR | FLOOR(2.3) | 2 | 
_2.4.流程控制表达式和函数
 CASE WHEN 表达式1 THEN 结果1 [WHEN 表达式1 THEN 结果1 …] [ELSE 默认结果] END
 如:SELECT number, score, CASE WHEN score < 60 THEN ‘不及格’ WHEN score < 90 THEN ‘及格’ ELSE ‘优秀’ END As level FROM student_score;
CASE表达式还有第二种形式:
 CASE 待比较表达式 WHEN 表达式1 THEN 结果1 [WHEN 表达式2 THEN 结果2 …] [ELSE 默认结果] END
 它的含义是:
 (1).待比较表达式值和表达式1值相同时,整个CASE值是结果1
 (2).待比较表达式值和表达式2值相同时,整个CASE值是结果2
 …
 (3).待比较表达式值和所有WHEN后的表达式值都不同,则整个CASE表达式的值就是ELSE之后的默认结果。
 如:SELECT name, department, CASE deparement WHEN ‘计算机学院’ THEN ‘1级学科’ WHEN ‘航天学院’ THEN ‘2级学科’ END AS 学院类别 FROM student_info;
相关文章:
mysql使用--表达式和函数
1.表达式 如:11,一般包含操作数,运算符。 _1.操作数 MYSQL中最常用的操作数有以下几种 (1).常数 (2).列名,针对某个具体的表,它的列名可被当作表达式的一部分 (3).函数调用 一个函数用于完成某个特定的功能。比如NOW()…...
<蓝桥杯软件赛>零基础备赛20周--第6周--数组和队列
报名明年4月蓝桥杯软件赛的同学们,如果你是大一零基础,目前懵懂中,不知该怎么办,可以看看本博客系列:备赛20周合集 20周的完整安排请点击:20周计划 每周发1个博客,共20周(读者可以按…...
软件开发、网络空间安全、人工智能三个方向的就业和前景怎么样?哪个方向更值得学习?
软件开发、网络空间安全、人工智能这三个方向都是当前及未来的热门领域,每个领域都有各自的就业前景和价值,以下是对这三个方向的分析: 1、软件开发: 就业前景:随着信息化的加速,软件开发的需求日益增长。…...
新增文章分类
pojo.Category package com.lin.springboot01.pojo;import jakarta.validation.constraints.NotEmpty; import lombok.Data;import java.time.LocalDateTime;Data public class Category {private Integer id;//主键NotEmptyprivate String categoryName;//分类名称NotEmptypr…...
选硬币该用动态规划
选硬币: 现有面值分别为1角1分,5分,1分的硬币,请给出找1角5分钱的最佳方案。 #include <iostream> #include <vector>std::vector<int> findChange(int amount) {std::vector<int> coins {11, 5, 1}; /…...
LeetCode 2342. 数位和相等数对的最大和:哈希表
【LetMeFly】2342.数位和相等数对的最大和:哈希表 力扣题目链接:https://leetcode.cn/problems/max-sum-of-a-pair-with-equal-sum-of-digits/ 给你一个下标从 0 开始的数组 nums ,数组中的元素都是 正 整数。请你选出两个下标 i 和 j&…...
Vulkan渲染引擎开发教程 一、开发环境搭建
一 安装 Vulkan SDK Vulkan SDK 就是我们要搞的图形接口 首先到官网下载SDK并安装 https://vulkan.lunarg.com/sdk/home 二 安装 GLFW 窗口库 GLFW是个跨平台的小型窗口库,也就是显示窗口,图形的载体 去主页下载并安装,https://www.glfw.…...
(带教程)商业版SEO关键词按天计费系统:关键词排名优化、代理服务、手机自适应及搭建教程
源码简介: 1、会员管理: 该系统分为三个级别的会员流程:总站管理员、代理与会员(会员有普通会员、中级会员和高级会员三个等级)。总站管理员可以添加代理用户并为其充值余额,代理用户可以为普通用户充值余…...
IDEA 快捷键汇总
目录 1、altinsert 2、ctrl/ 3、altenter 4、alt回车 5、ctrlD 6、ctrlaltL 7、ctrl点击 8、alt左键向下拉 9、ctrlaltv 10、ctrlaltwint 1、altinsert 快速创建代码,可以快速创建类中get set tostring等方法 2、ctrl/ 单行注释 3、altenter…...
目标检测YOLO实战应用案例100讲-基于机器视觉的水稻病虫害监测预警
目录 前言 国内外研究现状 国外研究现状 国内研究现状 2 相关理论与技术...
OrthoNets:正交信道注意网络
文章目录 摘要1、简介2、相关工作3、方法4、实验设置及结果5、论述6、结论摘要 链接:https://arxiv.org/pdf/2311.03071v2.pdf 设计有效的通道注意力机制要求人们找到一种有损压缩方法,以实现最佳特征表示。尽管该领域近年来取得了进展,但仍然存在一个未解决的问题。FcaNet…...
C_12练习题
一、单项选择题(本大题共20小题,每小题2分,共40分。在每小题给出的四个备选项中,选出一个正确的答案,并将所选项前的字母填写在答题纸的相应位置上。) C 风格的注释,也称块注释或多行注释,以()…...
导航守卫有哪三种?
导航守卫主要分为三种: 全局前置守卫:使用 router.beforeEach 注册,作用是在路由切换开始前进行拦截和处理,可以用来进行一些全局的权限校验、登录状态检查等操作。 全局解析守卫:使用 beforeResolve 注册,…...
强烈 推荐 13 个 Web前端在线代码IDE
codesandbox.io(国外,提供免费空间) 网址:https://codesandbox.io/ CodeSandbox 专注于构建完整的 Web 应用程序,支持多种流行的前端框架和库,例如 React、Vue 和 Angular。它提供了一系列增强的功能&…...
网络协议 WebSocket
一、介绍 WebSocket 是基于 TCP 的一种新的网络协议。它实现了浏览器与服务器全双工通信——浏览器和服务器只需要完成一次握手,两者之间就可以创建持久性的连接, 并进行双向数据传输 1、HTTP协议和WebSocket协议对比 HTTP 是短连接WebSocket 是长连接H…...
路径操作 合法路径名
python中路径的三种合法表示:在路径前面加上r、分隔符使用/。 在路径前面加上r python中在前面加上r,是防止字符转义。 例如:这样一个路径: \Undergraduate\School\Programme\Python_Learnpython会将这个字符串的**\和\后面的…...
JavaEE初阶 01 计算机是如何工作的
前言 今天开始进行对JavaEE的一些基本总结,希望大家能在阅读中有所收获,如有错误还望多多指正. 1.冯诺依曼体系结构 这个体系结构相信学计算机的同学都不陌生,但是你真的知道这个体系结构说的是什么嘛?请听我娓娓道来.首先我先给出一张冯诺依曼体系结构的简图 你可以理解为当前…...
【shell 常用脚本30例】
先了解下编写Shell过程中注意事项 开头加解释器:#!/bin/bash语法缩进,使用四个空格;多加注释说明。命名建议规则:全局变量名大写、局部变量小写,函数名小写,名字体现出实际作用。默认变量是全局的…...
【我和Python算法的初相遇】——体验递归的可视化篇
🌈个人主页: Aileen_0v0 🔥系列专栏:PYTHON数据结构与算法学习系列专栏💫"没有罗马,那就自己创造罗马~" 目录 递归的起源 什么是递归? 利用递归解决列表求和问题 递归三定律 递归应用-整数转换为任意进制数 递归可视化 画…...
【C语言的秘密】密探—深究C语言中多组输入的秘密!
场景引入: 你是否在刷题过程中,经常遇到以下场景呢? 场景一: 场景二: 从这些题上都能看见输入描述中提出了一条多组输入,那啥是多组输入?如何实现它呢? 多组输入:在输入…...
观成科技:隐蔽隧道工具Ligolo-ng加密流量分析
1.工具介绍 Ligolo-ng是一款由go编写的高效隧道工具,该工具基于TUN接口实现其功能,利用反向TCP/TLS连接建立一条隐蔽的通信信道,支持使用Let’s Encrypt自动生成证书。Ligolo-ng的通信隐蔽性体现在其支持多种连接方式,适应复杂网…...
2025年能源电力系统与流体力学国际会议 (EPSFD 2025)
2025年能源电力系统与流体力学国际会议(EPSFD 2025)将于本年度在美丽的杭州盛大召开。作为全球能源、电力系统以及流体力学领域的顶级盛会,EPSFD 2025旨在为来自世界各地的科学家、工程师和研究人员提供一个展示最新研究成果、分享实践经验及…...
可靠性+灵活性:电力载波技术在楼宇自控中的核心价值
可靠性灵活性:电力载波技术在楼宇自控中的核心价值 在智能楼宇的自动化控制中,电力载波技术(PLC)凭借其独特的优势,正成为构建高效、稳定、灵活系统的核心解决方案。它利用现有电力线路传输数据,无需额外布…...
如何在最短时间内提升打ctf(web)的水平?
刚刚刷完2遍 bugku 的 web 题,前来答题。 每个人对刷题理解是不同,有的人是看了writeup就等于刷了,有的人是收藏了writeup就等于刷了,有的人是跟着writeup做了一遍就等于刷了,还有的人是独立思考做了一遍就等于刷了。…...
深度学习水论文:mamba+图像增强
🧀当前视觉领域对高效长序列建模需求激增,对Mamba图像增强这方向的研究自然也逐渐火热。原因在于其高效长程建模,以及动态计算优势,在图像质量提升和细节恢复方面有难以替代的作用。 🧀因此短时间内,就有不…...
08. C#入门系列【类的基本概念】:开启编程世界的奇妙冒险
C#入门系列【类的基本概念】:开启编程世界的奇妙冒险 嘿,各位编程小白探险家!欢迎来到 C# 的奇幻大陆!今天咱们要深入探索这片大陆上至关重要的 “建筑”—— 类!别害怕,跟着我,保准让你轻松搞…...
并发编程 - go版
1.并发编程基础概念 进程和线程 A. 进程是程序在操作系统中的一次执行过程,系统进行资源分配和调度的一个独立单位。B. 线程是进程的一个执行实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位。C.一个进程可以创建和撤销多个线程;同一个进程中…...
Golang——6、指针和结构体
指针和结构体 1、指针1.1、指针地址和指针类型1.2、指针取值1.3、new和make 2、结构体2.1、type关键字的使用2.2、结构体的定义和初始化2.3、结构体方法和接收者2.4、给任意类型添加方法2.5、结构体的匿名字段2.6、嵌套结构体2.7、嵌套匿名结构体2.8、结构体的继承 3、结构体与…...
在树莓派上添加音频输入设备的几种方法
在树莓派上添加音频输入设备可以通过以下步骤完成,具体方法取决于设备类型(如USB麦克风、3.5mm接口麦克风或HDMI音频输入)。以下是详细指南: 1. 连接音频输入设备 USB麦克风/声卡:直接插入树莓派的USB接口。3.5mm麦克…...
Vue 3 + WebSocket 实战:公司通知实时推送功能详解
📢 Vue 3 WebSocket 实战:公司通知实时推送功能详解 📌 收藏 点赞 关注,项目中要用到推送功能时就不怕找不到了! 实时通知是企业系统中常见的功能,比如:管理员发布通知后,所有用户…...
