mysql使用--表达式和函数

1.表达式
如:1+1,一般包含操作数,运算符。
_1.操作数
MYSQL中最常用的操作数有以下几种
(1).常数
(2).列名,针对某个具体的表,它的列名可被当作表达式的一部分
(3).函数调用
一个函数用于完成某个特定的功能。比如NOW()获取当前时间。
(4).其他表达式
一个表达式也可作为一个操作数与另一个操作数形成一个更复杂的形式。

_2.运算符
常用的有
(1).算术运算符

运算符示例描述
+a+b加法
-a-b减法
*a*b乘法
/a/b除法
DIVa DIV b除法,取商的整数部分
%a%b取余
--a取负值

DIV取商的整数部分,/会保留小数部分。
(2).比较运算符

运算符示例解释
=a=b等于
<=>a<=>b等于(NULL值安全等于)
<>或!=a<>b不等于
<a<b小于
<=a<=b小于或等于
>a>b大于
>=a>=b大于等于
BETWEENa BETWEEN b AND ca需满足b<=a<=c
NOT BETWEENa NOT BETWEEN b AND ca需不满足b<=a<=c
INa IN (b1, b2)a是b1,b2中的某个
NOT INa NOT IN (b1, b2, b3)a不是b1,b2中的某个
IS NULLa IS NULL
IS NOT NULLa IS NOT NULL
LIKEa LIKE ba匹配b
NOT LIKEa NOT LIKE b不匹配

比较表达式结果要么1(TRUE),要么0(FALSE)
(3).逻辑运算符

