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语言中多组输入的秘密!
场景引入: 你是否在刷题过程中,经常遇到以下场景呢? 场景一: 场景二: 从这些题上都能看见输入描述中提出了一条多组输入,那啥是多组输入?如何实现它呢? 多组输入:在输入…...
忍者像素绘卷镜像免配置:一键切换‘天界画坊’/‘木叶村’双主题UI
忍者像素绘卷镜像免配置:一键切换天界画坊/木叶村双主题UI 1. 产品概述 忍者像素绘卷是一款专为像素艺术创作者设计的图像生成工作站,基于Z-Image-Turbo深度优化引擎开发。这款工具将传统忍者文化与现代AI技术完美结合,创造出独特的16-Bit复…...
告别“AI失忆“!掌握Harness Engineering,让AI秒变高效生产力工具
文章指出AI难以胜任长周期复杂任务并非因"不够聪明",而是缺乏工程化工作方式。核心解法是引入Harness运行框架,通过外部记忆替代上下文依赖、强制任务拆解、建立固定执行循环及测试优先机制,将AI从单打独斗的"代码生成器"…...
Copilot 插入广告引担忧,AI 工具商业化边界受考
Copilot 拉取请求中惊现广告插入团队成员使用 Copilot 纠正拉取请求(PR)中的拼写错误时,出现了令人意想不到的情况。Copilot 不仅修改了 PR 描述,还插入了它自身以及 Raycast 的广告。这一行为引发了用户的强烈反应,有…...
传统信号处理与AI结合:FUTURE POLICE模型前端预处理技术详解
传统信号处理与AI结合:FUTURE POLICE模型前端预处理技术详解 最近在做一个语音相关的AI项目,发现直接把麦克风录到的原始音频丢给模型,效果总是不太理想。背景的键盘声、远处的谈话声,甚至是空调的嗡嗡声,都会让模型的…...
2026年,市面上正规SSL证书品牌众多,哪家才是真正专业之选?
在当今数字化时代,网络安全至关重要,SSL证书作为保障网站安全的关键工具,其重要性不言而喻。2026年,市面上正规的SSL证书品牌众多,企业在选择时往往会感到困惑。本文将为大家分析如何选择专业的SSL证书品牌,…...
AirNgin ESP32 MQTT客户端:面向工业IoT的平台化固件库
1. 项目概述AirNgin ESP32 MQTT Client 是一款专为 ESP32 平台设计的 Arduino 兼容库,面向伊朗本土 IoT 平台 AirNgin 构建。该库并非通用 MQTT 封装,而是深度集成 AirNgin 云平台特有协议栈与管理逻辑的生产级固件组件。其核心价值在于将设备接入、状态…...
误删Anaconda?4招紧急救援方案
问题背景与常见场景Anaconda被误删可能由误操作、系统崩溃、病毒攻击等原因导致,涉及环境、包、配置等关键数据丢失。抢救前的准备工作立即停止对Anaconda所在磁盘的写入操作,避免数据被覆盖。 确认删除方式(回收站、ShiftDelete、格式化等&a…...
check-dev-env - 开发环境依赖检测技能
check-dev-env - 开发环境依赖检测技能 技能概述 check-dev-env 是一个用于自动检查开发环境中常见依赖项是否已安装的 AI Agent 技能。该技能能够快速验证 Java、Maven、Node.js、NPM、Go、Python、Git 等主流开发工具的安装状态和版本号。 📋 元信息 项目说明技…...
JIT 与 AOT 编译区别
注:本文为 “JIT 与 AOT ” 相关合辑。 英文引文,机翻未校。 中文引文,未整理去重。 图片清晰度受引文原图所限。 如有内容异常,请看原文。 JIT 与 AOT 区别 1 基本概念与典型实例 JIT (Just-In-Time):即时编译&#…...
3步解锁:让老旧电脑流畅运行Windows 11的终极精简方案
3步解锁:让老旧电脑流畅运行Windows 11的终极精简方案 【免费下载链接】tiny11builder Scripts to build a trimmed-down Windows 11 image. 项目地址: https://gitcode.com/GitHub_Trending/ti/tiny11builder 在数字时代,系统性能直接影响工作效…...
