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

表达式和函数

表达式:

将数字和运算符连接起来的组合称为表达式。我们可以将数字称为操作数,单个操作数也可以被看作是一个表达式。

操作数:常数,列名,函数调用,其他表达式

运算符:算数运算符,比较运算符,逻辑运算符

介绍几个比较哦特殊的:

a DIV b:除法, 取商的整数部分

a XOR b:a和b有且只有一个为真时,表达式为真。

在上一章我们学到比较表达式。又比较运算符连接而成的表达式也称为布尔表达式,除非表达式中包含NULL,否则布尔表达式的结果只能是1或者0

表达式的使用:

把这些操作数和运算符相互结合起来就可以组成表达式 

1.作为计算字段放在select子句中

查询列表处的每个表达式都会被当作结果集中的一个列。

2.作为搜索条件放在where子句中

其实在where子句中可以放置任意的表达式,在读取某条记录时,只要where子句中表达式的结果不为0或者NULL,那么该纪录就会被加入到结果集。

表达式中的NULL:
NULL作为算数运算符的操作时,表达式的结果都为NULL。

除<=>,is NULL,is not NULL 外,NULL作为其余比较运算符的操作数时,表达式的结果都为NULL。

函数:
字符串处理函数:

left('abc123', 3): 给定字符串从左边取指定长度的子串。

