MySQL基础(5)- 运算符

news2024/11/15 11:11:48

目录

一、算数运算符

1.加法运算符

2.乘除运算符

3.取模运算

二、比较运算符

1. = <=> <> != < <= > >=

2.IS NULL \ IN NOT NULL \ ISNULL

3.LEAST() \ GREATEST()

4.BETWWEEN 条件下界1 AND 条件上界2

5.in (set)\ not in (set)

6.LIKE :模糊查询

7.REGEXP \ RLIKE :正则表达式

三、逻辑运算符

1.or  and

2.not

3.XOR 异或:追求的"异"

4.位运算符: & |  ^  ~  >>   <<


一、算数运算符

除法可以用 div 表示 模可以用 mod 表示

1.加法运算符

在Java语言中结果是:1001。

在SQL语言中,+没有连接的作用,就表示加法运算,此时,会把字符串转换为数值(隐式转换)

SELECT 100 + '1'
FROM DUAL;

此时将a看作0处理

SELECT 100 + 'a'
FROM DUAL;

2.乘除运算符

SQL中除法结果都是浮点型

SELECT 100,100*1,100*1.0,100/1.0,100/2,
100+2*5/2,100/3,100 DIV 0
FROM DUAL;

3.取模运算

结果符号和被模数符号相同

SELECT 12%3,12%5,12MOD-5,-12%5,-12%-5
FROM DUAL;

二、比较运算符

1. = <=> <> != < <= > >=

 字符串存在隐式转换。如果数值转换不成功,则看作0。

SELECT
  1 = 2,
  1 != 2,
  1 = '1',
  1 = 'a',
  0 = 'a' 
FROM
  DUAL;

纯字符串进行比较则不存在隐式转换,按实际asc码进行比较。

SELECT
  'a'='a','ab'='ab','a'='b'
FROM
  DUAL;

安全等于:<=> 与 = 作用相似,唯一区别是<=>可以用来对NULL进行判断,在两个操作数均为NULL,返回1,当一个操作数为NULL时,返回值为0,不为NULL。可以查询字段为NULL的数据

2.IS NULL \ IN NOT NULL \ ISNULL

判断是否为NULL

# 查询表中xx字段不为null的数据
SELECT a,b,xx
FROM biao
WHERE xx IS NOT NULL;
# 或
SELECT a,b,xx
FROM biao
WHERE NOT xx <=> NULL;

3.LEAST() \ GREATEST()

最大最小

SELECT LEAST('g','b','t','m'),GREATEST('g','b','t','m')
FROM DUAL;

SELECT LEAST(first_name,last_name),LEAST(LENGTH(first_name),LENGTH(last_name))
FROM employees;

4.BETWWEEN 条件下界1 AND 条件上界2

BETWEEN 条件下界1 AND 条件上界2  (查询条件1和条件2范围内的数据,包含边界)
#查询工资在6000 到 8000的员工信息

SELECT employee_id,last_name,salary
FROM employees
where salary between 6000 and 8000;
#或
SELECT employee_id,last_name,salary
FROM employees
WHERE salary >= 6000 && salary <= 8000;

#查询工资不在6000 到 8000的员工信息 

SELECT employee_id,last_name,salary
FROM employees
WHERE salary NOT BETWEEN 6000 AND 8000;
#或
SELECT employee_id,last_name,salary
FROM employees
where salary < 6000 or salary > 8000;

5.in (set)\ not in (set)

#练习:查询部门为10,20,30部门的员工信息
SELECT last_name,salary,department_id
FROM employees
where department_id = 10 or department_id = 20 or department_id = 30;
#或
SELECT last_name,salary,department_id
FROM employees
WHERE department_id IN (10,20,30);

#练习:查询工资不是6000,7000,8000的员工信息
SELECT last_name,salary,department_id
FROM employees
WHERE salary NOT IN (6000,7000,8000);

6.LIKE :模糊查询

% : 代表不确定个数的字符 (0个,1个,或多个)

#练习:查询last_name中包含字符'a'的员工信息
SELECT last_name
FROM employees
WHERE last_name LIKE '%a%';

#练习:查询last_name中以字符'a'开头的员工信息
SELECT last_name
FROM employees
WHERE last_name LIKE 'a%';

#练习:查询last_name中包含字符'a'且包含字符'e'的员工信息
#写法1:
SELECT last_name
FROM employees
WHERE last_name LIKE '%a%' AND last_name LIKE '%e%';
#写法2:
SELECT last_name
FROM employees
WHERE last_name LIKE '%a%e%' OR last_name LIKE '%e%a%';

_ :代表一个不确定的字符

转义字符: \(代表后面一个符号仅为符号)

ESCAPE:定义后面的一个字符当作转义字符使用

#练习:查询第3个字符是'a'的员工信息
SELECT last_name
FROM employees
WHERE last_name LIKE '__a%';

#练习:查询第2个字符是_且第3个字符是'a'的员工信息
#需要使用转义字符: \ 
SELECT last_name
FROM employees
WHERE last_name LIKE '_\_a%';

