MySQL操作符
简要介绍MySQL操作符
常用:
算术运算符、比较操作符、逻辑操作符、位运算符……
一、算术运算符
+:加
-:减
*:乘
/:除,返回商
%,mod():除,返回余数
mysql> select %,mod(,);
+------+----------+
| % | mod(,) |
+------+----------+
| | |
+------+----------+
注意:除法运算中,若除数为0(无意义),是非法除数,返回结果为null。
二、比较操作符
---利用比较操作符在DQL语句中实现按条件的检索
示例用表:球员信息表player、比赛信息表matches
、获得联盟会员号码为7060的球员信息
mysql> select * from player where leagueno=’’; 、获得没有联盟会员号码的球员信息
mysql> select * from player where leagueno=null;
error……报错
mysql> select * from player where leagueno <=> null;
或
mysql> select * from player where leagueno is null;
“<=>”安全的等于运算符:和“=”类似,在操作数相等时值为 ,不同之处在于即使
操作的值为 NULL 也可以正确比较。 、找出获胜局数等于2且输掉局数等于3的比赛信息
条件中可以进行列值的成对比较
mysql> select * from matches where (won,lost)=(,);
注意:条件(,)>(,)并不等于(>) and (>),而是等于(2>1) or (2=1 and 4>3)
说明:使用不同运算符的成对比较在转换为标量表达式比较时,都有各自的转换规则。 、between的范围比较:使用BETWEEN …AND… 操作符可以测试列值是否在一个取值范围之内
例:找出1962—1964年之间出生的球员的编号、出生日期
mysql> select playerno,birth_date from players where birth_date between '1962-01-01' and '1964-01-01'; 、in操作符:测试一个列值是否在一个值列表中(值列表中可以是字面量、列或标量子查询)
例1:得到那些出生在1962、1963或1970的球员的编号、出生年份
mysql> select playerno,year(birth_date) from players where year(birth_date) in (,,);
例2:两局获胜或者两局输掉的所有比赛
mysql> select * from matches where in (won,lost);
例3:比分为3比1和3比2的所有比赛(in的成对比较)
mysql> select * from matches where (won,lost) in ((,),(,));
说明:在MySQL内部,in转换成or操作,not in转换成and操作 、 like操作符:实现模式匹配查询或者模糊查询
like “匹配模式字符串”测试一个列值是否匹配给出的模式
特殊含义的通配字符:
%:表示0个或者任意多个字符
_:只表示一个任意字符
例1:找出名字以大写字母B开头的球员
mysql> select * from players where name like ‘B%’;
例2:得到名字以小写字母r结尾的球员
mysql> select * from players where name like ‘%r’;
例3:得到名字的第二个字母为e的球员的名字和编号
mysql> select name,playerno from players where name like ‘_e%’;
例4:找出名字中包含一个下划线的球员
mysql> select playerno,name from players where name like ‘%/_%’ escape ‘/’;
注意:如果转义字符指定反斜杠\,必须是escape ‘\\’(反斜杠\在进行模式匹配时,会被剥离一次)
例如:
mysql> select * from table_name where col_name like ‘%\\\%’ escape ‘\\’;
##反斜杠会被语法分析程序剥离一次,在进行模式匹配时,又会被剥离一次,最后会剩下一个反斜杠接受匹配.
7、regexp操作符(regular expression)
--比like功能更加强大---正则
例1:得到名字以ba开头的球员信息
mysql> select * from players where name regexp '^ba';
例2:得到名字包含了字母a、b或c的球员信息
mysql> select * from players where name regexp '[abc]';
例3:对于名字中有字母m、e、n中的一个,并且连续出现2次的球员信息
mysql> select * from players where name regexp '[men][men]';
三、逻辑操作符
---逻辑运算符又称为布尔运算符,用来确认表达式的真和假
如果在where中同时用到了and 和or运算符,先算and后算or,因为and优先级高;
可以使用小圆括号来改变运算的顺序。
例1: 得到那些住在Stratford或者出生于1963年的球员的编号、姓名、出生日期,但是不包括那些住在Stratford并且出生于1963年的球员
mysql> select playerno,name,birth_date from players where (town='Stratford' or year(birth_date)='') and not (town='Stratford' or year(birth_date)=''); 例2:得到那些住在Stratford或者出生于1963年的球员的编号、姓名、出生日期,但是不包括那些住在Stratford并且出生于1963年的球员
mysql> select playerno,name,birth_date from players where (town='Stratford') xor (year(birth_date)='');
四、位运算符
---位运算是将给定的操作数转化为二进制后, 对各个操作数每一位都进行指定的逻辑运算,得到的二进制结果转换为十进制数后就是位运算的结果
mysql> SELECT & ;
+---------+
| & |
+---------+
| |
+---------+
row in set (0.01 sec) mysql> SELECT << ;
+--------+
| << |
+--------+
| |
+--------+
row in set (0.00 sec)
位运算符其实也就是位函数,通过mysql> ? Bit Functions了解使用,用得不多,但是要有个印象,要用的时候查看帮助
MySQL操作符的更多相关文章
- mysql 操作符
1 mysql 操作符 下图表示所有操作符的执行优先级,从高到低,同一行中的操作符优先级相同,相同优先级的情况则从左到右执行 如果想改变优先级执行顺序则可以使用括号() 1.1 对比操作符 对比操作符 ...
- MySQL操作符与相关函数
union(联合)union使用是关联两张表或者两个查询所查出来的数据,联合成一张表但不会出现重复数据,显示的字段必须匹配列数. select s3.id cid,s1.cityName provin ...
- MySQL(六)之MySQL常用操作符
前言 在前面的MySQL学习中,我们学习了MySQL的安装,管理以及配置,还有是它的DDL.今天给大家分享一下,MySQL的操作符和它的函数这部分. 千里之行始于足下,做什么事情都要脚踏实地的去做才能 ...
- MySQL开发指南
数据库开发是数据库管理系统(DBMS)和数据库应用软件设计研发的总称,数据运维.参与数据库生产环境的问题优化和解决等方面的事宜. 1.关于MySQL数据库 2.搭建MySQL环境 3.入门常用SQL. ...
- MySQL常用函数介绍
MySQL常用函数介绍 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.操作符介绍 1>.操作符优先级 mysql; +----------+ | +----------+ ...
- 如何理解 MySQL 中的 <=> 操作符?
问题 : 我在看以前的一个开发者的代码时看到 WHERE p.name <=> NULL 在这个查询语句中 <=>符号是什么意思啊?是不是和 =号是一样啊?还是一个语法错误啊? ...
- MySQL 列子查询及 IN、ANY、SOME 和 ALL 操作符的使用(转)
MySQL 列子查询 列子查询是指子查询返回的结果集是 N 行一列,该结果通常来自对表的某个字段查询返回. 一个列子查询的例子如下: SELECT * FROM article WHERE uid I ...
- MySQL 列子查询及 IN、ANY、SOME 和 ALL 操作符的使用
列子查询是指子查询返回的结果集是 N 行一列,该结果通常来自对表的某个字段查询返回. 一个列子查询的例子如下: SELECT * FROM article WHERE uid IN(SELECT ui ...
- MySql 中的<=>操作符
今天在学习数据库的索引优化时,关于memory存储引擎的的hash索引时,看到了操作符<=> ,这个操作符还是第一次见到,于是上网查了一下.我想大家应该知道 = != <> ...
随机推荐
- Java日志工具之Log4J
Log4J与java.util.logging.Logger的使用方式出奇的相似,因此如果先看这篇文章<Java日志工具之java.util.logging.Logger>在来用Log4J ...
- Struts2框架(5)---result结果集
result结果集 上一篇文章主要讲Struts2框架(4)---Action类访问servlet这篇主要讲result结果集 在Struts.xml中的result元素指的是:指定动作类的动作方法执 ...
- 前端资讯周报 3.6 - 3.12: 对学习Javascript最有帮助的三本书,以及HTML标题的迷思
每周一我都会分享上一周我订阅的技术站点中,和解决问题的过程中阅读到的值得分享的文章. 毕竟个人的阅读量有限,也欢迎大家留言或者私信给我你们阅读到的,对你们前端技术有帮助的任何内容,题材不限,语言不限. ...
- 深入理解java虚拟机之——JVM垃圾回收策略总结
如何判断一个对象是否存活 引用计数算法:给对象中添加一个引用计数器,每当有引用它时,计数器值就加1:当引用失效时,计数器值就减1:任何时刻计数器为0的对象就是不可能再被使用. Java虚拟机里面没有 ...
- css 超出隐藏显示...
<!DOCTYPE html><html> <head> <meta charset="UTF-8"> <title>& ...
- c/c++重定向输入输出
#define Local #include <iostream> #include <cstdio> //#include <stdio.h> using nam ...
- 基于cxf开发restful风格的Web Service
一.写在前面 webservice一些简单的其他用法和概念,就不在这里赘述了,相信大家都可以在网上查到,我也是一个新手,写这篇文章的目的一方面是想记录自己成长的历程,另一方面是因为学习这个的时候花了点 ...
- applicationContext.xml的配置
想必用过Spring的程序员们都有这样的感觉,Spring把逻辑层封装的太完美了(个人感觉View层封装的不是很好).以至于有的初学者都不知道Spring配置文件的意思,就拿来用了.所以今天我给大家详 ...
- bootstrap常见类的总结
相信大家和我一样,曾经找过bootstrap的类名定义. 无奈没有找到现成的,那我就来总结一下常见类名吧. 基础样式:btn,alert,form,table,input,select.textare ...
- 小命令tac、cat、rev的用法
cat:输出文件的内容(正序,由上至下) tac:输出文件的内容(倒序,由下至上) rev: 反转每行的文字内容,行号不变 示例:建立一个文件夹 1.演示cat效果 按原始样式正常显示 2.演示tac ...