七:MYSQL之常用操作符
前言:
运算符连接表达式中各个操作数,其作用是用来指明对操作数所进行的运算。
常见的运算有数学计算、比较运算、位运算及逻辑运算
一:算数运算符
用于各类数值运算。包括加(+)、减(-)、乘(*)、除(/)、求余(%)
二:比较运算符
2.1概述
用于比较运算。包括大于(>)、小于(<)、等于(=)、大于等于(>=)、小于等于(<=)、不等于(!=)、以及IN、BETWEEN AND、IS NULL、GREATEST、LEAST、LIKE、REGEXP等
2.2各种比较运算符介绍
1)等号”=”用来判断数字、字符串和表达式是否相等。如果相等,返回值为1,否则返回值为0。 select 1=0,''=2,2=2,NULL=NULL; 返回值=0,1,1,null 2)安全等于号。这个操作符合=操作符执行相同的比较操作,不过<=>可以用来判断NULL值,在两个操作数均为NULL时,其返回值为1而不为NULL,而当一个操作数为NULL时,其返回值为0而不为NULL。 select 1<=>0,''<=>2,NULL<=>NULL; 返回值=0,1,1 3)‘<>’或者’!=’用于判断数字、字符串、表达式不相等的判断。如果不相等,返回值为1;否则返回值为0。这两个运算符不能用于判断空值NULL。 select 'good'<>'good',1<>2,4!=5,5.5!=5,(1+3)!=(2+1),NULL<>NULL; 返回值=0,1,1,1,0,null 4)IS NULL和ISNULL检验一个值是否为NULL,如果为NULL,返回值为1。否则返回值为0;IS NOT NULL检验一个值是否为非NULL,如果非NULL,返回值为1;否则返回值为0。 select NULL IS NULL,ISNULL(NULL),ISNULL(10),10 IS NOT NULL; 返回值=1,1,0,1 5)BETWEEN AND运算符。语法格式为:expr BETWEEN min AND max。假如expr大于或等于min且小于或等于max,则BETWEEN的返回值为1,否则返回值为0。 select 4 BETWEEN 4 AND 6,12 BETWEEN 9 AND 10; 返回值=1,0 6)LEAST运算符。语法格式为:LEAST(值1,值2,…值n),其中值n表示参数列表中有n个值。在有两个或多个参数的情况下,返回最小值。假如任意一个自变量为NULL,则LEAST()的返回值为NULL。 select least(2,0),least(20.0,3.0,100.5),least(10,NULL); 返回值=0,3.0,null 7)GREATEST(value1,value2,…)。语法格式为:GREATEST(值1,值2,…值n),其中n表示参数列表中有n个值。当有2个或多个参数时,返回值为最大值,假如任意一个自然变量为NULL,则GREATEST()的返回值为NULL。 select greatest(2,0),greatest(20.0,3.0,100.5),greatest(10,NULL); 返回值=2,100.5,null 8)IN、NOT IN运算符。IN运算符用来判断操作数是否为IN列表中的其中一个值,如果是,返回值为1;否则返回值为0。 select 2 IN(1,3,5,'thks'),'thks' IN(1,3,5,'thks'); 返回值=0,1 9)LIKE运算符用来匹配字符串,语法格式为:expr LIKE 匹配条件,如果expr满足匹配条件,则返回值为1(TRUE);如果不匹配,则返回值为0(FALSE)。若expr或匹配条件中任何一个为NULL,则结果为NULL。
LIKE运算符在进行匹配时,可以使用下面两种通配符:
9.1) ‘%’,匹配任何数目的字符,甚至包括0字符。
9.2.)‘_’,只能匹配一个字符。 select 'stud' LIKE 'stud','stud' LIKE 'stu_','stud' LIKE '%d','stud' LIKE't___','s' LIKE NULL; 返回值=1,1,1,1,0 10)REGEXP运算符用来匹配字符串,语法格式为:expr REGEXP 匹配条件,如果expr满足匹配条件,返回1;如果不满足,则返回0;若expr或匹配条件任意一个为NULL,则结果为NULL。
REGEXP运算符在进行匹配时,常用的有下面几种通配符:
(1) ‘^’匹配以该字符后面的字符开头的字符串。
(2) ‘$’匹配以该字符后面的字符结尾的字符串。
(3) ‘.’匹配任何一个单字符。
(4) ‘[…]’匹配在方括号内的任何字符。例如,”[abc]”匹配”a”、”b”或”c”。为了命名字符串的范围,使用一个’-‘。”[a-z]”匹配任何字母,而”[0-9]”匹配任何数字。
(5) ‘*’匹配0个或多个在它前面的字符。 select 'ssky' REGEXP '^s','ssky' REGEXP 'y$','ssky' REGEXP '.sky','ssky' REGEXP '[ab]';
介绍为转载内容
数据库建表脚本
2.3数据库表数据
mysql> SELECT * FROM student;
+------+----------+-------+----------+-----------------+
| s_id | s_name | s_age | s_gender | s_major |
+------+----------+-------+----------+-----------------+
| 1 | 马化腾 | 54 | 男 | 腾讯集团CEO |
| 2 | 雷军 | 48 | 男 | 小米集团CEO |
| 3 | 丁磊 | 46 | 男 | 网易集团CEO |
| 4 | 马云 | 51 | 男 | 阿里巴巴集团CEO |
| 5 | 刘强东 | 45 | 男 | 京东集团CEO |
| 6 | 王健林 | 65 | 男 | 万达集团CEO |
| 7 | 周鸿祎 | 46 | 男 | 360集团CEO |
| 8 | 章泽天 | 25 | 女 | NULL |
| 9 | 章子怡 | 39 | 女 | NULL |
| 10 | 张一山 | 27 | 男 | 演员 |
| 11 | 冯小刚 | 66 | 男 | 导演 |
| 12 | 张艺谋 | 68 | 男 | 导演 |
| 13 | 刘亦菲 | 32 | 女 | 演员 |
| 14 | 莫言 | 70 | 男 | 作家 |
| 15 | 科比 | 35 | 男 | 篮球运动员 |
| 16 | 梅西 | 31 | 男 | 足球运动员 |
| 17 | 约翰塞纳 | 42 | 男 | 摔跤运动员 |
| 18 | 凤姐 | 36 | 女 | NULL |
| 19 | 詹姆斯 | 31 | 男 | 篮球运动员 |
| 20 | 内马尔 | 25 | 男 | 足球运动员 |
| 21 | 胡歌 | 35 | 男 | 演员 |
| 22 | 许家印 | 67 | 男 | 恒大CEO |
| 23 | 周杰伦 | 35 | 男 | 流行歌手 |
| 24 | 鹿晗 | 27 | 男 | 偶像明星 |
| 25 | P-Gone | 20 | 男 | 说唱歌手 |
| 26 | 李安 | 55 | 男 | 导演 |
| 27 | 斯图尔特 | 28 | 女 | 演员 |
| 28 | 王大明 | 25 | 男 | NULL |
| 29 | 犀利哥 | 45 | 男 | 乞丐 |
| 31 | 冯提莫 | 26 | 女 | 娱乐主播 |
| 32 | 卢本伟 | 25 | 男 | 网络主播 |
| 33 | 小狗 | 21 | 男 | LOL职业选手 |
| 34 | Gogoing | 26 | 男 | LOL职业选手 |
| 35 | 仙凡 | 27 | 男 | LOL主播 |
| 36 | 黑人毅 | 29 | 男 | 户外主播 |
| 37 | 旭旭宝宝 | 28 | 男 | DNF主播 |
| 38 | 大龙猫 | 27 | 男 | DNF主播 |
| 39 | 奥巴马 | 57 | 男 | 前美国总统 |
| 40 | 克林顿 | 20 | 男 | 前美国总统 |
| 42 | 林俊杰 | 37 | 男 | 流行歌手 |
| 43 | 张韶涵 | 35 | 女 | 流行歌手 |
| 44 | 杨紫 | 27 | 女 | 演员 |
+------+----------+-------+----------+-----------------+
42 ROWS IN SET (0.00 sec)
数据库表数据
2.4参考以下代码
--比较运算符,多个值进行比较,既可以作为结果输出,也可以作为判断条件 --<=>,安全等于号,可以用来判断某个数据是否为NULL,0表示buwei NULL,1表示NULL
SELECT s_major FROM student WHERE s_name='章泽天';--NULL
SELECT s_major <=> NULL FROM student s WHERE s.s_name='章泽天';---1
SELECT s_major <=> NULL FROM student WHERE s_name='马化腾';-- --ISNULL() 、IS NULL 、IS NOT NULL 可以用来判断某个数据是否为NULL
SELECT ISNULL(s_major) FROM student WHERE s_name ='章泽天';--
SELECT s_major IS NULL FROM student WHERE s_name='章泽天';--
SELECT s_major IS NOT NULL FROM student WHERE s_name='章泽天';-- --<> 、 != 这两个运算符不能用于判断空值NULL
--用于判断数字、字符串、表达式不相等的判断,不相等返回1否则为0,不能安段NULL
SELECT s_major != '演员' FROM student WHERE s_name='章泽天';--NULL
SELECT s_major !='演员' FROM student WHERE s_name='马化腾';--
SELECT s_major <> '演员' FROM student WHERE s_name='胡歌';--
SELECT * FROM student WHERE s_major<>'演员'; --BETWEEN AND
--查询年龄在23-40之间的同学包含两端[23 40]
SELECT * FROM student WHERE s_age BETWEEN 23 AND 40;
SELECT s_age BETWEEN 25 AND 40 FROM student WHERE s_name='马化腾';--
SELECT s_age BETWEEN 50 AND 60 FROM student WHERE s_name='马化腾';-- --LEAST运算符,不好作为WHERE后的判断条件
SELECT LEAST(0,5,2),LEAST(10,25,8),LEAST(10,NULL,15);--0/8/NULL
--GREATEST运算符
SELECT GREATEST(0,5,2),GREATEST(10,25,8),GREATEST(10,NULL,15)--5/25/NULL --IN NOT IN查找符合给定值的记录,也可以作为判断某个值是否在给定值中
SELECT * FROM student WHERE s_age IN(25,35,45);
SELECT s_age IN(25,35,45) FROM student WHERE s_name='章泽天';--
SELECT s_age IN(15,35,45) FROM student WHERE s_name='章泽天';-- --LIKE运算符
SELECT * FROM student WHERE s_major LIKE '运动员';
SELECT * FROM student WHERE s_major LIKE '%运动员';
SELECT * FROM student WHERE s_major LIKE '%运动员%';
SELECT * FROM student WHERE s_major LIKE '_运动员'; --REGEXP ,(regular expression)匹配正则表达式
SELECT 'ssky' REGEXP '^s','ssky' REGEXP 'y$','ssky' REGEXP '.sky','sska' REGEXP '[fb]';
--结果 1,1,1,0
--如果expr满足匹配条件,返回1;如果不满足,则返回0;若expr或匹配条件任意一个为NULL,则结果为NULL。
--REGEXP运算符在进行匹配时,常用的有下面几种通配符:
--1‘^’匹配以该字符后面的字符开头的字符串。
--2‘$’匹配以该字符后面的字符结尾的字符串。
--3‘.’匹配任何一个单字符。
--4‘[…]’匹配在方括号内的任何字符。例如,”[abc]”匹配”a”、”b”或”c”。为了命名字符串的范围,使用一个’-‘。”[a-z]”匹配任何字母,而”[0-9]”匹配任何数字
--5‘*’匹配0个或多个在它前面的字符
比较运算符练习
三:逻辑运算符
3.1概述
在SQL中,所有逻辑运算符的求值结果均为TRUE、FALSE、或NULL,在M有SQL中,他们体现为1/0、NULL
3.2实例
1)NOT或! 逻辑非运算符NOT或者!表示当操作数为0时,所得值为1;当操作数为非零值时,所得值为0,当操作数为NULL时,所得的返回值为NULL。 select NOT 10,NOT(1-1),NOT -5,NOT NULL,NOT 1+1; 返回值= 0,1,0,0 2)AND或&& 逻辑与运算符AND或者&&表示当所有操作数均为非零值、并且不为NULL时,计算所得结果为1;当一个或多个操作数为0时,所得结果为0,其余情况返回值为NULL。 select 1 AND -1,1 AND 0,1 AND NULL,0 AND NULL; 3)OR或|| 逻辑与运算符OR或者||表示当两个操作数均为非NULL值,且任意一个操作数为非零值时,结果为1,否则结果为0; 当有一个操作数为NULL,且另一个操作数为非零值时,则结果为1,否则结果为NULL;当两个操作数均为NULL时,则所得结果为NULL。 select 1 OR-1,1 OR 0,1 OR NULL,0 OR NULL; 4)XOR 逻辑异或运算符XOR。当任意一个操作数为NULL时,返回值为NULL;对于非NULL的操作数,如果两个操作数都是非0值或者都是0值,则返回结果为0;如果一个为0值,另一个为非0值,返回结果为1。 select 1 XOR 1,0 XOR 0,1 XOR 0,0 XOR 0,1 XOR NULL,1 XOR 1;
实例介绍为转载
3.3:数据库表数据
数据库表数据
3.4:练习代码
四:位运算符
4.1:概述
位运算符用来 对二进制字节中的位进行测试,位移或者测试处理,M有SQL中提供的位运算符有按位或(|),按位与(&),按位异或(^),按位右移(>>)按位左移(<<),按位取反(~)
4.2:实例
1)位或运算符 | 位或运算的实质是将参与运算的两个数据,按对应的二进制数逐位进行逻辑或运算。对应的二进制有一个或两个为1则该位的运算结果为1,否则为0。 select 10|15,9|4|2; 返回值=15,15 分析:10的二进制数值为1010,15的二进制数值为1111,按位或运算之后,结果为1111,即整数15;9的二进制位1001,4的二进制为0010,按位或运算之后,结果为1111,即整数15。其结果为一个64位无符号整数 2)位与运算符 & 位与运算的实质是将参与运算的两个操作数,按对应的二进制数逐位进行逻辑与运算。对应的二进制都为1,则该位的运算结果为1,否则为0。 select 10&15,9&4&2; 返回值=10,9 分析:10的二进制位1010,15的二进制位1111,按位与运算结果为1010,即整数10;9的二进制为1001,4的二进制位0100,2的二进制为0010,按位与运算之后,结果为0000,即整数0,。其结果为一个64位无符号整数。 3)位异或运算 ^ 位异或运算的实质是将参与运算的两个数据,按对应的二进制数逐位进行逻辑异或运算。对应的二进制数不同时,对应的结果才为1。如果两个对应位数都为0或者都为1,则对应位的结果为0。 select 10^15,1^0,1^1; 返回值=5,1,0 4)位左移运算符 << 位左移运算符<<使指定的二进制值的所有位都左移指定的位数。左移指定位数之后,左边高位的数值被移出并丢弃,右边低位空出的位置用0补齐。语法格式为:expr< select 1<<2,4<<2; 返回值=4,16 分析:1的二进制位0000 0001,左移两位之后0000 0100,即十进制整数4;十进制4左移两位之后变成0001 0000,即变成十进制的16。 5)位右移运算符 >> 位右移运算符>>使指定的二进制的所有位都右移指定的位数。右移指定位数之后,右边低位的数值将被丢弃移除,左边高位空出的位置用0补齐。语法格式为:expr>>n。这里n指定值expr要移除的位数。 select 1>>1,16>>2; 返回值=0,16 分析:1的二进制位0000 0001右移1位之后变成0000 0000,即十进制整数0,16的二进制数值为0001 0000右移两位之后变成十进制的4. 6)位取反运算 ~ 位取反运算的实质是将参与运算的数据,按对应的二进制数逐位反转,即1取反后变成0,0取反变成1。 select 5&~1; 返回值=4
位运算符介绍,转载
五:运算符优先级
七:MYSQL之常用操作符的更多相关文章
- DBA必备:MySQL数据库常用操作和技巧
DBA必备:MySQL数据库常用操作和技巧 2011-02-25 15:31 kaduo it168 字号:T | T MySQL数据库可以说是DBA们最常见和常用的数据库之一,为了方便大家使用,老M ...
- Mysql中常用的函数汇总
Mysql中常用的函数汇总: 一.数学函数abs(x) 返回x的绝对值bin(x) 返回x的二进制(oct返回八进制,hex返回十六进制)ceiling(x) 返回大于x的最小整数值exp(x) 返回 ...
- 2017.11.6 JavaWeb-----第七章 JavaWeb常用开发模式与案例
JavaWeb-----第七章 JavaWeb常用开发模式与案例 (1)单纯的JSP页面开发模式 通过在JSP中的脚本标记,直接在JSP页面中实现各种功能.称为"单纯的JSP页面编程模式&q ...
- CentOS系统操作mysql的常用命令
MySQL名字的来历MySQL是一个小型关系型数据库管理系统,MySQL被广泛地应用在Internet上的中小型网站中.由于其体积小.速度快.总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了 ...
- Data Base MySQL的常用命令
MySQL的常用命令 一.下载地址: http://www.mysql.com 二.安装注意: root默认密码:123456 三.常用命令: 1.创建用户并授权: 创建用户,只能本地访问:cr ...
- Mysql数据库常用的命令 数据备份 恢复 远程
远程数据库 格式: mysql -h主机地址 -u用户名 -p用户密码数据库 mysql -h 42.51.150.68 -u yang -p discuz mysql设置密码 mysql>us ...
- mysql数据库常用语句
关于mysql数据库常用命令的整理: 一:对于数据库的操作 show databases;显示当前用户下所有的数据库名称 use database_name;进入当前数据库 create databa ...
- MySQL企业常用集群图解
mysql集群架构图片 1.mysql企业常用集群架构 在中小型互联网的企业中.mysql的集群一般就是上图的架构.WEB节点读取数据库的时候读取dbproxy服务器.dbproxy服务器通过对S ...
- mysql中常用的语句整理
mysql中常用的语句: 1:创建带自增长的主键的表 DROP TABLE IF EXISTS user_login ; CREATE TABLE user_login ( user_id INT ...
随机推荐
- 002-tomcat安装与配置
1.创建目录 [root@bogon tomcat]#mkdir /usr/local/java/tomcat 2.上传压缩包并解压 [root@bogon tomcat]# tar xvf apac ...
- 根据select中选定option触发不同事件
做公司项目,要实现一个小需求,根据下拉框选定的数据,绑定不同的事件.我的思路是获取select下面的option值,然后给它们定义不同的点击事件,但是在使用中option不能添加类,同时没有click ...
- Zynq7000开发系列-2(VMware与Ubuntu安装使用)
一.前言 在嵌入式开发中,是无法避免使用Linux系统的,因为在开发之前必须先搭建起交叉编译环境,而后关于Bootloader.Linux Kernel的裁剪移植,File system的制作,底层驱 ...
- Django REST framework 的快速入门教程
CRM-API项目搭建 序列器(Serializers) 首先,我们来定义一些序列器.我们来创建一个新的模块(module)叫做 crm/rest_searializer.py ,这是我们用来描述数据 ...
- Codeforces Round #533(Div. 2) B.Zuhair and Strings
链接:https://codeforces.com/contest/1105/problem/B 题意: 给一个字符串和k,连续k个相同的字符,可使等级x加1, 例:8 2 aaacaabb 则有aa ...
- 537 Complex Number Multiplication 复数乘法
详见:https://leetcode.com/problems/complex-number-multiplication/description/ C++: class Solution { pu ...
- python学习之队列
import queue task_queue = queue.Queue() #创建队列
- 一行JS搞定快速关机
一.在本地新建一个文件js文件 JS代码: (new ActiveXObject("Shell.Application")).ShutdownWindows(); 二.设置快捷键 ...
- Eclipse优化工具Optimizer for Eclipse
第一次看到是Optimizer for Eclipse是在InfoQ 然后使用了一下,发现不错啊,我的好几年的破本都能比较快的启动Eclipse了 好了,废话不说了,来介绍一下Optimizer fo ...
- GetClassName 取得的类名有
今天上午稍微跟踪了一下自己的项目里面的各个空间,得知GetClassName可以取到以下类名:Static\Edit\Button\ComboBox\msctls_trackbar32\SysTabC ...