+++++++++++++++++++++++++++++++++++++++++++
标题:MySQL的常见运算符
时间:2019年2月23日
内容:MySQL的常见运算符
重点:主要讲述MySQL常见运算以及相关小实验,最后讲述运算符的优先级。
+++++++++++++++++++++++++++++++++++++++++++
1. 运算符概述
通过运用运算符从而通过更加灵活的方式使用表中的数据。MySQL的内部运算符极其丰富,主要分为四类:算数运算符、比较运算符、逻辑运算符和位移运算符。
1.1 算数运算符
算数运算符用于各类数值运算,其中包括加、减、乘、除和模五中运算。
1.2 比较运算符
比较运算符用于比较运算,其中包括大于、小于、等于、大于等于、小于等于和不等于六种运算,除此之外还包括in、between and、is null、greatest、least、like和regexp等。
1.3 逻辑运算符
逻辑运算符最终结果为TRUE或FALSE。该类运算符包括逻辑非、逻辑与、逻辑或和逻辑异或。
1.4 位运算符
位移运算符与预算操作数按照二进制位进行移位运算。其中包括位&、位或、位非(~)、位异或(^)、左移(<<)和右移(>>)六种。

2. 算数运算符
2.1 运算符的作用

2.2 运算应用举例
mysql> create table num (
-> list_id int unsigned not null ,
-> num int not null ,
-> primary key(list_id) );
mysql> insert into num values(1,11),(2,22),(3,33);
mysql> select num+10 , num+20 , num+30 from num;

3. 比较运算符
3.1 运算符的作用

3.2 运算应用举例
3.2.1 等值运算
mysql> select 1=0 , '1'=1 , 2=2 , 'b'='b' , (1+3)=(2+2) , null=null ;

3.2.2 安全等值运算
操作数均为NULL时返回值为1,一方操作数为NULL时返回值为0。
mysql> select 1<=>0 , '1'<=>1 , 2<=>2 , 'b'<=>'b' , null<=>1 , null<=>null ;

3.2.3 运算符(!=、<、>、<=和>=)
mysql> select 1!=2 , '111'>2 , 10>=5 , 20<=9 , 5<null;

3.2.4 is [not] null运算
mysql> create table num1 ( list_id int unsigned , num int );
mysql> insert into num1 values(1,1);
mysql> insert into num1 values(1,null);
mysql> insert into num1 values(null,null);
mysql> insert into num1 values(null,1);

3.2.5 between...and运算
mysql> create table num2 (id int primary key , stu_id int);
mysql> insert into num2 values(1,222);
mysql> insert into num2 values(2,333);
mysql> insert into num2 values(3,444);
mysql> insert into num2 values(4,555);
mysql> insert into num2 values(5,666);

3.2.6 LEAST运算符
语法格式为least(m1,m2...mn)。数值运算返回最小值;字符串运算,返回字母表中的顺序靠前的字母;如果存在null,则返回null。
mysql> select least(1,2,3) , least(null,4,5) , least('asd','zxc','qwe') ;

3.2.7 greatest运算符
语法格式为greatest(m1,m2...mn)。数值运算返回最大值;字符串运算,返回字母表中的顺序靠后的字母;如果存在null,则返回null。
mysql> select greatest(1,2,3) , greatest('qwe','asd','zxc') , greatest('qqq' , null , 1);

3.2.8 [not] in运算符
in运算用于判断操作数是否存在于数据列表中的其中一个值,是则返回1,否则返回0;而not in与in的作用恰恰相反。
mysql> create table num4 (id int primary key , stu_id int);
mysql> insert into num4 values(1,1111);
mysql> insert into num4 values(2,2222);
mysql> insert into num4 values(3,3333);
mysql> insert into num4 values(4,4444);
mysql> insert into num4 values(5,5555);
mysql> select * from num4 where stu_id in (1111,2222,6666);
mysql> select * from num4 where stu_id not in (1111,2222,6666);

