MySQL数据库,从入门到精通:第四篇——MySQL中常用的运算符及其用法(二)

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
云数据库 RDS MySQL Serverless,价值2615元额度,1个月
简介: MySQL数据库,从入门到精通:第四篇——MySQL中常用的运算符及其用法

2.安全等号运算符

mysql> SELECT 1 <=> '1', 1 <=> 0, 'a' <=> 'a', (5 + 3) <=> (2 + 6), '' <=> NULL,NULL
<=> NULL FROM dual;
+-----------+---------+-------------+---------------------+-------------+-------------
--+
| 1 <=> '1' | 1 <=> 0 | 'a' <=> 'a' | (5 + 3) <=> (2 + 6) | '' <=> NULL | NULL <=>
NULL |
+-----------+---------+-------------+---------------------+-------------+-------------
--+
| 1 | 0 | 1 | 1 | 0 |
1 |
+-----------+---------+-------------+---------------------+-------------+-------------
--+
1 row in set (0.00 sec)
#查询commission_pct等于0.40
SELECT employee_id,commission_pct FROM employees WHERE commission_pct = 0.40;
SELECT employee_id,commission_pct FROM employees WHERE commission_pct <=> 0.40;
#如果把0.40改成 NULL 呢?

可以看到,使用安全等于运算符时,两边的操作数的值都为NULL时,返回的结果为1而不是NULL,其他返回结果与等于运算符相同。

#<=> :安全等于 区别在于 对于NULl的判断也会进行判断了  
#   为了null而生
SELECT 1<=>1, 1 <=>2,2<=>'a',0<=>'a' FROM DUAL;
#空可以正常得到比较了 加了<=>
SELECT 1<=> NULL, NULL<=> NULL
FROM DUAL;
#可查询表中commission_pct 为空的数据
SELECT last_name,salary ,commission_pct
FROM employees 
#WHERE salary = NULL; #只要null参与判断不会有任何结果
WHERE commission_pct<=>NULL;

3.不等于运算符

不等于运算符(<>和!=)用于判断两边的数字、字符串或者表达式的值是否不相等,如果不相等则返回1,相等则返回0。不等于运算符不能判断NULL值。如果两边的值有任意一个为NULL,或两边都为NULL,则结果为NULL。 SQL语句示例如下:

可以看到,使用安全等于运算符时,两边的操作数的值都为NULL时,返回的结果为1而不是NULL,其他
返回结果与等于运算符相同。
3.不等于运算符 不等于运算符(<>和!=)用于判断两边的数字、字符串或者表达式的值是否不相等,
如果不相等则返回1,相等则返回0。不等于运算符不能判断NULL值。如果两边的值有任意一个为NULL,
或两边都为NULL,则结果为NULL。 SQL语句示例如下:
# <>  != 不等于
SELECT 3<>2 ,3!=2,2<>2 ,2!=2 FROM DUAL;
#空和任何数据做对比都为空
SELECT  '4'<>NULL,''!=NULL,NULL!=NULL FROM DUAL;

此外,还有非符号类型的运算符:

#查询commission_pct 为空
SELECT last_name,salary ,commission_pct
FROM employees 
#WHERE salary = NULL; #只要null参与判断不会有任何结果
WHERE commission_pct  IS NULL;
#或者 作为关键字
SELECT last_name,salary ,commission_pct
FROM employees 
#WHERE salary = NULL; #只要null参与判断不会有任何结果
WHERE ISNULL(commission_pct);

#查询commission_pct  不 为空
SELECT last_name,salary ,commission_pct
FROM employees 
#WHERE salary = NULL; #只要null参与判断不会有任何结果
WHERE commission_pct  IS NOT NULL;
#或者 作为关键字
SELECT last_name,salary ,commission_pct
FROM employees 
#WHERE salary = NULL; #只要null参与判断不会有任何结果
WHERE NOT commission_pct <=>NULL;

#LEAST(value1,value2,...) 最小值    GREATEST(value1,value2,...) 最大值
SELECT LEAST('a','c','d','z','v'),
GREATEST('a','c','d','z','v') FROM DUAL;
SELECT LEAST(first_name,last_name) , LEAST(LENGTH(first_name),LENGTH(last_name))
FROM employees;

