当前位置: 首页 > news >正文

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;

http://www.lryc.cn/news/235040.html

相关文章:

  • <蓝桥杯软件赛>零基础备赛20周--第6周--数组和队列
  • 软件开发、网络空间安全、人工智能三个方向的就业和前景怎么样?哪个方向更值得学习?
  • 新增文章分类
  • 选硬币该用动态规划
  • LeetCode 2342. 数位和相等数对的最大和:哈希表
  • Vulkan渲染引擎开发教程 一、开发环境搭建
  • (带教程)商业版SEO关键词按天计费系统:关键词排名优化、代理服务、手机自适应及搭建教程
  • IDEA 快捷键汇总
  • 目标检测YOLO实战应用案例100讲-基于机器视觉的水稻病虫害监测预警
  • OrthoNets:正交信道注意网络
  • C_12练习题
  • 导航守卫有哪三种?
  • 强烈 推荐 13 个 Web前端在线代码IDE
  • 网络协议 WebSocket
  • 路径操作 合法路径名
  • JavaEE初阶 01 计算机是如何工作的
  • 【shell 常用脚本30例】
  • 【我和Python算法的初相遇】——体验递归的可视化篇
  • 【C语言的秘密】密探—深究C语言中多组输入的秘密!
  • ClickHouse 语法优化规则
  • 3-运行第一个docker image-hello world
  • 【漏洞复现】泛微e-Weaver SQL注入
  • 「git 系列」git 如何存储代码的?
  • IDEA 集成 Docker 插件一键部署 SpringBoot 应用
  • IDEA无法查看源码是.class,而不是.java解决方案?
  • 机器视觉系统选型-定光照强度
  • ChatGLM3-6B:新一代开源双语对话语言模型,流畅对话与低部署门槛再升级
  • StoneDB顺利通过中科院软件所 2023 开源之夏 结项审核
  • Linux本地docker一键部署traefik+内网穿透工具实现远程访问Web UI管理界面
  • SpringCloud FeignClient声明式服务调用采坑记录(A调用服务B/C,B/C重启后必须重启A后才能成功调用配置项)