数据库之运算符
目录
一、算数运算符
二、比较运算符
1.常用比较运算符
2.实现特殊功能的比较运算符
三、逻辑运算符
1.逻辑与运算符(&&或者AND)
2.逻辑或运算符(||或者OR)
3.逻辑非运算符(!或者NOT)
4.逻辑异或运算符(XOR)
四、位运算符
1.位与运算符(&)
2.位或运算符(|)
3.位异或运算符(^)
4.位左移(<<)和位右移(>>)运算符
5.位取反运算符(~)
五、运算符的优先级
一、算数运算符
算数运算符是MySQL中最基本的运算符,主要用于执行数值运算。
| 运算符 | 作用 |
|---|---|
| + | 执行加法运算,用于获得一个或多个值的和 |
| - | 执行减法运算,用于从一个值中减去另一个值 |
| * | 执行乘法运算,得到两个或多个值的乘积 |
| / | 执行除法运算,用一个值除以另一个值得到商 |
| % | 执行求余运算,用一个值除以另一个值得到余数 |
二、比较运算符
比较运算符的作用是将表达式中的两个操作数进行比较,比较结果为真,则返回1,为假则返回0,结果不确定则返回NULL。
| 运算符 | 作用 |
|---|---|
| =(<=>) | 等于 |
| < | 小于 |
| > | 大于 |
| <= | 小于等于 |
| >= | 大于等于 |
| <>(!=) | 不等于 |
| BETWEEN AND | 判断一个值是否在两个值之间 |
| IN | 判断一个值是否在某个集合中 |
| IS NULL | 判断一个值是否为NULL |
| LIKE | 通配符匹配,判断一个值是否包含某个字符 |
| REGEXP | 正则表达式匹配 |
1.常用比较运算符
1.等于运算符
“=”和“<=>”用于判断数字、字符串和表达式是否相等,“<=>”还可以用于NULL(空值)之间的比较。
如果两个操作数中有一个或两个值为NULL(空值),结果为空;如果两个操作数分别为字符串和数值,系统会首先将字符串转换成数值,然后再进行比较。
2.不等于运算符
“<>”和“!=”用于判断数字、字符串和表达式是否相等,如果不相等则返回1,否则返回0.其用法与等于运算符用法相同,但不能操作NULL(空值)。
3.其他常用比较运算符
“<”“>”“<=”和“>=”4种运算符用于比较数字、字符串和表达式,如果比较结果为真则返回1,否则返回0。这些运算符也不能操作NULL(空值)。
如果使用上述4种运算符进行比较的两个操作数为字符串,系统会比较两个字符串的长度,但两个操作数不能一个为数值,一个为字符串。
2.实现特殊功能的比较运算符
正则表达式匹配的REGEXP运算符的应用。
| 通配符 | 作用 |
|---|---|
| ^ | 匹配字符串的开始部分。例如,^b匹配以字母b开始的字符串 |
| $ | 匹配字符串的结束部分。例如,st$匹配以st结束的字符串 |
| . | 匹配除换行符’\n’之外的任何单个字符。例如,b.t匹配bit,bat,but等 |
| [...] | 匹配方括号中(字符集合)所包含的任意一个字符。例如,[a-z]匹配字母表26个字母中的任意一个字母 |
| [^...] | 匹配字符集合未包含的任意一个字符。例如,’[^a]’可以匹配除’a’之外的任意一个字符 |
| p1|p2 | 匹配p1或p2。例如,’k|cat’能匹配到’k’或’cat’。’(k|c)at’可以匹配’kat’或’cat’ |
| * | 匹配符号*前面的零个或多个字符。例如,’ao*’能匹配’a’以及’aoo’,[0-9]*匹配任意数量的数字 |
| + | 匹配符号+前面的字符一次或多次。例如,’ao+’能匹配’ao’以及’aoo’ |
| {n} | 匹配符号前面的字符至少n次。例如,’o{2}’能匹配’food’,但不能匹配’dog’ |
| {n,m} | 匹配符号前面的字符至少n次,至多m次。例如,b{2,4}匹配包含至少2个,至多4个b的字符串。 |
三、逻辑运算符
逻辑运算符又称为布尔运算符,用于确定表达式的真和假。
| 运算符 | 作用 |
|---|---|
| &&(AND) | 逻辑与 |
| ||(OR) | 逻辑或 |
| !(NOT) | 逻辑非 |
| XOR | 逻辑异或 |
1.逻辑与运算符(&&或者AND)
“&&”和“AND”表示逻辑与运算,当所有操作数均为非零值,并且不为NULL时,返回值为1;当一个或多个操作数为0时,返回值为0;当任何一个操作数为NULL,其他操作数为非零值时,返回值为NULL。
使用“&&”和“AND”运算符可以有多个操作数同时进行与运算。
2.逻辑或运算符(||或者OR)
“||”和“OR”表示逻辑或运算,当所有操作数均为非NULL值时,如有任意一个操作数为非零值,返回值为1;当一个操作数为非零值,另外的操作数为NULL时,返回值为1;当所有操作数为NULL时,返回值为NULL;当所有操作数为0时,返回值为0。
3.逻辑非运算符(!或者NOT)
“!”和“NOT”表示逻辑非运算,返回和操作数相反结果。当操作数为0时,返回值为1;当操作数为非零值时,返回值为0;当操作数为NULL时,返回值为NULL。
4.逻辑异或运算符(XOR)
“XOR”表示逻辑异或运算,当两个操作数同时为0或者同为非零值时,返回值为0;当两个操作数一个为非零值,一个为0时,返回值为1;当任意一个操作数为NULL时,返回值为NULL。
四、位运算符
位运算符是将给定的操作数转换为二进制数,然后对各个操作数的每一位进行指定的逻辑运算,最后将二进制结果转换为十进制数,得到位运算的结果。
| 运算符 | 作用 |
|---|---|
| & | 位与 |
| | | 位或 |
| ^ | 位异或 |
| << | 位左移 |
| >> | 位右移 |
| ~ | 位取反 |
1.位与运算符(&)
位与运算是将操作数转换为二进制数后进行按位与运算。在这种运算中,如果对应的二进制位全部为1,则该位的运算结果为1,其他情况运算结果为0。
2.位或运算符(|)
位或运算是将操作数转换为二进制数后进行按位或运算。在这种运算中,如果对应的二进制位有一个或多个为1,则该位的运算结果为1.其他情况运算结果为0。
3.位异或运算符(^)
位异或运算符是将操作数转换为二进制数后进行按位异或运算。在这种运算中,如果对应的二进制位不相同,则该位的运算结果为1,否则为0。
4.位左移(<<)和位右移(>>)运算符
位左移和位右移运算是将操作数转换为二进制数后,使二进制位全部左移或全部右移指定的位数,如果向左移则右边补0,如果向右移则左边补0,移除的位数将被抛弃,最后将移动后的结果转换成十进制数即可。
5.位取反运算符(~)
位取反运算是将操作数转换为二进制数后,对二进制数进行逐位反转,即1取反后变0,0取反后变1。
五、运算符的优先级
| 优先级 | 运算符 |
|---|---|
| 1 | :=(赋值运算) |
| 2 | ||,OR |
| 3 | XOR |
| 4 | &&,AND |
| 5 | NOT |
| 6 | BETWEEN AND,CASE,WHERE,THEN,ELSE |
| 7 | =(比较运算),<=>,<,>,>=,<=,<>,!=,IN,IS NULL,LIKE,REGEXP |
| 8 | | |
| 9 | & |
| 10 | <<,>> |
| 11 | -(减法运算),+ |
| 12 | *,/,% |
| 13 | ^ |
| 14 | -(负号),~ |
| 15 | ! |
相关文章:
数据库之运算符
目录 一、算数运算符 二、比较运算符 1.常用比较运算符 2.实现特殊功能的比较运算符 三、逻辑运算符 1.逻辑与运算符(&&或者AND) 2.逻辑或运算符(||或者OR) 3.逻辑非运算符(!或者NOT&#…...
【自动化机器学习AutoML】AutoML工具和平台的使用
自动化机器学习AutoML:AutoML工具和平台的使用 目录 引言什么是AutoMLAutoML的优势常见的AutoML工具和平台 Google Cloud AutoMLH2O.aiAuto-sklearnTPOTMLBox AutoML的基本使用 Google Cloud AutoML使用示例Auto-sklearn使用示例 AutoML的应用场景结论 引言 自动…...
【每日一练】python求最后一个单词的长度
""" 求某变量中最后一个单词的长度 例如s"Good morning, champ! Youre going to rock this day" 分析思路: 遇到字符串问题,经常和列表结合使用来解决, 可以先用列表的.split()分割方法进行单词分割, 再…...
[红明谷CTF 2021]write_shell 1
目录 代码审计check()$_GET["action"] ?? "" 解题 代码审计 <?php error_reporting(0); highlight_file(__FILE__); function check($input){if(preg_match("/| |_|php|;|~|\\^|\\|eval|{|}/i",$input)){// if(preg_match("/| |_||p…...
【Go - sync.once】
sync.Once 是 Go 语言标准库中的一个结构体,它的作用是确保某个操作在全局范围内只被执行一次。这对于实现单例模式或需要一次性初始化资源的场景非常有用。 典型用法 sync.Once 提供了一个方法 Do(f func()),该方法接收一个没有参数和返回值的函数 f …...
Spark RPC框架详解
文章目录 前言Spark RPC模型概述RpcEndpointRpcEndpointRefRpcEnv 基于Netty的RPC实现NettyRpcEndpointRefNettyRpcEnv消息的发送消息的接收RpcEndpointRef的构造方式直接通过RpcEndpoint构造RpcEndpointRef通过消息发送RpcEndpointRef Endpoint的注册Dispatcher消息的投递消息…...
win10安装ElasticSearch7.x和分词插件
说明: 以下内容整理自网络,格式调整优化,更易阅读,希望能对需要的人有所帮助。 一 安装 Java环境 ElasticSearch使用Java开发的,依赖Java环境,安装 ElasticSearch 7.x 之前,需要先安装jdk-8。…...
Linux中,MySQL的用户管理
MySQL库中的表及其作用 user表 User表是MySQL中最重要的一个权限表,记录允许连接到服务器的帐号信息,里面的权限是全局级的。 db表和host表 db表和host表是MySQL数据中非常重要的权限表。db表中存储了用户对某个数据库的操作权限,决定用户…...
个人电脑网络安全 之 防浏览器和端口溢出攻击 和 权限对系统的重要性
防浏览器和端口溢出攻击 该如何防 很多人都不明白 我相信很多人只知道杀毒软件 却不知道网络防火墙 防火墙分两种 : 1、 病毒防火墙 也就是我们说的杀毒软件 2、 网络防火墙 这是用来防软件恶意通信的 使用防火墙 有两种 1、 半开式规则…...
美食聚焦 -- 仿大众点评项目技术难点总结
1 实现点赞功能显示哪些用户点赞过并安装时间顺序排序 使用sort_set 进行存储,把博客id作为key,用户id作为value,时间戳作为score 但存储成功之后还是没有成功按照时间顺序排名,因为sql语句,比如最后in(5…...
拓扑图:揭示复杂系统背后的结构与逻辑
在现代软件开发和运维中,图形化的表示方式越来越重要。拓扑图,作为一种关键的可视化工具,不仅能够帮助我们理解系统的结构和组件间的关系,还能提升系统的可维护性和可扩展性。 什么是拓扑图? 拓扑图是一种展示系统或网络中各个节点(如服务器、交换机、数据库等)及其连…...
Java面试八股之什么是spring boot starter
什么是spring boot starter Spring Boot Starter是Spring Boot项目中的一个重要概念。它是一种依赖管理机制,用于简化Maven或Gradle配置文件中的依赖项声明。Spring Boot Starter提供了一组预定义的依赖关系,这些依赖关系被封装在一个单一的包中&#x…...
探究项目未能获得ASPICE 1、2级能力的原因及改进策略
项目整体未能获得ASPICE 1、2级能力的原因可能涉及多个方面,以下是基于参考文章中的信息和可能的情境进行的分析: 1.过程成熟度不足:ASPICE(Automotive Software Process Improvement and Capability Determination)是…...
WHAT - 不同 HTTP Methods 使用场景、使用方法和可能遇到的问题
目录 前言基本介绍具体介绍前置知识:幂等和非幂等幂等操作非幂等操作幂等性和非幂等性的应用场景总结 1. GET2. POST3. PUT4. PATCH1. 确保操作是幂等的2. 使用版本控制或条件更新3. 全量更新部分属性4. 使用特定操作指令5. 幂等标识符示例代码总结 5. DELETE6. HEA…...
Pytorch使用教学4-张量的索引
1 张量的符号索引 张量也是有序序列,我们可以根据每个元素在系统内的顺序位置,来找出特定的元素,也就是索引。 1.1 一维张量的索引 一维张量由零维张量构成 一维张量索引与Python中的索引一样是是从左到右,从0开始的ÿ…...
【Git多人协作开发】同一分支下的多人协作开发模式
目录 0.前言场景 1.开发者1☞完成准备工作&协作开发 1.1创建dev分支开发 1.2拉取远程dev分支至本地 1.3查看分支情况和分支联系情况 1.4创建本地dev分支且与远程dev分支建立联系 1.5在本地dev分支上开发file.txt 1.6推送push至远程仓库 2.开发者2☞完成准备工作&…...
Vue使用FullCalendar实现日历/周历/月历
Vue使用FullCalendar实现日历/周历/月历 需求背景:项目上遇到新需求,要求实现工单以日/周/月历形式展示。而且要求不同工单根据状态显示不同颜色,一个工单内部,需要以不同颜色显示三个阶段。 效果图 日历 周历 月历 安装插件…...
社交圈子聊天交友系统搭建社交app开发:陌生交友发布动态圈子单聊打招呼群聊app介绍
系统概述 社交圈子部天交友系统是一个集成即时通讯、社区互动、用户管理等功能的在线社交平台。它支持用户创建个人资料,加入兴趣围子,通过文字、图片、语音、视频等多种方式进行交流,满足用户在不同场景下的社交需求 核心功能 -,…...
【微信小程序实战教程】之微信小程序原生开发详解
微信小程序原生开发详解 微信小程序的更新迭代非常频繁,几乎每个月都会有新版本发布,这就会让初学者感觉到学习的压力和难度。其实,我们小程序的每次版本迭代都是在现有小程序架构基础之上进行更新的,如果想要学好小程序开发技术&…...
PHP身份证实名认证接口集成守护电商购物
在这个万物互联的世界里,网购已成为日常生活中不可或缺的一部分。然而,随着线上交易的增加,如何保护消费者和商家免受欺诈,确保每一笔交易的安全,成了亟待解决的难题。这时,身份证实名认证接口应运而生&…...
智慧医疗能源事业线深度画像分析(上)
引言 医疗行业作为现代社会的关键基础设施,其能源消耗与环境影响正日益受到关注。随着全球"双碳"目标的推进和可持续发展理念的深入,智慧医疗能源事业线应运而生,致力于通过创新技术与管理方案,重构医疗领域的能源使用模式。这一事业线融合了能源管理、可持续发…...
Leetcode 3576. Transform Array to All Equal Elements
Leetcode 3576. Transform Array to All Equal Elements 1. 解题思路2. 代码实现 题目链接:3576. Transform Array to All Equal Elements 1. 解题思路 这一题思路上就是分别考察一下是否能将其转化为全1或者全-1数组即可。 至于每一种情况是否可以达到…...
Redis相关知识总结(缓存雪崩,缓存穿透,缓存击穿,Redis实现分布式锁,如何保持数据库和缓存一致)
文章目录 1.什么是Redis?2.为什么要使用redis作为mysql的缓存?3.什么是缓存雪崩、缓存穿透、缓存击穿?3.1缓存雪崩3.1.1 大量缓存同时过期3.1.2 Redis宕机 3.2 缓存击穿3.3 缓存穿透3.4 总结 4. 数据库和缓存如何保持一致性5. Redis实现分布式…...
前端倒计时误差!
提示:记录工作中遇到的需求及解决办法 文章目录 前言一、误差从何而来?二、五大解决方案1. 动态校准法(基础版)2. Web Worker 计时3. 服务器时间同步4. Performance API 高精度计时5. 页面可见性API优化三、生产环境最佳实践四、终极解决方案架构前言 前几天听说公司某个项…...
Debian系统简介
目录 Debian系统介绍 Debian版本介绍 Debian软件源介绍 软件包管理工具dpkg dpkg核心指令详解 安装软件包 卸载软件包 查询软件包状态 验证软件包完整性 手动处理依赖关系 dpkg vs apt Debian系统介绍 Debian 和 Ubuntu 都是基于 Debian内核 的 Linux 发行版ÿ…...
IGP(Interior Gateway Protocol,内部网关协议)
IGP(Interior Gateway Protocol,内部网关协议) 是一种用于在一个自治系统(AS)内部传递路由信息的路由协议,主要用于在一个组织或机构的内部网络中决定数据包的最佳路径。与用于自治系统之间通信的 EGP&…...
无法与IP建立连接,未能下载VSCode服务器
如题,在远程连接服务器的时候突然遇到了这个提示。 查阅了一圈,发现是VSCode版本自动更新惹的祸!!! 在VSCode的帮助->关于这里发现前几天VSCode自动更新了,我的版本号变成了1.100.3 才导致了远程连接出…...
UE5 学习系列(三)创建和移动物体
这篇博客是该系列的第三篇,是在之前两篇博客的基础上展开,主要介绍如何在操作界面中创建和拖动物体,这篇博客跟随的视频链接如下: B 站视频:s03-创建和移动物体 如果你不打算开之前的博客并且对UE5 比较熟的话按照以…...
系统设计 --- MongoDB亿级数据查询优化策略
系统设计 --- MongoDB亿级数据查询分表策略 背景Solution --- 分表 背景 使用audit log实现Audi Trail功能 Audit Trail范围: 六个月数据量: 每秒5-7条audi log,共计7千万 – 1亿条数据需要实现全文检索按照时间倒序因为license问题,不能使用ELK只能使用…...
dedecms 织梦自定义表单留言增加ajax验证码功能
增加ajax功能模块,用户不点击提交按钮,只要输入框失去焦点,就会提前提示验证码是否正确。 一,模板上增加验证码 <input name"vdcode"id"vdcode" placeholder"请输入验证码" type"text&quo…...
