数据库中的表结构确立后,表中的数据代表的意义就已经确定。而通过MySQL运算符进行运算,就可以获取到表结构以外的另一种数据。例如,学生表中存在一个birth字段,这个字段表示学生的出生年份。而运用MySQL的算术运算符用当前的年份减学生出生的年份,那么得到的就是这个学生的实际年龄数据。这就是MySQL的运算符,所以熟悉并掌握运算符的应用,对于操作MySQL数据库中的数据是非常有用的。下面就来熟悉一下MySQL支持的4种运算符都具备哪些功能。

算术运算符:执行算术运算,例如:加、减、乘、除等。

比较运算符:包括大于、小于、等于或者不等于,等等。主要用于数值的比较、字符串的匹配等方面。例如:LIKE、IN、BETWEEN AND和IS NULL等都是比较运算符,还包括正则表达式的REGEXP也是比较运算符。

逻辑运算符:包括与、或、非和异或等逻辑运算符。其返回值为布尔型,真值(1或true)和假值(0或false)。

位运算符:包括按位与、按位或、按位取反、按位异或、按位左移和按位右移等位运算符。位运算必须先将数据转换为二进制,然后在二进制格式下进行操作,运算完成后,将二进制的值转换为原来的类型,返回给用户。

算术运算符

算术运算符是MySQL中最常用的一类运算符。MySQL支持的算术运算符包括:加、减、乘、除、求余。

加(+)、减(-)和乘(*)可以同时计算多个操作数。除号(/)和求余运算符(%)也可以同时计算多个操作数,但是这两个符号计算多个操作数不太好。DIV和MOD这两个运算符只有两个参数。进行除法和求余的运算时,如果x2参数是0或者null,计算结果将是空值(NULL)。

比较运算符

比较运算符是查询数据时最常用的一类运算符。SELECT语句中的条件语句经常要使用比较运算符。通过这些比较运算符,可以判断表中的哪些记录是符合条件的。

下面对几种较常用的比较运算符进行详解。

1.运算符“=”,“=”用来判断数字、字符串和表达式等是否相等。如果相等,返回1,否则返回0。

说明:在运用“=”运算符判断两个字符是否相同时,数据库系统都是根据字符的ASCII码进行判断的。如果ASCII码相等,则表示这两个字符相同。如果ASCII码不相等,则表示这两个字符不相同。注意,空值(NULL)不能使用“=”来判断。

2.运算符“<>”和“!=”,“<>”和“!=”用来判断数字、字符串、表达式等是否不相等。如果不相等,则返回1;否则,返回0。这两个符号也不能用来判断空值(NULL)。

3.运算符“>”,“>”用来判断左边的操作数是否大于右边的操作数。如果大于,返回1;否则,返回0。同样,空值(NULL)不能使用“>”来判断。

4.运算符“IS NULL”,“IS NULL”用来判断操作数是否为空值(NULL)。操作数为NULL时,结果返回1;否则,返回0。IS NOT NULL刚好与IS NULL相反。

说明:“=”、“<>”、“!=”、“>”、“>=”、“<”、“<=”等运算符都不能用来判断空值(NULL)。一旦使用,结果将返回NULL。如果要判断一个值是否为空值,可以使用IS NULL和IS NOT NULL来判断。注意:NULL和'NULL'是不同的,前者表示为空值,后者表示一个由4个字母组成的字符串。

5.运算符“BETWEEN AND”,“BETWEEN AND”用于判断数据是否在某个取值范围内。

其表达式如下:

x1 BETWEEN m AND n

如果x1大于等于m,且小于等于n,结果将返回1,否则将返回0。

6.运算符“IN”,“IN”用于判断数据是否存在于某个集合中。

其表达式如下:

x1 IN(值1,值2,……,值n)

如果x1等于值1到值n中的任何一个值,结果将返回1。如果不是,结果将返回0。

7.运算符“LIKE”,“LIKE”用来匹配字符串。

其表达式如下:

x1 LIKE s1

如果x1与字符串s1匹配,结果将返回1。否则返回0。

8.运算符“REGEXP” ,REGEXP”同样用于匹配字符串,但其使用的是正则表达式进行匹配。

其表达式格式如下:

x1 REGEXP'匹配方式'

如果x1满足匹配方式,结果将返回1;否则将返回0。

说明:使用REGEXP运算符匹配字符串,其使用方法非常简单。REGEXP运算符经常与“^”、“$”和“.”一起使用。“^”用来匹配字符串的开始部分;“$”用来匹配字符串的结尾部分;“.”用来代表字符串中的一个字符。

逻辑运算符

逻辑运算符用来判断表达式的真假。如果表达式是真,结果返回1。如果表达式是假,结果返回0。逻辑运算符又称为布尔运算符。MySQL中支持4种逻辑运算符,分别是与、或、非和异或。

1.“与”运算

“&&”或者“AND”是“与”运算的两种表达方式。如果所有数据不为0且不为空值(NULL),则结果返回1;如果存在任何一个数据为0,则结果返回0;如果存在一个数据为NULL且没有数据为0,则结果返回NULL。“与”运算符支持多个数据同时进行运算。

2.“或”运算

“||”或者“OR”表示“或”运算。所有数据中存在任何一个数据为非0的数字时,结果返回1;如果数据中不包含非0的数字,但包含NULL时,结果返回NULL;如果操作数中只有0时,结果返回0。“或”运算符“||”可以同时操作多个数据。

3.“非”运算

“!”或者NOT表示“非”运算。通过“非”运算,将返回与操作数据相反的结果。如果操作数据是非0的数字,结果返回0;如果操作数据是0,结果返回1;如果操作数据是NULL,结果返回NULL。