#BETWEENt 条件1 AND 条件2  (查询条件1到条件二范围的值 ,包含边界值 例如 条件2是小于 5000 那就包括 5000)
#条件1必须为起始条件 条件2位终止条件 注意 不然查不到数据
#查询表employees 中salary的值为6000-8000的包含6000和8000
SELECT employee_id,last_name,salary
FROM employees
WHERE salary BETWEEN 6600 AND 8000;
#或者下面
SELECT employee_id,last_name,salary
FROM employees
WHERE salary>=6000 && salary<=8000;
#错误案例无法查询到数据
SELECT employee_id,last_name,salary
FROM employees
WHERE salary>=8000 && salary<=6000;
#查询不在6000和8000之间的数据
SELECT employee_id,last_name,salary
FROM employees
WHERE salary NOT BETWEEN 6600 AND 8000;
#or 或的意思     AND 和&& 为且的意思
SELECT employee_id,last_name,salary
FROM employees
WHERE salary<6000  or salary>8000;

#in (集合)   not in (集合)
#in 多条件值查询 查询 值为 10  20 30 
SELECT department_id,last_name,salary
FROM employees
WHERE department_id =10 OR department_id=20 OR department_id=30 ;
SELECT department_id,last_name,salary
FROM employees
WHERE department_id in(10,20,30);
#查询不为 10  20 30 的 not in 
SELECT department_id,last_name,salary
FROM employees
WHERE department_id NOT in(10,20,30);


相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
3天前
|
关系型数据库 MySQL 数据库
docker MySQL删除数据库时的错误(errno: 39)
docker MySQL删除数据库时的错误(errno: 39)
10 0
|
4天前
|
存储 数据处理 数据库
深入了解达梦数据库的增删查改操作:从入门到精通
深入了解达梦数据库的增删查改操作:从入门到精通
|
1天前
|
关系型数据库 MySQL 数据库
mysql 设置环境变量与未设置环境变量连接数据库的区别
设置与未设置MySQL环境变量在连接数据库时主要区别在于命令输入方式和系统便捷性。设置环境变量后,可直接使用`mysql -u 用户名 -p`命令连接,而无需指定完整路径,提升便利性和灵活性。未设置时,需输入完整路径如`C:\Program Files\MySQL\...`,操作繁琐且易错。为提高效率和减少错误,推荐安装后设置环境变量。[查看视频讲解](https://www.bilibili.com/video/BV1vH4y137HC/)。
16 3
mysql 设置环境变量与未设置环境变量连接数据库的区别
|
2天前
|
SQL Java 关系型数据库
零基础轻松入门Java数据库连接(JDBC)
零基础轻松入门Java数据库连接(JDBC)
8 0
|
3天前
|
关系型数据库 MySQL 数据库连接
用Navicat备份Mysql演示系统数据库的时候出:Too Many Connections
用Navicat备份Mysql演示系统数据库的时候出:Too Many Connections
|
4天前
|
存储 Oracle 关系型数据库
oracle 数据库 迁移 mysql数据库
将 Oracle 数据库迁移到 MySQL 是一项复杂的任务,因为这两种数据库管理系统具有不同的架构、语法和功能。
15 0
|
4天前
|
安全 Java 数据库连接
在IntelliJ IDEA中通过Spring Boot集成达梦数据库:从入门到精通
在IntelliJ IDEA中通过Spring Boot集成达梦数据库:从入门到精通
|
4天前
|
存储 Oracle 关系型数据库
达梦数据库入门语法:从基础到进阶的指南
达梦数据库入门语法:从基础到进阶的指南
|
11天前
|
关系型数据库 MySQL Linux
【MySQL-10】数据库函数-案例演示【字符串/数值/日期/流程控制函数】(代码演示&可cv代码)
【MySQL-10】数据库函数-案例演示【字符串/数值/日期/流程控制函数】(代码演示&可cv代码)
【MySQL-10】数据库函数-案例演示【字符串/数值/日期/流程控制函数】(代码演示&可cv代码)
|
11天前
|
SQL 关系型数据库 MySQL
【MySQL-5】DDL的数据库操作:查询&创建&删除&使用(可cv代码+演示图)
【MySQL-5】DDL的数据库操作:查询&创建&删除&使用(可cv代码+演示图)

推荐镜像

更多