right(.....................给定.....从右边...............

length('abc') 给定字符串占用的字节数量

lower(’ABC') 给定字符串转换成小写

upper('abc') 给定字符串转换成大写

ltrim('     abc') 给定字符串左边空格去除后的格式

rtrim('abc     ') 给定字符串后边空格去除后的格式

substring('abc123', 2, 3)给定字符串从指定位置截取指定长度的子串

concat(‘abc', '123', 'xyz')将给定的各个字符串拼接成一个新的字符串

char_length(’狗哥') 给定字符串的字符数量。

日期和时间处理函数:

now()返回当前日期和时间

curdate()返回当前日期

curtime()返回当前时间

date()将给定的日期和时间值的日期提取出来

date_add()将给定的日期和时间值添加指定的时间间隔;

date_sub(‘.....' interval * 单位)将给定的日期和时间值减去指定的时间间隔

datediff()返回两个日期之间的天数(负数表示前一个参数代表的日期比后一个参数代表的日期小)

data_format(now(), '%m-%d-%y')用给定的格式显示日期和时间

year()提取年份

month()提取月份

day()提取日

hour()提取小时

minute()提取分钟

second()提取秒

在使用date_add和sub的时候注意我们的单位有这些:
microsecond 毫秒

second 秒

minute 分钟

hour 小时

day 天

week 周

month 月

quarter 季度

year 年

在使用date_format是我们可以通过一些所谓的格式符来自定义显示格式:

%b, 简写的月份名称(jan,feb....)

%D, 带有英文后缀的月份中的日期(0st, 1st, 2st....)

%d, 数字格式的月份中的日期(00,01.....)

%f 微秒

%H 24小时制的小时(00~24)

%h 12小时制的小时(00~12)

%i 数值格式的分钟(00~59)

%M 月份名(january,February.....)

%m 数值形式的月份(00~12)

%p 上午或下午

%s 秒(00~59)
%S 秒(00~59)

%W 星期名(sunday,monday....)

%w 周内第几天(0=星期日,1=星期1, .....)

%Y 四位数数字形式的年(例如2023)

%y 两位数数字形式的年(例如23)

数值处理函数:
abs()取绝对值

pi()返回圆周率

cos ()返回一个角度的余弦

sin()返回一个角度的正弦

tan()返回一个角度的正切

pow()返回某个数的指定次幂

sqrt()返回一个数的平方根

mod() 返回除法的余数

rand() 返回一个随机数

ceil()返回不小于给定值的最小整数

floor()返回不大于给定值的最大整数

流程控制表达式和函数:
语法:
case when 表达式1 then 结果1[when 表达式2 then 结果2.....] else 默认结果 end

当表达式1为true时就返回结果1

一定要记得写末尾的end!!

mysql> select *,
    -> case when score<60 then 'bujige'
    -> when score<90 then 'hege'
    -> else 'youxiu' end as level
    -> from student_score;
+-----------+--------------------+-------+-------+
| number    | subject            | score | level |
+-----------+--------------------+-------+-------+
| 220101101 | 计算机是怎样运行的 |    78 | hege  |
| 220101102 | 计算机是怎样运行的 |    79 | hege  |
| 220101103 | 计算机是怎样运行的 |    78 | hege  |
| 220101104 | 计算机是怎样运行的 |    77 | hege  |
| 220101105 | 计算机是怎样运行的 |    77 | hege  |
+-----------+--------------------+-------+-------+
5 rows in set (0.01 sec)

if语句:

语法:if(表达式1, 表达式2, 表达式3)

含义是当表达式1为true时,返回值就为表达式2, 否则为表达式3

ifnull语句:
语法:ifnull(表达式1, 表达式2)

含义是当表达式1为NULL时,返回值就为表达式2,否则返回表达式1.

nullif语句:
语法:nullif(表达式1, 表达式2)

含义是当表达式1的值和表达式2的值相同时,函数返回值为NULL,否则返回表达式1.

汇总函数:

max(表达式)

从匹配的结果中返回表达式对应列的最大值;

mysql> select max(score) from student_score;
+------------+
| max(score) |
+------------+
|         79 |
+------------+
1 row in set (0.01 sec)

min(表达式)

从匹配结果中返回表达式对应列的最大值

sum(表达式)
求和的意思

avg(表达式)

取平均数

count(操作数)

对列中的某个值进行计数

mysql> select count(1) from student_score;
+----------+
| count(1) |
+----------+
|        5 |
+----------+
1 row in set (0.00 sec)

隐式类型转换:

只要某个表达式的类型与上下文要求的类型不符合,MySQL就会根据上下文环境中需要的类型对该表达式进行类型转换。由于这些类型转换是MySQL自动完成的,所以也称为隐式类型转换。

1.将操作数类型转换为运算符需要的类型

比如把字符串’1‘和1进行相加,MySQL就会自动把字符串’1‘ 自动转换为1的整形进行相加

如果字符串中包含其他字符或者字母的话就会从第一个字符进行判断最长的数字是多少就是多少你,比如’123asd‘,这个就会转换成123.其实,当字符串类型的表达式与其他类型的表达式进行算数运算,比较大小,已经进行逻辑判断时,都会被转换成double类型。

2.将函数参数转换成该函数期望的类型

3.在where子句中,单独的字符串类型的表达式会被转换为double类型的数值

mysql> select 5 where '2a';
+---+
| 5 |
+---+
| 5 |
+---+
1 row in set, 1 warning (0.01 sec)

这里的2a就转换成了2,所以查询结果不为空集

4存储数据时,把某个值转换成某个列所需要的类型

相关文章:

表达式和函数

表达式&#xff1a; 将数字和运算符连接起来的组合称为表达式。我们可以将数字称为操作数&#xff0c;单个操作数也可以被看作是一个表达式。 操作数&#xff1a;常数&#xff0c;列名&#xff0c;函数调用&#xff0c;其他表达式 运算符&#xff1a;算数运算符&#xff0c;…...

C#基础复习

目录 格式字符串 多重标记和值 预定义类型 用户定义类型 值类型和引用类型 存储引用类型对象的成员 C#类型的分类 静态类型和dynamic关键字 类的基本概念 类成员的类型 为数据分配内存 访问修饰符 格式字符串 多重标记和值 C#程序就是一组类型声明&#xff0c;学习C#就是学习…...

Windows服务器使用代码SSH免密登录并执行脚本

服务器操作系统 Window Server 2016 1、Windows服务器安装OpenSSH 有多种方式&#xff0c;本文介绍一种方式 下载页&#xff1a; https://github.com/PowerShell/Win32-OpenSSH/releases 在下载页下载文件OpenSSH-Win64.zip 本次实验解压至 D:\OpenSSH-Win64\OpenSSH-Win6…...

(Deep Learning)交叉验证(Cross Validation)

交叉验证&#xff08;Cross Validation&#xff09; 交叉验证&#xff08;Cross Validation&#xff09;是一种评估模型泛化性能的统计学方法&#xff0c;它比单次划分训练集和测试集的方法更加稳定、全面。 交叉验证不但可以解决数据集中数据量不够大的问题&#xff0c;也可以…...

通俗举例讲解动态链接】静态链接

参考动态链接 - 知乎 加上我自己的理解&#xff0c;比较好懂&#xff0c;但可能在细节方面有偏差,但总体是一致的 静态链接的背景 静态链接使得不同的程序开发者和部门能够相对独立的开发和测试自己的程序模块&#xff0c;从某种意义上来讲大大促进了程序开发的效率&#xf…...

K8S部署常见问题归纳

目录一. 常用错误发现手段二、错误问题1. token 过期2. 时间同步问题3. docker Cgroup Driver 不是systemd4. Failed to create cgroup(未验证&#xff09;子节点误执行kubeadm reset一. 常用错误发现手段 我们在部署经常看到的提示是&#xff1a; [kubelet-check] It seems …...

Redis高可用

最近离职后还没开始找工作&#xff0c;在找工作前去学习一下Redis高可用方案。 目录Redis高可用高可用的概念实现方式持久化主从复制简单结构优化结构优缺点哨兵模式&#xff08;Sentinel&#xff09;哨兵进程的作用自动故障迁移(Automatic failover)优缺点集群优缺点Redis高可…...

Hyperledger Fabric 2.2版本环境搭建

前言 部署环境: CentOS7.9 提前安装好以下工具 git客户端golangdockerdocker-composecurl工具 以下是个人使用的版本 git: 2.39.2golang: 1.18.6docker: 23.0.3dockkekr-compose: v2.17.2curl: 7.29.0 官方文档参考链接&#xff1a;跳转链接&#xff0c;不同的版本对应的官…...

macOS Monterey 12.6.5 (21G531) Boot ISO 原版可引导镜像

本站下载的 macOS 软件包&#xff0c;既可以拖拽到 Applications&#xff08;应用程序&#xff09;下直接安装&#xff0c;也可以制作启动 U 盘安装&#xff0c;或者在虚拟机中启动安装。另外也支持在 Windows 和 Linux 中创建可引导介质。 2023 年 4 月 10 日&#xff08;北京…...

【软件设计师13】数据库设计

数据库设计 1. 数据库设计过程 2. E-R模型 3. E-R图向关系模型的转换 例如一对一联系&#xff0c;可以将联系单独做为关系模式&#xff0c;也可以存放到任意一个实体中 而一对多要合并只能合并到多这边&#xff0c;不能存放到1 多对多则联系必须单独转成一个关系模式 4. 案…...

SpringMVC的全注解开发

文章目录一、spring-mvc.xml 中组件转化为注解形式二、DispatcherServlet加载核心配置类三、消除web.xml一、spring-mvc.xml 中组件转化为注解形式 跟之前全注解开发思路一致&#xff0c; xml配置文件使用核心配置类替代&#xff0c;xml中的标签使用对应的注解替代 <!-- 组件…...

C# | 导出DataGridView中的数据到Excel、CSV、TXT

C# | 导出DataGridView中的数据到Excel、CSV、TXT 文章目录C# | 导出DataGridView中的数据到Excel、CSV、TXT前言DataGridView数据转存DataTableDataTable转Excel方法一、使用Microsoft.Office.Interop.Excel方法二、使用EPPlus库方法三、使用NPOI库DataTable转CSVDataTable转T…...

新规拉开中国生成式AI“百团大战”序幕?

AI将走向何方&#xff1f; ChatGPT在全球范围掀起的AI热潮正在引发越来越多的讨论&#xff0c;AI该如何管理&#xff1f;AI该如何发展&#xff1f;一系列问题都成为人们热议的焦点。此前&#xff0c;马斯克等海外名人就在网络上呼吁OpenAI暂停ChatGPT的模型训练和迭代&#xf…...

日撸 Java 三百行day31

文章目录day31 整数矩阵及其运算面向对象思想java异常处理java中的getter和setter方法代码day31 整数矩阵及其运算 面向对象思想 结合之前day7和day8面向过程开发&#xff0c;只关注了矩阵加法和矩阵乘法的功能。而day31是面向对象开发&#xff0c;一个矩阵类&#xff0c;在这…...

在线绘制思维导图

思维导图是一种可视化的思维工具&#xff0c;它可以将放射性思考具体化为可视的图像和图表。 思维导图利用图文并重的技巧&#xff0c;把各级主题的关系用相互隶属与相关的层级图表现出来&#xff0c;把主题关键词与图像、颜色等建立记忆链接。 它运用图像和颜色等多种元素&…...

月薪20k的性能测试必备技能:发现性能瓶颈掌握性能调优

背景 当下云计算、大数据盛行的背景下&#xff0c;大并发和大吞吐量的需求已经是摆在企业面前的问题了&#xff0c;其中网络的性能要求尤为关键&#xff0c;除了软件本身需要考虑到性能方面的要求&#xff0c;一些硬件上面的优化也是必不可少的。 作为一名测试工作者&#xf…...

3、Web前端学习规划:CSS - 学习规划系列文章

CSS作为Web前端开发的第2种重要的语言&#xff0c;笔者建议在学了HTML之后进行。CSS主要是对于HTML做一个渲染&#xff0c;其也带了一些语言语法函数&#xff0c;功能也非常强大。 1、 简介&#xff1b; CSS(层叠样式表)是一种用于描述网页样式的语言。它可以控制网页中的字体、…...

城市轨道交通列车时刻表优化问题【最优题解】

文章目录城市轨道交通列车时刻表优化问题思路文章底部城市轨道交通列车时刻表优化问题 最新进度在文章最下方卡片&#xff0c;加入获取思路数据代码论文&#xff1a;2023十三届MathorCup交流 (第一时间在CSDN分享&#xff0c;文章底部) 题目为数据分析类题目。列车时刻表优化…...

常年不卷,按时下班,工作能力强,同事求助知无不言,不扯皮,不拉帮结派,这样的职场清流竟然被裁掉了!...

在职场上&#xff0c;你永远想不到什么样的员工会被优化&#xff0c;比如下面这位&#xff1a;常年不卷&#xff0c;按时下班&#xff0c;工作很专业&#xff0c;同事问什么都回答&#xff0c;不扯皮&#xff0c;不拉帮结派&#xff0c;简直是职场清流。在上个月竟然被优化了&a…...

基于改进多目标灰狼优化算法的考虑V2G技术的风、光、荷、储微网多目标日前优化调度研究(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…...

用Tableau分析酒店数据:手把手教你做地区均价条形图和价格等级饼图

用Tableau分析酒店数据&#xff1a;手把手教你做地区均价条形图和价格等级饼图 酒店行业的数据分析往往需要快速洞察不同地区的价格分布和消费层级特征。作为全球领先的商业智能工具&#xff0c;Tableau能以直观的可视化方式呈现这些关键指标。本文将带你从零开始&#xff0c;用…...

3步解决Android Studio英文界面困扰:完整中文插件配置指南

3步解决Android Studio英文界面困扰&#xff1a;完整中文插件配置指南 【免费下载链接】AndroidStudioChineseLanguagePack AndroidStudio中文插件(官方修改版本&#xff09; 项目地址: https://gitcode.com/gh_mirrors/an/AndroidStudioChineseLanguagePack 还在为Andr…...

ArcMap新手必看:手把手教你给‘无家可归’的图层安个‘家’(Define Projection保姆级教程)

ArcMap坐标系急救指南&#xff1a;从“Unknown”到精确定位的完整解决方案 引言&#xff1a;当图层变成“流浪者”时 第一次在ArcMap中看到图层属性显示“Unknown”或“Undefined”时&#xff0c;很多新手会陷入困惑——这些数据明明有坐标数值&#xff0c;为什么软件却无法识别…...

避坑指南:注册个体户时,经营范围怎么选才不影响以后开票和接项目?

技术创业者必读&#xff1a;个体户经营范围选择的战略与实操指南 在数字经济蓬勃发展的今天&#xff0c;越来越多的技术从业者选择以个体户形式开启创业之路。作为企业合法经营的"身份证"&#xff0c;营业执照中经营范围的填写看似简单&#xff0c;实则暗藏玄机。一个…...

盲人出行辅助系统原型

我做了一个很有意义的盲人出行辅助系统原型&#xff0c;主要是结合现有导航OSRM/高德&#xff0c;实时感知前方潜在危险目标&#xff0c;辅助视障人士出行。 持续优化中&#xff08;20260519&#xff09;&#xff0c;欢迎大家尝试&#xff0c;有一些想法也可以提出来。 开源地址…...

2026年4K投影仪画质横评:明基W系列“色彩科学”解析

一、开篇点题&#xff1a;画质之争&#xff0c;终归是色彩之争2026年的4K投影仪市场&#xff0c;参数竞赛已进入白热化。当分辨率、亮度、对比度等硬指标逐渐趋同&#xff0c;真正拉开产品差距的&#xff0c;是那个决定画面灵魂的核心——色彩。一台投影仪能否精准还原电影导演…...

免费图表数据提取神器:5分钟学会WebPlotDigitizer核心用法

免费图表数据提取神器&#xff1a;5分钟学会WebPlotDigitizer核心用法 【免费下载链接】WebPlotDigitizer Computer vision assisted tool to extract numerical data from plot images. 项目地址: https://gitcode.com/gh_mirrors/we/WebPlotDigitizer 还在为从科研图表…...

从零构建YOLOv8火焰烟雾检测系统:GUI开发、模型训练与实战部署全解析

1. 项目背景与核心价值 火焰烟雾检测在工业安全、森林防火和智能家居等领域有着广泛的应用需求。传统检测方法主要依赖传感器&#xff0c;但存在响应慢、覆盖范围有限等问题。基于计算机视觉的解决方案能够突破物理限制&#xff0c;实现大范围实时监控。YOLOv8作为当前最先进的…...

EasyWatermark代码架构详解:MVVM模式与依赖注入实践

EasyWatermark代码架构详解&#xff1a;MVVM模式与依赖注入实践 【免费下载链接】EasyWatermark &#x1f512; &#x1f5bc; Securely, easily add a watermark to your sensitive photos. 安全、简单地为你的敏感照片添加水印&#xff0c;防止被人泄露、利用 项目地址: ht…...

MIPI CSI-2(3) 逃逸/LP模式 传输详解和波形图

专栏目录 MIPI CSI-2&#xff08;1&#xff09; D-PHY详细解析 MIPI CSI-2&#xff08;2&#xff09; HS模式 传输详解和波形图 MIPI CSI-2&#xff08;3&#xff09; 逃逸/LP模式 传输详解和波形图 逃逸模式时序 逃逸模式下lane始终通过LP-TX驱动&#xff0c;不要求有时钟&…...