MySQL的运算符(九)上

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群版 2核4GB 100GB
推荐场景:
搭建个人博客
云数据库 RDS MySQL,高可用版 2核4GB 50GB
简介: MySQL的运算符(九)

我们讲过了,插入数据,修改数据和删除数据,你以为该讲查询数据了吗? 怎么可能,查询数据那么麻烦,老蝴蝶才不先讲呢。


这一章讲解一下 MySQL的运算符。


MySQL的运算符,与 Java, C 或者C++一样,也有一些常见的运算符。


MySQL的运算符分类:


  • 算术运算符
  • 比较运算符
  • 逻辑运算符
  • 位运算符


相比较 Java, 少了 赋值运算符 和 ?三目运算符, instanceof 运算符等。


仍然使用 yuejl 数据库的 user 表。


20191125084148729.png


一. 算法运算符


一.一 拥有运算符


image.png


结果是一个新的数值。


一.二 举例查询


1 . 可以单独在数据库中查询,不指定表。 也不用像oracle 数据库那样 用 dual 虚拟表。


  select 2+7,7-2,2*7,7/2,7%2 ;


2019112508415645.png


2 . 与数据库表里面的 整数型数据进行联合


如, user 表里面的 age 字段。


  select age,age+2,age-2,age*2,age/2,age%2 from user;


20191125084205743.png


可以发现, MySQL 会保留四位小数。 如 24/2 时是 12.0000


一.三 除0 和%0 的操作


除数不能为0. 看MySQL 如何处理的


  select 2/0,2%0;


20191125084213707.png


两个结果都是0. 但注意,有警告,虽然不报错。


1 row in set, 2 warnings (0.00 sec)


二. 比较运算符


二.一 拥有运算符



image.png


二.二 举例查询


二.二.一 = 号 比较, 返回值为 0(假) 1(真)


  select 2=7,2=2,'yuezl'='yuezl','2'=2,(2+7)=(5+4),2=null,null=null;


20191125084257262.png


前两个 2=7,2=2 是普通的数字比较。 第三个 ‘yuezl’=‘yuezl’ 是字符串的比较。


‘2’=2 是字符串与数字的比较, 会先将字符串转换成数字,再进行比较。


(2+7)=(5+4) 是表达式比较,表达式结果相同,为真。


2=null 返回的是null


null=null, 返回的是 null, 当与 null进行比较时,无论是什么,都返回 null.


非数字型字符串也可以与数字进行= 号, 一律返回 假 (0)


  select 97='a';


20191125084315759.png


二.二.二 <=> 号比较。 返回值为 0(假) 1(真)


这个叫 安全等, 是对 =的加强版。 加强的是什么呢, 加强的是 null 值。 当左右两个比较值没有一个值为null时,那么 <=> 就等于 ‘=’ 号。 如果有 null值,那么就不一样了。


  select 2<=>null,null<=>7,null<=>null;


20191125084326626.png


两个均为null时,不返回 null,而是返回 1(真)。 只有一个为null时,那么返回 0 (假)


二.二.三 < 号 返回值为 0(假) 1(真)


  select 2<7,2.500<7,'yuezl'<'abc',null<null;


20191125084334658.png


字符串比较时,按照 ASCII 码进行比较, 与java中的字符串比较一致。


null与null 比较时,返回 null.


非数字型字符串也可以与 数字进行比较, 会先将字符串通过ASCII 码 转换成数字,然后再进行比较。


  select 98>'a',98>'abc',95<'a',95<'abc';


20191125084342999.png


但看见没有,有警告。 所以,最好不要这么比较。 接下来,也都正常的进行比较。


二.二.四 > 号。 返回值为 0(假) 1(真)


   select 7>2,(3+5)>(2+1),'bc'>'ac',null>null;


20191125084350676.png


二.二.五 <>号|!= 返回值为 0(假) 1(真)


不等于号, 用 <> 或者 != 均可以。 但建议使用 <> 号。


  select 7<>2,7!=2,'yuejl'<>'yuejl','yuejl'!='good',(3+4)<>(2+4),null <> null;


20191125084356533.png

相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
9月前
|
关系型数据库 MySQL Java
MYSQL运算符和分页
MYSQL运算符和分页
48 0
|
1月前
|
关系型数据库 MySQL Java
【MySQL进阶之路 | 基础篇】[MySQL]运算符
【MySQL进阶之路 | 基础篇】[MySQL]运算符
|
1月前
|
SQL 关系型数据库 MySQL
mysql基本查询、运算符、排序和分页
mysql基本查询、运算符、排序和分页
|
9月前
|
SQL 关系型数据库 MySQL
MySql where 查询条件与运算符
MySql where 查询条件与运算符
75 0
|
1月前
|
SQL 安全 关系型数据库
MySQL技能完整学习列表3、SQL语言基础——3、SQL运算符和函数
MySQL技能完整学习列表3、SQL语言基础——3、SQL运算符和函数
46 0
|
1月前
|
关系型数据库 MySQL 数据库
【MySQL进阶之路丨第十七篇(完结)】一文带你精通MySQL运算符
【MySQL进阶之路丨第十七篇(完结)】一文带你精通MySQL运算符
32 0
|
1月前
|
存储 关系型数据库 MySQL
MySQL基础篇(运算符、排序分页、多表查询、函数)-3
MySQL基础篇(运算符、排序分页、多表查询、函数)
65 0
|
1月前
|
SQL 关系型数据库 MySQL
MySQL基础篇(运算符、排序分页、多表查询、函数)-2
MySQL基础篇(运算符、排序分页、多表查询、函数)
49 0
|
1月前
|
SQL 关系型数据库 MySQL
MySQL基础篇(运算符、排序分页、多表查询、函数)-1
MySQL基础篇(运算符、排序分页、多表查询、函数)
75 0
|
1月前
|
关系型数据库 MySQL 数据库
【MySQL进阶之路丨第十七篇(完结)】一文带你精通MySQL运算符
【MySQL进阶之路丨第十七篇(完结)】一文带你精通MySQL运算符
29 0