3.2.9 like运算符
like运算符是用于匹配字符串的,语法格式为"字段 like 匹配表达式"。匹配成功返回TRUE,否则返回FALSE。
like的两种通配符:
%表示匹配任意0~n多个字符。
_表示匹配任意1个字符。

mysql> insert into list values(1,'qwe','qwe');
mysql> insert into list values(2,'asd','asd');
mysql> insert into list values(3,'zxc','zxc');
mysql> insert into list values(4,'zxcs','zxcs');
mysql> select * from list where username like 'zx_';
mysql> select * from list where username like 'zx%';

3.2.10 regexp运算符(正则表达式匹配)
语法格式为"字段 regexp 匹配表达式"。
满足条件返回值为1;否则返回值为0;如果字段或匹配条件任意一个为null,则返回结果为null。
regexp通配符:
(1) '^' 匹配以指定的字符串开头的字符串。
(2) '$' 匹配以指定的字符串结尾的字符串。
(3) '.' 匹配任意一个单个字符。
(4) '[...]' 匹配在方括号中的任意字符。([asd]、[a-z]、[0-9])
(5) '*' 匹配0或多个在其前面的字符。('x*'、'[0-9]*')

mysql> insert into list1 values(1,'qwer','asdff');
mysql> insert into list1 values(2,'xfvdb','zdnei');
mysql> insert into list1 values(3,'kjegv','afwvub');
mysql> insert into list1 values(4,'mmmmmm','ppppp');
mysql> select * from list1 where username regexp '^k[abcdefj]';
mysql> select * from list1 where username regexp '.m*m$';

4. 逻辑运算符
4.1 逻辑运算符的作用
逻辑运算符求职所得结果均为TRUE、FALSE或NULL。在MySQL中体现为1、0或null。

4.2 逻辑运算符详解
4.2.1 NOT 或 !
操作数为null:取反后返回值为null;
操作数为非null:0的返回值为1,1的返回值为0。

4.2.2 AND 或 &&
操作数存在null:
操作数均为null时,返回值为null;
操作数存在其中一个为null时,与1运算结果为null,与0运算结果为0。
操作数均为非null:1与1运算为真,其他均为假。

4.2.3 OR 或 ||
操作数存在null:
操作数均为null时,返回值为null;
操作数其中一个为null时,与1运算时值为1,与0运算时值为0;
操作数均为非null:1与1运算时值为1,其他情况均为假。

4.2.4 XOR(异或)
操作数存在null时:运算结果均为null;
操作数为非null时:操作数相同时返回值为0,操作数相异时返回值为1。

5. 位运算符
5.1 位运算符的作用

5.2 位运算符详解
5.2.1 位或运算符

5.2.2 位与运算符

5.2.3 位异或运算符

5.2.4 左(右)移位运算符

6. 运算符的优先级(重点掌握)
运算符由上到下优先级依次由低到高。