#或者  (了解)
SELECT last_name
FROM employees
WHERE last_name LIKE '_$_a%' ESCAPE '$';

7.REGEXP \ RLIKE :正则表达式

SELECT 'shkstart' REGEXP '^shk', 'shkstart' REGEXP 't$', 'shkstart' REGEXP 'hk'
FROM DUAL;

SELECT 'atguigu' REGEXP 'gu.gu','atguigu' REGEXP '[ab]'
FROM DUAL;

三、逻辑运算符

1.or  and

SELECT last_name,salary,department_id
FROM employees
#where department_id = 10 or department_id = 20;
#where department_id = 10 and department_id = 20;
WHERE department_id = 50 AND salary > 6000;

2.not

SELECT last_name,salary,department_id
FROM employees
#where salary not between 6000 and 8000;
#where commission_pct is not null;
WHERE NOT commission_pct <=> NULL;

3.XOR 异或:追求的"异"

筛选 满足前面不满足后面的满足后面不满足前面的

SELECT last_name,salary,department_id
FROM employees
WHERE department_id = 50 XOR salary > 6000;

注意:AND的优先级高于OR

优先级弄不懂加小括号

4.位运算符: & |  ^  ~  >>   <<

转换为2进制,上下排列,逐位进行运算

&:且

|:或

^:异或

~:取反

<<:二进制左移

>>:二进制右移

SELECT 12 & 5, 12 | 5,12 ^ 5 
FROM DUAL;

SELECT 10 & ~1 FROM DUAL;

#在一定范围内满足:每向左移动1位,相当于乘以2;每向右移动一位,相当于除以2。
SELECT 4 << 1 , 8 >> 1
FROM DUAL;

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

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

相关文章

96.游戏的启动与多开-窗口多开检测与破解

免责声明&#xff1a;内容仅供学习参考&#xff0c;请合法利用知识&#xff0c;禁止进行违法犯罪活动&#xff01; 内容参考于&#xff1a;易道云信息技术研究院 上一个内容&#xff1a;95.游戏的启动与多开-信号量多开检测与破解 以 95.游戏的启动与多开-信号量多开检测与破…

流程图符号速查:快速掌握流程图绘制要点

流程图是一种以图形化方式表示算法或过程的步骤和逻辑关系的图表&#xff0c;它通过使用一系列标准的符号和连接线来清晰地展示流程的顺序和决策点。这种表示方法不仅使得复杂的过程更加易于理解&#xff0c;而且也便于跟踪和优化。以下是对流程图的进一步扩写&#xff0c;包括…

智谱AI八月全面升级

智谱系列升级&#xff1a; GLM-4-Flash&#xff1a;免费供应&#xff0c;提供快速响应的对话体验。GLM-4-Long&#xff1a;超长上下文模型&#xff0c;支持高达1百万tokens的上下文&#xff0c;成本为1元/百万tokens。GLM-4-Plus&#xff1a;旗舰版模型&#xff0c;性能升级&am…

Linux平台屏幕|摄像头采集并实现RTMP推送两种技术方案探究

技术背景 随着国产化操作系统的推进&#xff0c;市场对国产化操作系统下的生态构建&#xff0c;需求越来越迫切&#xff0c;特别是音视频这块&#xff0c;今天我们讨论的是如何在linux平台实现屏幕|摄像头采集&#xff0c;并推送至RTMP服务。 我们知道&#xff0c;Linux平台&…

js模块化 --- commonjs规范 原理详解

什么是commonjs规范 commonjs是一种模块化规范&#xff08;nodejs的默认模块化规范&#xff0c;新版的nodejs已经支持es6的模块化&#xff0c;但它默认任然使用的是commonjs&#xff09;&#xff0c;通俗的说它将代码分割成了一个一个的模块&#xff0c;让不同的模块拥有自己独…

使用“天聚数行”藏头诗生成API:轻松创作个性化诗词

在日常生活中&#xff0c;有时我们需要一些创意的方式来表达情感或增加趣味性。“天聚数行”提供的藏头诗生成API就是一个很好的工具&#xff0c;可以帮助我们轻松创作个性化的诗词。以下是关于如何使用这一API的详细介绍。 API概述 “天聚数行”的藏头诗生成API是上海觉克信息…

别给智能猫砂盆花冤枉钱了!这三款好用智能猫砂盆哪个更好用?

节假日回老家&#xff0c;不方便带猫咪怎么办&#xff1f;而且猫咪这么能拉&#xff0c;猫砂盆里拉满了又怎么办&#xff1f;猫砂盆一满&#xff0c;就会变脏&#xff0c;变脏了小猫就会抗拒上厕所&#xff0c;从而在家里找其他干净的地方排泄&#xff0c;那我们要怎么保证不在…

AIOT边缘计算机助力智慧储能,开启能源管理新时代

