MySQL的运算符及其优先级
+++++++++++++++++++++++++++++++++++++++++++
标题: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的运算符及其优先级的更多相关文章
- MySql的运算符
数据库中的表结构确立后,表中的数据代表的意义就已经确定.而通过MySQL运算符进行运算,就可以获取到表结构以外的另一种数据.例如,学生表中存在一个birth字段,这个字段表示学生的出生年份.而运用My ...
- javascript中运算符的优先级
运算符优先级 JavaScript中的运算符优先级是一套规则.该规则在计算表达式时控制运算符执行的顺序.具有较高优先级的运算符先于较低优先级的运算符执行.例如,乘法的执行先于加法. 下表按从最高到最低 ...
- java中运算符的优先级
所谓优先级,就是在表达式中的运算顺序.Java 中常用的运算符的优先级如下表所示: 级别为 1 的优先级最高,级别 11 的优先级最低.譬如,x = 7 + 3 * 2 得到的结果是 13 &quo ...
- C语言运算符和优先级
关于C语言运算符和优先级,经整理众多博客资料汇入自己的实战,如下: a.算术运算 C语言一共有34种运算符,包括常见的加减乘除运算. 1) 加法:+ 还可以表 ...
- C语言语法之运算符及优先级
注:该内容整理自以下链接. http://blog.csdn.net/huangblog/article/details/8271791 表:C语言运算符及优先级 优先级 运算符 名称或含义 使用形式 ...
- Java运算符的优先级(从高到低)
运算符的优先级(从高到低) 优先级 描述 运算符 1 括号 ().[] 2 正负号 +.- 3 自增自减,非 ++.--.! 4 乘除,取余 *./.% 5 加减 +.- 6 移位运算 << ...
- javascript运算符的优先级
最基木的运算符优先级就是所谓的“先乘除,后加减”.对于优先顺序处于同一层次上的运算符,按照从左到右出现的顺序计算.下面给出javascript定义的所有运算符的优先级.运算符 优先顺序成员选择.括号. ...
- [转]说说C语言运算符的“优先级”与“结合性”
补充自己的一点理解: 1.关于++i 与 i++的区别. ++i 和 i++如果是单独使用的语句,即二者后面均加上分号,或者其他单独使用的语句,没有任何区别.例如: for(i=0;i<100; ...
- 慕课网-安卓工程师初养成-3-9 Java中运算符的优先级
来源 http://www.imooc.com/code/1315 所谓优先级,就是在表达式中的运算顺序.Java 中常用的运算符的优先级如下表所示: 级别为 1 的优先级最高,级别 11 的优先级最 ...
随机推荐
- xshell连接虚拟机详解--技术流ken
xshell连接虚拟机 第一步:网络模式更改为桥接模式 第二步:重启网络 [root@ken1 ~]# systemctl restart network 第三步:获取IP地址 输入命令ip a 第四 ...
- webpack4.0各个击破(2)—— CSS篇
webpack作为前端最火的构建工具,是前端自动化工具链最重要的部分,使用门槛较高.本系列是笔者自己的学习记录,比较基础,希望通过问题 + 解决方式的模式,以前端构建中遇到的具体需求为出发点,学习we ...
- Docker在Linux/Windows上运行NetCore文章系列
Windows系列 因为Window很简单,VS提供界面化配置,所以只写了一篇文章 Docker在Windows上运行NetCore系列(一)使用命令控制台运行.NetCore控制台应用 Linux( ...
- Android Studio 1.1.0 比较有用的快捷键
格式化代码:Ctrl + Alt + L清除无效包引用 Alt + Ctrl + O折叠展开代码块 Ctrl + Plus/Minus折叠展开全部代码块 Ctrl + Shift + Plus,Min ...
- HTML和CSS在IE7中常见的兼容性问题
IE7及以下版本都会有这些问题 1.IE7块转内联块问题 问题描述:好像块转内联块失败,依然不在一行排列 解决办法:给元素添加如下css *display:inline;*zoom:1; *di ...
- idea打jar包并部署java web项目
1.idea打jar包 (idea提供界面是jar包方式) 点击package,结束就OK,jar包一般放在target里面 部署项目 1.停止之前的服务: 查到到java的所有进程:ps -ef|g ...
- 【代码笔记】Web-CSS-CSS Table(表格)
一,效果图. 二,代码. <!DOCTYPE html> <html> <head> <meta charset="utf-8"> ...
- 你真的了解PeopleSoft中的function和method方法嘛
谈下function和method在内嵌与外部传参的区别 1.内嵌函数(Internal Functions) 看下现在输出&x的话会返回什么值? 2.内嵌函数(Internal Functi ...
- 解决注册并发问题并提高QPS
前言:前面在本地的windows通过apache的ab工具测试了600并发下“查询指定手机是否存在再提交数据”的注册功能会出现重复提交的情况,并且在注册完成时还需要对邀请人进行奖励,记录邀请记录,对该 ...
- iOS----------UITextField实现过滤选中状态拼音
2018年上班的第二天,就这样背了一个大锅.我们项目中有一个搜索功能,在这一期的版本中,为了增强优化,去除了过滤空格的请求,这样或许能增加很好的用户体验,恰恰相反,偷鸡不成蚀把米.没想到苹果系统的输入 ...