MySQL的运算符及其优先级的更多相关文章

  1. MySql的运算符

    数据库中的表结构确立后,表中的数据代表的意义就已经确定.而通过MySQL运算符进行运算,就可以获取到表结构以外的另一种数据.例如,学生表中存在一个birth字段,这个字段表示学生的出生年份.而运用My ...

  2. javascript中运算符的优先级

    运算符优先级 JavaScript中的运算符优先级是一套规则.该规则在计算表达式时控制运算符执行的顺序.具有较高优先级的运算符先于较低优先级的运算符执行.例如,乘法的执行先于加法. 下表按从最高到最低 ...

  3. java中运算符的优先级

    所谓优先级,就是在表达式中的运算顺序.Java 中常用的运算符的优先级如下表所示: 级别为 1 的优先级最高,级别 11 的优先级最低.譬如,x = 7 + 3 * 2  得到的结果是 13 &quo ...

  4. C语言运算符和优先级

    关于C语言运算符和优先级,经整理众多博客资料汇入自己的实战,如下:        a.算术运算        C语言一共有34种运算符,包括常见的加减乘除运算.        1) 加法:+ 还可以表 ...

  5. C语言语法之运算符及优先级

    注:该内容整理自以下链接. http://blog.csdn.net/huangblog/article/details/8271791 表:C语言运算符及优先级 优先级 运算符 名称或含义 使用形式 ...

  6. Java运算符的优先级(从高到低)

    运算符的优先级(从高到低) 优先级 描述 运算符 1 括号 ().[] 2 正负号 +.- 3 自增自减,非 ++.--.! 4 乘除,取余 *./.% 5 加减 +.- 6 移位运算 << ...

  7. javascript运算符的优先级

    最基木的运算符优先级就是所谓的“先乘除,后加减”.对于优先顺序处于同一层次上的运算符,按照从左到右出现的顺序计算.下面给出javascript定义的所有运算符的优先级.运算符 优先顺序成员选择.括号. ...

  8. [转]说说C语言运算符的“优先级”与“结合性”

    补充自己的一点理解: 1.关于++i 与 i++的区别. ++i 和 i++如果是单独使用的语句,即二者后面均加上分号,或者其他单独使用的语句,没有任何区别.例如: for(i=0;i<100; ...

  9. 慕课网-安卓工程师初养成-3-9 Java中运算符的优先级

    来源 http://www.imooc.com/code/1315 所谓优先级,就是在表达式中的运算顺序.Java 中常用的运算符的优先级如下表所示: 级别为 1 的优先级最高,级别 11 的优先级最 ...

随机推荐

  1. C语言之递归

    递归例子如下: #include <stdio.h> /*函数声明*/ void digui(int n); int main() { ; digui(n); ; } void digui ...

  2. Scala(三)

    一.控制语句 var x = 40 if(x == 40){ println("greate") } 二.循环 (1) 一般循环 while(a>1){ if(a==2){ ...

  3. Spring Boot 整合 docker

    一.什么是docker ? 简介 Docker是一个开源的引擎,可以轻松的为任何应用创建一个轻量级的.可移植的.自给自足的容器.开发者在笔记本上编译测试通过的容器可以批量地在生产环境中部署,包括VMs ...

  4. 忘记时间戳的存在——Yii2超实用的自动更新时间戳的Behavior(改进版)

    本文改进了Yii2中内置行为类TimestampBehavior,使得时间戳字段(如created_at,updated_at) 完全自己更新,方便得让你忘记它们的存在. Yii2的内置行为类Time ...

  5. jsp基础语言-jsp表达式

    1.jsp表达式作用:将动态信息显示在页面中. 2.jsp表达式语法:<%=变量或表达式%> 变量:要在页面显示的值的变量名 表达式:其值由服务器计算,计算结果以字符串的形式发送到客户端 ...

  6. float浮动-清浮动BFC渲染机制

    float浮动,用于横向布局. 起初的横向布局都用display:inline-block,但是这会导致两个元素之间有空隙,而这是由代码换行解析成空格的,解决元素间有空隙,空格:font-size:0 ...

  7. MyCat | 分库分表实践

    引言 先给大家介绍2个概念:数据的切分(Sharding)根据其切分规则的类型,可以分为两种切分模式. 切分模式 一种是按照不同的表(或者Schema)来切分到不同的数据库(主机)之上,这种切可以称之 ...

  8. 【阿里云】在 Windows Server 2016 下使用 FileZilla Server 安装搭建 FTP 服务

     Windows Server 2016 下使用 FileZilla Server 安装搭建 FTP 服务 一.安装 Filezilla Server 下载最新版本的 Filezilla Server ...

  9. Android 中使用 dlib+opencv 实现动态人脸检测

    1 概述 完成 Android 相机预览功能以后,在此基础上我使用 dlib 与 opencv 库做了一个关于人脸检测的 demo.该 demo 在相机预览过程中对人脸进行实时检测,并将检测到的人脸用 ...

  10. <5>Python的uwsgi web服务器

    一.是什么? uWSGI是web服务器,用来部署线上web应用到生产环境.uWSGI实现了WSGI协议.uwsgi协议.http协议.WSGI(Web Server Gateway Interface ...