MySQL笔记 —SQL运算符
1.算术运算符
+ | - | * | /或div | %或mod |
/或div
select 100/5,100 div 5 from dual;
结果:
100/5 | 100 div 5 |
20.0000 | 20 |
注意:/结果是浮点型有结果20.0000,但是div结果是20
取模运算%
或mod
select 10 % 2,10 % 3,12 mod -4 from dual;
结果:
10 % 2 | 10 % 3 | 12 mod -4 |
0 | 1 | 0 |
2.比较运算符
< | > | = | <=> | <>或!= | <= | >= |
小于 | 大于 | 等于 | 安全等于 | 不等于 | 小于等于 | 大于等于 |
<=>
第一次学到比较特殊
select null <=> null,null = null,null != null from dual;
结果:
null<=>null | null=null | null!=null |
1 | null | null |
因此可以得出<=>就是为null而生,其余只要运算中有null
结果为null
。
具体关键字
is null
等于<=>null
运算及结果一样
isnull
与is null
也一样,但用法有点不一样
select salary from empty where salary is null; select salary from empty where isnull(salary); select salary from empty where salary <=> null;
大家在运用过程中最好最好用is null
跟is not null
;
least()
跟min()
,createst()
跟max()
一样,还是建议用min
与max
between
条件1 and 条件2 (查询条件1到条件2范围数据,包含边界。条件1是下限,条件2是上限)
select * from emp where salary between 3000 and 5000;
在emp表查询工资在3000到5000的员工信息
in
与not in
在course
表查询选修了(name)数据库,线性代数,概率论的同学信息
select * from course where name in('数据库','线性代数','概率论'); #where name='数据库' or name='线性代数' or name='概率论';
很明显in对多个数据选择更加方便了,如果查不在里面的用not in()
即可
like模糊查询
在stu
表查询了(name
)性刘的同学信息
select * from stu where name like'刘%';
在stu表查询了(name)名字包含为刘的同学信息
select * from stu where name like'%刘%';
stu表查询了(name)名字包含刘也包含壮的同学信息
select * from stu where name like'%刘%' and name like'%壮%';
在stu表查询了(name)名字第二个字为刘的同学信息
select * from stu where name like'_刘%';
u表查询了(name)名字第二个为_且第三个字为刘的同学信息(需要使用转移字符\)
select * from stu where name like'_\_刘%';
不使用转移字符需要表中用escape
(&不是必须的可以用任意字符)
select * from stu where name like'_&_刘%' escape '&';
正则表达式:(了解)
regexp
运算符用来匹配字符串,语法格式为:expr regexp
匹配条件。如果expr满足匹配条件,返回1;如果不满足,则返回0。若expr或匹配条件任意一个为null,则结果为null。
regexp运算符在进行匹配时,常用的有下面几种通配符:
- (1)‘^’匹配以该字符后面的字符开头的字符串。
- (2)‘$’匹配以该字符前面的字符结尾的字符串。
- (3)‘.’匹配任何一个单字符。
- (4)“[...]”匹配在方括号内的任何字符。例如,“[abc]”匹配“a”或“b”或“c”。为了命名字符的范围,使用一个‘-’。“[a-z]”匹配任何字母,而“[0-9]”匹配任何数字。(3.4自我理解跟like差不多)
- (5)‘*’匹配零个或多个在它前面的字符。例如,“x*”匹配任何数量的‘x’字符,“[0-9]*”匹配任何数量的数字,而“*”匹配任何数量的任何字符。
3.逻辑运算符
not或! | and或&& | or或|| | xor |
逻辑非 | 逻辑与 | 逻辑或 | 逻辑异或 |
注意:
or可以和and一起使用,但是在使用时要注意两者的优先级,由于and的优先级高于or,因此先对and两边的操作数进行操作,再与or中的操作数结合。
主要xor有点陌生,有且只能取一方。
4.位运算符
& | | | ^ | ~ | >> | << |
换位与(位and) | 换位或(位or) | 换位异或(位xor) | 按位取反 | 按位右移 | 按位左移 |
了解即可。
到此这篇关于mysql笔记 —sql运算符的文章就介绍到这了,更多相关 sql运算符内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!
推荐阅读
-
MySQL高级学习笔记(三):Mysql逻辑架构介绍、mysql存储引擎详解
-
mysql自联去重的一些笔记记录
-
MySQL利用profile分析慢sql详解(group left join效率高于子查询)
-
【SQL】Oracle和Mysql的分页、重复数据查询(limit、rownum、rowid)
-
MySQL查询本周、上周、本月、上个月份数据的sql代码介绍
-
MySQL5.7: sql script demo
-
【MySQL解惑笔记】Mysql5.7.x无法开启二进制日志
-
mysql 显示SQL语句执行时间的代码
-
SQL语句实例说明 方便学习mysql的朋友
-
基于更新SQL语句理解MySQL锁定详解