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语言中多组输入的秘密!
场景引入: 你是否在刷题过程中,经常遇到以下场景呢? 场景一: 场景二: 从这些题上都能看见输入描述中提出了一条多组输入,那啥是多组输入?如何实现它呢? 多组输入:在输入…...
KubeSphere 容器平台高可用:环境搭建与可视化操作指南
Linux_k8s篇 欢迎来到Linux的世界,看笔记好好学多敲多打,每个人都是大神! 题目:KubeSphere 容器平台高可用:环境搭建与可视化操作指南 版本号: 1.0,0 作者: 老王要学习 日期: 2025.06.05 适用环境: Ubuntu22 文档说…...

Appium+python自动化(十六)- ADB命令
简介 Android 调试桥(adb)是多种用途的工具,该工具可以帮助你你管理设备或模拟器 的状态。 adb ( Android Debug Bridge)是一个通用命令行工具,其允许您与模拟器实例或连接的 Android 设备进行通信。它可为各种设备操作提供便利,如安装和调试…...

【力扣数据库知识手册笔记】索引
索引 索引的优缺点 优点1. 通过创建唯一性索引,可以保证数据库表中每一行数据的唯一性。2. 可以加快数据的检索速度(创建索引的主要原因)。3. 可以加速表和表之间的连接,实现数据的参考完整性。4. 可以在查询过程中,…...

相机Camera日志实例分析之二:相机Camx【专业模式开启直方图拍照】单帧流程日志详解
【关注我,后续持续新增专题博文,谢谢!!!】 上一篇我们讲了: 这一篇我们开始讲: 目录 一、场景操作步骤 二、日志基础关键字分级如下 三、场景日志如下: 一、场景操作步骤 操作步…...

UE5 学习系列(三)创建和移动物体
这篇博客是该系列的第三篇,是在之前两篇博客的基础上展开,主要介绍如何在操作界面中创建和拖动物体,这篇博客跟随的视频链接如下: B 站视频:s03-创建和移动物体 如果你不打算开之前的博客并且对UE5 比较熟的话按照以…...
Linux简单的操作
ls ls 查看当前目录 ll 查看详细内容 ls -a 查看所有的内容 ls --help 查看方法文档 pwd pwd 查看当前路径 cd cd 转路径 cd .. 转上一级路径 cd 名 转换路径 …...

Cilium动手实验室: 精通之旅---20.Isovalent Enterprise for Cilium: Zero Trust Visibility
Cilium动手实验室: 精通之旅---20.Isovalent Enterprise for Cilium: Zero Trust Visibility 1. 实验室环境1.1 实验室环境1.2 小测试 2. The Endor System2.1 部署应用2.2 检查现有策略 3. Cilium 策略实体3.1 创建 allow-all 网络策略3.2 在 Hubble CLI 中验证网络策略源3.3 …...
linux 错误码总结
1,错误码的概念与作用 在Linux系统中,错误码是系统调用或库函数在执行失败时返回的特定数值,用于指示具体的错误类型。这些错误码通过全局变量errno来存储和传递,errno由操作系统维护,保存最近一次发生的错误信息。值得注意的是,errno的值在每次系统调用或函数调用失败时…...
反射获取方法和属性
Java反射获取方法 在Java中,反射(Reflection)是一种强大的机制,允许程序在运行时访问和操作类的内部属性和方法。通过反射,可以动态地创建对象、调用方法、改变属性值,这在很多Java框架中如Spring和Hiberna…...

网络编程(UDP编程)
思维导图 UDP基础编程(单播) 1.流程图 服务器:短信的接收方 创建套接字 (socket)-----------------------------------------》有手机指定网络信息-----------------------------------------------》有号码绑定套接字 (bind)--------------…...