当前位置: 首页 > 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…...

基于数字孪生的水厂可视化平台建设:架构与实践

分享大纲&#xff1a; 1、数字孪生水厂可视化平台建设背景 2、数字孪生水厂可视化平台建设架构 3、数字孪生水厂可视化平台建设成效 近几年&#xff0c;数字孪生水厂的建设开展的如火如荼。作为提升水厂管理效率、优化资源的调度手段&#xff0c;基于数字孪生的水厂可视化平台的…...

sqlserver 根据指定字符 解析拼接字符串

DECLARE LotNo NVARCHAR(50)A,B,C DECLARE xml XML ( SELECT <x> REPLACE(LotNo, ,, </x><x>) </x> ) DECLARE ErrorCode NVARCHAR(50) -- 提取 XML 中的值 SELECT value x.value(., VARCHAR(MAX))…...

HBuilderX安装(uni-app和小程序开发)

下载HBuilderX 访问官方网站&#xff1a;https://www.dcloud.io/hbuilderx.html 根据您的操作系统选择合适版本&#xff1a; Windows版&#xff08;推荐下载标准版&#xff09; Windows系统安装步骤 运行安装程序&#xff1a; 双击下载的.exe安装文件 如果出现安全提示&…...

Spring Boot+Neo4j知识图谱实战:3步搭建智能关系网络!

一、引言 在数据驱动的背景下&#xff0c;知识图谱凭借其高效的信息组织能力&#xff0c;正逐步成为各行业应用的关键技术。本文聚焦 Spring Boot与Neo4j图数据库的技术结合&#xff0c;探讨知识图谱开发的实现细节&#xff0c;帮助读者掌握该技术栈在实际项目中的落地方法。 …...

c#开发AI模型对话

AI模型 前面已经介绍了一般AI模型本地部署&#xff0c;直接调用现成的模型数据。这里主要讲述讲接口集成到我们自己的程序中使用方式。 微软提供了ML.NET来开发和使用AI模型&#xff0c;但是目前国内可能使用不多&#xff0c;至少实践例子很少看见。开发训练模型就不介绍了&am…...

Java多线程实现之Thread类深度解析

Java多线程实现之Thread类深度解析 一、多线程基础概念1.1 什么是线程1.2 多线程的优势1.3 Java多线程模型 二、Thread类的基本结构与构造函数2.1 Thread类的继承关系2.2 构造函数 三、创建和启动线程3.1 继承Thread类创建线程3.2 实现Runnable接口创建线程 四、Thread类的核心…...

鸿蒙DevEco Studio HarmonyOS 5跑酷小游戏实现指南

1. 项目概述 本跑酷小游戏基于鸿蒙HarmonyOS 5开发&#xff0c;使用DevEco Studio作为开发工具&#xff0c;采用Java语言实现&#xff0c;包含角色控制、障碍物生成和分数计算系统。 2. 项目结构 /src/main/java/com/example/runner/├── MainAbilitySlice.java // 主界…...

C++.OpenGL (20/64)混合(Blending)

混合(Blending) 透明效果核心原理 #mermaid-svg-SWG0UzVfJms7Sm3e {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-SWG0UzVfJms7Sm3e .error-icon{fill:#552222;}#mermaid-svg-SWG0UzVfJms7Sm3e .error-text{fill…...

根目录0xa0属性对应的Ntfs!_SCB中的FileObject是什么时候被建立的----NTFS源代码分析--重要

根目录0xa0属性对应的Ntfs!_SCB中的FileObject是什么时候被建立的 第一部分&#xff1a; 0: kd> g Breakpoint 9 hit Ntfs!ReadIndexBuffer: f7173886 55 push ebp 0: kd> kc # 00 Ntfs!ReadIndexBuffer 01 Ntfs!FindFirstIndexEntry 02 Ntfs!NtfsUpda…...

Sklearn 机器学习 缺失值处理 获取填充失值的统计值

💖亲爱的技术爱好者们,热烈欢迎来到 Kant2048 的博客!我是 Thomas Kant,很开心能在CSDN上与你们相遇~💖 本博客的精华专栏: 【自动化测试】 【测试经验】 【人工智能】 【Python】 使用 Scikit-learn 处理缺失值并提取填充统计信息的完整指南 在机器学习项目中,数据清…...