运算符示例描述
NOT(也可写作!)NOT a对a取反
AND(也可写作&&)a AND b
OR(也可写作
XORa XOR ba和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.字符串处理函数

名称调用示例结果描述
LEFTLEFT(‘abc123’, 3)abc提取左边指定长度串
RIGHTRIGHT(‘abc123’, 3)123
LENGTHLENGTH(‘abc’)3
LOWERLOWER(‘ABC’)abc
UPPERUPPER(‘abc’)ABC
LTRIMLTRIM(’ abc’)abc
RTRIMRTRIM('abc ')abc
SUBSTRINGSUBSTRING(‘abc123’, 2, 3)bc1
CONCATCONCAT(‘abc’, ‘123’, ‘xyz’)abc123xyz
CHAR_LENGTHCHAR_LENGTH(‘狗哥’)2给定字符串的字符数量

_2.日期和时间处理函数

名称示例结果描述
NOWNOW()2021-05-11 17:10:43当前日期和时间
CURDATECURDATE()2021-05-11
CURTIMECURTIME()17:10:43
DATEDATE(‘2021-05-11 17:10:43’)2021-05-11将给定日期和时间值的日期提取出来
DATE_ADDDATE_ADD(‘2021-05-11 17:10:43’, INTERVAL 2 DAY)2021-05-13 17:10:43
DATE_SUBDATE_SUB(‘2021-05-11 17:10:43’, INTERVAL 2 DAY)2021-05-09 17:10:43
DATEDIFFDATEDIFF(‘2021-05-11’, ‘2021-05-17’)-6
DATE_FORMATDATE_FORMAT(NOW(), ‘%m-%d-%Y’)05-11-2021
YEARYEAR(‘2021-05-11 17:10:43’)2021
MONTHMONTH(‘2021-05-11 17:10:43’)5
DAYDAY(‘2021-05-11 17:10:43’)11
HOURHOUR(‘2021-05-11 17:10:43’)17
MINUTEMINUTE(‘2021-05-11 17:10:43’)10
SECONDSECOND(‘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)
%H24小时制的小时(00~23)
%h12小时制的小时(01~12)
%i数值格式的分钟(00~59)
%M月份名(January,…)
%m数值形式的月份(00~12)
%p上午或下午(AM代表上午,PM代表下午)
%S秒(00~59)
%s秒(00~59)
%W星期名(Sunday,…)
%w周内第几天(0=星期日,…)
%Y4位数字形式的年(例如2019)
%y2位数字形式的年(例如19)

_2.3.数值处理函数

名称示例结果描述
ABSABS(-1)1
PiPI()3.141593
COSCOS(PI())-1
SINSIN(PI())1
TANTAN(0)0
POWPOW(2, 2)4
SQRTSQRT(9)3
MODMOD(5, 2)1
RANDRAND()0.7537623539136372
CEILCEIL(2.3)3
FLOORFLOOR(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;

除CASE语句外,还可用下面三个函数进行条件判断。
(1).IF(表达式1, 表达式2, 表达式3)
含义为:表达式1为TRUE时,返回值为表达式2;否则为表达式3;
(2).IFNULL(表达式1, 表达式2)
含义为:当表达式1为NULL时,返回值为表达式2;否则为表达式1;
(3).NULLIF(表达式1, 表达式2)
含义为:当表达式1值和表达式2值相同时,返回值为NULL;否则为表达式1;

_2.5.汇总函数
_1.常见函数
(1).MAX(表达式)
(2).MIN(表达式)
(3).SUM(表达式)
(4).AVG(表达式)
(5).COUNT(表达式)
上述函数的原理是,先从表运算得到结果集1,结果集1通过WHERE过滤得到结果集2,对结果集2的每一行执行汇总函数。结果集2中所有行处理完毕后,得到一个最终结果。
_2.汇总函数中DISTINCT的使用
如:SELECT COUNT(DISTINCT major) FROM student_info;
这样,结果集2中相同的表达式即使出现在多行,也只参与一次汇总函数运算。
_3.使用多个汇总函数
如:SELECT COUNT(*) AS 成绩记录总数, MAX(score) AS 最高成绩, MIN(score) AS 最低成绩, AVG(score) AS 平均成绩 FROM student_score;

3.隐式类型转换
_1.将操作数类型转换为运算符需要的类型
如:SELECT 1+2, ‘1’+2, ‘1’+‘2’结果中每一列都是数值3
一些字符串转换成数值的举例:
“12a”–>12,“2019-01”–>2019,“abc”–>0
_2.将函数参数转换成该函数期望的类型
指的是实参被转换为形参所需类型。
如:CONCAT(‘1’, ‘2’),CONCAT(‘1’, 2),CONCAT(1, 2)结果都是’12’。
_3.在WHERE子句中,单独的字符串类型的表达式会被转换为DOUBLE类型的数值。
_4.存储数据时,把某个值转换为某个列需要的类型
类似与实参转换为形参。
注意的是,向表中插入记录时,发生字符串的表达式转换为DOUBLE时,不可产生截断。
‘12a’->12产生截断,因为存在字符a未参与转换。
‘12’->12未产生截断,因为所有字符都参与了转换。

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

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

相关文章

【PyQt小知识 - 3】: QComboBox下拉框内容的设置和更新、默认值的设置、值和下标的获取

QComboBox 内容的设置和更新 from PyQt5.QtWidgets import * import sysapp QApplication(sys.argv)mainwindow QMainWindow() mainwindow.resize(200, 200) # 设置下拉框 comboBox QComboBox(mainwindow) comboBox.addItems([上, 中, 下])button QPushButton(更新, main…

Colab跑项目

这里写目录标题 Colab文件目录路径显示更改colab当前工作文件夹Colab挂载谷歌云盘colab使用命令&#xff08;从这开始看&#xff0c;前面no zuo no die)最紧要&#xff0c;首先&#xff0c;修改笔记本设置使用启用gpu![在这里插入图片描述](https://img-blog.csdnimg.cn/591a6c…

NAS层协议栈学习笔记

NAS(Non-Access Stratum)是无线网络中非接入层及包括移动性管理(MM)和会话管理(SM)协议 &#xff0c;在5G(NR)系统中连接管理(Connection Management)用于建立和释放UE与AMF之间的控制面(CP)信令连接。 5G中移动性管理是通过NAS信令在UE与核心网之间进行交互的&#xff0c;连接…

SpringBoot——静态资源及原理

优质博文&#xff1a;IT-BLOG-CN 一、使用 SpringBoot 的步骤 【1】创建SpringBoot应用&#xff0c;选中自己需要的模块。 【2】SpringBoot已经默认将这些场景配置好&#xff0c;只需要在配置文件中指定少量配置就可以运行起来。 【3】编写业务逻辑代码。 二、自动配置原理 …

面试鸭 - 专注于面试刷题的网站

网上面试题有很多&#xff0c;但此套面试题真实、原创、高频&#xff0c;全网最强。 题目涵盖大中小公司&#xff0c;真实靠谱&#xff0c;有频率和难度的标记&#xff0c;助你成为Offer收割机。 面试鸭地址&#xff1a;https://mianshiya.skyofit.com/ 本套题是我原创&…

vue3自定义hooks

获取dom的id属性 index.ts import { onMounted } from "vue" type option {el: string }export default function(option:option):Promise<{name: string}> {return new Promise((resolve)>{onMounted(()>{const dom:HTMLElement document.querySele…

Chrome添加扩展程序

Crx4Chrome 下载crx 打开扩展程序 如果拖动crx文件到扩展程序提示只能通过Chrome应用商店添加此项内容 修改crx文件后缀为zip并解压&#xff0c;再拖动到扩展程序

Django(九、choices参数的使用、多对多表的三种创建方式、Ajax技术)

文章目录 一、choices参数choices参数的用法choices 参数用法总结 二、MVC与MTV模式1.MVC2.MTV 三、多对多的三种创建方式1.全自动创建2.纯手动创建半自动创建 四、Django与Ajax1.什么是Ajax常见的场景Ajax案例 一、choices参数 在没有用到choices参数之前&#xff0c;我们在D…

UI原型图

最近没啥项目&#xff0c;闲来无事&#xff0c;研究了一下原型图&#xff0c;万一以后年龄大了&#xff0c;代码敲不动还可以画画原型图&#xff0c;嘿嘿嘿 今天研究了两款画原型图的工具&#xff0c;即时设计-即时设计 - 可实时协作的专业 UI 设计工具 MODAO-墨刀 两款工具…

Flink 运行架构和核心概念

Flink 运行架构和核心概念 几个角色的作用&#xff1a; 客户端&#xff1a;提交作业JobManager进程 任务管理调度 JobMaster线程 一个job对应一个JobMaster 负责处理单个作业ResourceManager 资源的分配和管理&#xff0c;资源就是任务槽分发器 提交应用&#xff0c;为每一个…

基于PHP的纺织用品商城系统

有需要请加文章底部Q哦 可远程调试 基于PHP的纺织用品商城系统 一 介绍 此纺织用品商城系统基于原生PHP开发&#xff0c;数据库mysql&#xff0c;前端bootstrap。用户可注册登录&#xff0c;购物下单&#xff0c;评论等。管理员登录后台可对纺织用品&#xff0c;用户&#xf…

Redis篇---第十篇

系列文章目录 文章目录 系列文章目录前言一、怎么提高缓存命中率&#xff1f;二、Redis 如何解决 key 冲突&#xff1f;三、Redis 报内存不足怎么处理&#xff1f; 前言 前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分…

String的intern方法

String类的intern()方法在 Java 中是一个用于获取字符串常量的方法。当调用intern()方法时&#xff0c;它会将当前字符串添加到 Java 虚拟机中的常量池&#xff08;stringtable&#xff09;中&#xff0c;并返回指向该常量的引用。常量池是 Java 系统级别提供的缓存&#xff0c…

循环神经网络RNN完全解析:从基础理论到PyTorch实战

一、循环神经网络全解 1.1 什么是循环神经网络 循环神经网络&#xff08;Recurrent Neural Network, RNN&#xff09;是一类具有内部环状连接的人工神经网络&#xff0c;用于处理序列数据。其最大特点是网络中存在着环&#xff0c;使得信息能在网络中进行循环&#xff0c;实现…

CXL崛起:2024启航,2025年开启新时代

在2019年&#xff0c;Intel主导联合多家阿里巴巴、Facebook(也就是改名后Meta)、谷歌、Dell、华为、思科、微软、HPE最初的八巨头&#xff0c;发布了新的互联协议CXL&#xff0c;全称Comupte Express Link。由于在服务器领域享有绝对领导地位&#xff0c;Intel一经号令&#xf…

Python调用企微机器人: 发送常用格式汇总

企微接口文档 发送应用消息 - 接口文档 - 企业微信开发者中心 发送格式 应用支持推送文本、图片、视频、文件、图文等类型。 ~~~以下列举常用格式 示例~~~ 1.发送文本 代码如下&#xff1a; def sendtxt_robotmsg(self):# 正式keywx_key "xx"wx_webhookurl htt…

【十字链表,邻接多重表(无向图的另一种链式存储结构),图的遍历】

文章目录 十字链表邻接多重表&#xff08;无向图的另一种链式存储结构&#xff09;图的遍历 十字链表 方便找到入度和出度边。 顶点结点&#xff1a; data&#xff1a;顶点存放的数据域。 firstin&#xff1a;第一个入度边。 firstout&#xff1a;第一个出度边。 弧度结点&am…

贪吃蛇代码

一.准备 1.新建项目 2.放进照片 3.创建两个包放置图片类和入口类 二&#xff0c;游戏界面 package com.snake.view;import java.awt.Color; import java.awt.EventQueue; import java.awt.Font; import java.awt.Frame; import java.awt.Graphics; import java.awt.Image; i…

【计算机视觉】24-Object Detection

文章目录 24-Object Detection1. Introduction2. Methods2.1 Sliding Window2.2 R-CNN: Region-Based CNN2.3 Fast R-CNN2.4 Faster R-CNN: Learnable Region Proposals2.5 Results of objects detection 3. SummaryReference 24-Object Detection 1. Introduction Task Defin…

Ant Design for Figma设计系统组件库 支持变量 非社区版

Ant Design for Figma 是基于 Ant Design 设计系统的 Figma 组件库&#xff0c;提供丰富的 UI 组件和交互功能&#xff0c;帮助设计师快速构建高质量的 Figma 设计稿。 Ant Design for Figma 继承了 Ant Design 的设计理念和风格&#xff0c;提供丰富的 UI 组件和交互功能&…