智慧储能能源管理正成为实现可持续发展和高效能源利用的关键。而 AIOT&#xff08;人工智能物联网&#xff09;边缘计算机的出现&#xff0c;为智慧储能能源管理带来了全新的机遇和突破。 一、AIOT 边缘计算机的特点 强大的计算能力 AIOT 边缘计算机具备高性能的处理器和充足…

widows安装配置mamba_ssm环境

由于现在mamba大火&#xff0c;所以将mamba_ssm在windows中的环境配置进行介绍&#xff0c;如果你想在windows中进行开发&#xff0c;那么这是你最好的选择&#xff01;&#xff01; 安装步骤 1.anaconda下载 官网下载&#xff1a;https://www.anaconda.com/download 下载好…

Java笔试面试题AI答之JDBC(4)

文章目录 19. 解释JDBC的ResultSet是什么 &#xff1f;20. JDBC编程有哪些不足之处&#xff0c;MyBatis是如何解决这些问题的&#xff1f;JDBC编程的不足之处MyBatis如何解决这些问题 21. 简述JDBC 能否处理 Blob 和 Clob &#xff1f;1. JDBC对Blob和Clob的支持2. 处理Blob和C…

【LeetCode】09.回文数

题目要求 解题思路 主要是提防越界问题 代码实现 class Solution { public:bool isPalindrome(int x) {//处理边界if(x<0) return false;long tempx,ret0;while(temp){retret*10temp%10;temp/10;}return xret;} };

Java并发编程实战 01 | 进程和线程

最早的计算机就像一个新手服务员&#xff0c;只有在接收到每一条指令时才会开始执行。当用户输入指令时&#xff0c;计算机会执行这条指令&#xff0c;然后等待下一条指令。如果用户在思考或者犹豫时&#xff0c;计算机就会乖乖地等待&#xff0c;效率实在是有点低&#xff0c;…

Swagger UI 无法发送 Cookie

文章目录 背景分析解决参考背景 项目中使用 Cookie 传递用户唯一标识,并在 Swagger 中添加 Cookie 作为全局请求参数。 尽管后端配置了 Cookie 请求参数,但在 Swagger UI 中使用 Try it out 发起请求时,发现请求中并没有 Cookie 传递过去。😭 首先,能看到 Curl 上已经有…

高级编程语言翻译例题

编译器的流程 源程序—词法分析—语法分析—语义分析—中间代码生成—代码优化—目标代码生成—目标程序 选项A&#xff1a;先进性词法分析&#xff0c;接着进行语法分析&#xff0c;最后进行语义分析 选项B&#xff1a;语法分析阶段只能发现程序上的语法错误&#xff0c;其…

软考高项通过率最高?!证书价值大吗?什么时候能报考?

近期有省份公布了2024年上半年软考合格人员名单&#xff0c;不少人说软考高项通过率最高&#xff0c;导致一些人十分想报名软考高项&#xff0c;从而拿证书。 那么&#xff0c;软考高项证书价值大吗&#xff1f;什么时候能报考&#xff1f; 1、通过率分析 在浙江公布的2024年…

YOLOv9改进策略【注意力机制篇】| GAM全局注意力机制: 保留信息以增强通道与空间的相互作用

一、本文介绍 本文记录的是基于GAM注意力模块的YOLOv9目标检测改进方法研究。GAM注意力模块通过3D排列和重新设计的子模块&#xff0c;能够在通道和空间方面保留信息&#xff0c;避免了先前方法中由于信息减少和维度分离而导致的全局空间-通道交互丢失的问题。本文利用GAM改进…

UML的图及其他图补充

一、UML图 1.类图 ‌类图‌是统一建模语言&#xff08;UML&#xff09;中的一种静态结构图&#xff0c;主要用于描述软件系统的静态结构。它显示了模型中的类、类的内部结构以及它们与其他类的关系。类图是面向对象建模的主要组成部分&#xff0c;用于对系统的词汇进行建模、对…

android开发---Kotlin语言基础语法

目录 数据打印 变量 函数 程序逻辑控制 if when 循环 数据打印 IDE采用的androidStudio 可自行官网下载 https://developer.android.google.cn/studio/archive?hlzh-cn 新建项目 添加一个main方法&#xff0c;main()函数的左边出现了一个运行标志的小箭头。现在我们只…

LLaMA-Factory仓基础功能架构及NPU/GPU环境实战演练

LLaMA-Factory 基础篇 LLaMA-Factory简介 LLaMA-Factory是一个开源的大规模语言模型微调框架&#xff0c;设计用于简化大模型的训练过程。它提供了一个统一的平台&#xff0c;支持多种大模型的微调&#xff0c;包括LLaMA、BLOOM、Mistral等&#xff0c;旨在帮助用户快速适应和…

数据脱敏处理

有关于数据脱敏处理&#xff0c;小编也是在文章上面看到的&#xff0c;感觉很有意思&#xff0c;那么&#xff0c;便深入研究了一下&#xff0c;首先我们先来看一下数据脱敏之后的结果吧&#xff1f; 用结果说话更能深入人心&#xff01;&#xff01; 下面是数据库中的字段&a…