4.“异或”运算

XOR表示“异或”运算。当其中一个表达式是真而另外一个表达式是假时,该表达式返回的结果才是真;当两个表达式的计算结果都是真或者都是假时,则返回的结果为假。

位运算符

位运算符是在二进制数上进行计算的运算符。位运算会先将操作数变成二进制数,进行位运算。然后再将计算结果从二进制数变回十进制数。MySQL中支持6种位运算符,分别是:按位与、按位或、按位取反、按位异或、按位左移和按位右移。

运算符的优先级

mysql 除号_MySql的运算符-阿里云开发者社区相关推荐

  1. 阿里云 mysql 日志_MySQL日志简介-阿里云开发者社区

    MySQL中的日志主要分为以下几种: 查询日志 慢查询日志 错误日志 二进制日志 中继日志 事务日志 说明: 支持本文实验使用的linux系统是CentOS7版本,使用的数据库是base源自带的Mar ...

  2. freebsd mysql 安装_Freebsd中mysql安装及使用笔记-阿里云开发者社区

    Freebsd中mysql安装及使用笔记 x3d 2009-07-31 662浏览量 简介: 1.安装 一开始连mysql的软件包在freebsd中叫什么都不知道: 依稀属于databases类,先到 ...

  3. openstack mysql配置_《OpenStack云计算实战手册(第2版)》一2.3 用MySQL配置OpenStack镜像服务-阿里云开发者社区...

    本节书摘来异步社区<OpenStack云计算实战手册(第2版)>一书中的第2章,第2.3节,作者: [英]Kevin Jackson , [美]Cody Bunch 译者: 黄凯 , 杜玉 ...

  4. MySQL 引擎 阿里_MySQL引擎讲解-阿里云开发者社区

    MySQL支持三个引擎:ISAM.MyISAM和HEAP,根据需求不同来选择不同的引擎 数据库的引擎到决于 MySQL 在安装的时候是如何被编译的,要添加一个新的引擎,就必须重新编译 --with-p ...

  5. 阿里云mysql创建用户_mysql创建用户-阿里云开发者社区

    创建用于localhost连接的用户并指定密码 mysql> create user'pcom'@'localhost'identified by'aaa7B2249'; Query OK,0r ...

  6. 阿里云mysql事件启动_mysql 启动事件-阿里云开发者社区

    事件调度器有时也可称为临时触发器(temporal triggers),因为事件调度器是基于特定时间周期触发来执行某些任务,而触发器(Triggers)是基于某个表所产生的事件触发的,区别也就在这里. ...

  7. mysql官方读写性能_mysql读写性能测试-阿里云开发者社区

    概述和测试环境 压测的目的是为了尽量模拟真实情况.测试的表都是由10个int型字段和10个字符串型字段组成.每个测试项目都测试了myisam和innodb两个引擎.测试的方法都是用两个线程并发,一共跑 ...

  8. mysql子分区多少层_MySQL 子分区-阿里云开发者社区

    介绍 子分区其实是对每个分区表的每个分区进行再次分隔,目前只有RANGE和LIST分区的表可以再进行子分区,子分区只能是HASH或者KEY分区.子分区可以将原本的数据进行再次的分区划分. 一.创建子分 ...

  9. perl导入文本至mysql_Perl 脚本实现MySQL 异机导入导出-阿里云开发者社区

    单位的开发同事需要将一个mysql 中的库导入到本地mysql中 所以为了减少手工操作,就写了下面的一个用perl 实现的 mysql 异机导入导出脚本:如下 #!/usr/bin/perl  -w ...

最新文章

  1. FW 每秒百万级别的 HTTP 请求 sung: 重型的(heavy-duty)、分布式的、多协议测试工具...
  2. 结队作业,小学生3年级数学题出题器
  3. Git权威指南-51CTO读书
  4. 苹果支付:如何解决沙盒环境下获取可恢复购买项为空
  5. 95-140-040-源码-transform-简介
  6. Spring AOP(三)之AfterThrowing增强处理
  7. 电子技术基础资料合集
  8. 使用C语言判断一个数是否为素数
  9. 详解三相直流无刷电机驱动器硬件原理图
  10. 原生JS实现图片爆炸特效
  11. 台湾安格AG6202与CS5210参数差异与区别|HDMI转VGA方案比较|AG6202与CS5210电路设计差异
  12. CentOS7无法解压7za包,解决办法!!!
  13. [源码解析] 深度学习分布式训练框架 horovod (11) --- on spark --- GLOO 方案
  14. luogu 1094
  15. 为何epoll的ET模式文件要设置为非阻塞?
  16. c语言cross函数什么意思,通达信cross函数用法,通达信 filter函数 返回什么值
  17. 【Anroid界面实现】通用的桌面悬浮窗口的实现
  18. 数据结构,为何是工程师最重要的基本功?
  19. 陈冠希为中国制造发声,他的潮牌生意年收入高达1000多万美金,潮流文化将成为一股消费的中坚力量。...
  20. 肠道核心菌属——毛螺菌属(Lachnospira)

热门文章

  1. 【数据说第九期】如何分析用户行为数据,来驱动业务增长?
  2. 世界上最顶尖的技术都在哪些国家?
  3. 网络爬虫——中国大学排名数据抓取
  4. 前无古人,后无来者经典日志大汇总--------生活珍藏版(其实你并了解你所生活的世界!)
  5. redhat linux 批量改名,CentOS的批量改名命令 rename和prename
  6. 镜像在国外仓库,拉取不了怎么办
  7. python对wav音频可视化
  8. 秀米怎么用html模板,秀 米 模 板 不 够 用 ?
  9. HP 1022N 网络打印机安装步骤
  10. Python字符串切片总结