SQL——SQL语句总结(4)

数据操纵语言

MySQL的运算符

1.算术运算符

用于各类数值运算。包括加(+)、减(-)、乘(*)、除(/)、求余(或称模运算,%)。

实例:

  加:select 1+5;

  减:select 2-5 ;

  乘:select 2*3;

  除:select 5/8;   -- 做除法 结果为小数

  商:select 8 div 5;  -- 做除法 结果为整数

2.比较运算符

用来查询满足指定条件的记录。

运算符 作用 实例 结果
= 等于 select 1=0, 1=1, null=null; 0 | 1 | null
< = > 安全的等于 select 1< = >1, 2< = >0, null< = >null; 1 | 0 | 1
! =  (< >) 不等于 select 1 != 0, 1 != 1, null != null; 1 | 0 | null
<= 小于等于

select ‘nyfq‘ <= ‘q‘, ‘nyfq‘ <= ‘nyfq‘,0<1; 

1 | 1 | 1

< 小于 select ‘f‘ < ‘v‘, ‘sdw‘<‘derf‘, 2<7; 1 | 0 | 1
>= 大于等于 select ‘er‘ >=‘e‘, ‘swax‘>=‘erf‘, 8>=84; 1 | 1 | 0
> 大于 select ‘nyfq‘>‘def‘, ‘wrw‘>‘dw‘, 45>25; 1 | 1 | 1
is null 判断一个值是否为null select ‘‘ is null, null is null; 0 | 1 
isunll 与 is null 作用相同 select 0 isnull, null isnull; 0 | null 
is not null 判断一个值是否不为null select null is not null, 5 is not null; 0 | 1 
least

在有两个或多个参数时,返回最小值

select least(25,48), least(59,45,12); 25 | 12 
greatest

当有两个或多个参数时,返回最大值

select greatest(54,59),greatest(48.3,48.2,67); 59 | 67 
between and 判断一个值是否落在两个值之间 select 2 between 15 and 1, 58 between 20 and 50; 0 | 0 
in

判断一个值是 in 列表中的任意一个值

select 3 in(4,2,9), 4 in (1,4,9); 0 | 1 
not in

判断一个值不是 in 列表中的任意一个值

select 3 not in (1,3,5), 4 not in (1,8,3); 0 | 1 
like 通配符匹配/模糊匹配运算符 select ‘asd‘ like ‘%ds‘, ‘123‘ like ‘%23%‘; 0 | 1 
regexp 正则表达式 select ‘JFBSYG‘ regexp ‘JF‘ ,‘ncudg‘ regexp ‘e‘; 1 | 0

 

3.逻辑运算符

运算符

作用

实例 结果
not或者! 逻辑非

select not false, not 1, not null; 

select ! false, ! 1, ! null; 

1 | 0 | null

and或者&&

逻辑与

select (true and 1), (0 and 1), (3 and 5), (1 and null);

select (true && 1), (0 && 1), (3 && 5), (1 && null);

1| 0 | 1| null 

or或者||

逻辑或

select (1 or 0), (0 or 0), (1 or null), (null or null);

select (1 || 0), (0 || 0), (1 || null), (null || null);

1| 0 | 1| null 
xor或者^

逻辑异或

select (1 xor 1), (0 xor 0), (1 xor 0),(null xor 1);

select (1 ^ 1), (0 ^ 0), (1 ^ 0),(null ^ 1);

0| 0 | 1| null 

 

4.位操作运算符

参与运算的操作数按二进制位进行运算。

运算符 作用 实例 结果
& 位与 select 2 & 3 & 4; 0
| 为或 select 2 | 3; 3
^ 位异或 select 2 ^ 3; 1
<< 位左移 select 100 << 3; 800
>> 位右移 select 100 >> 5; 3
~ 位取反,反转所有比特 select ~3 , ~ 746598365389; 18446744073709551612 | 18446743327111186226

5.运算符中的优先级

优先级 运算符
最低 =(赋值运算), :=
|| , or
xor
&& , and
not
between , case , when , then , else
=(比较运算符), <=>, >=,  >, <=, <, <>, !=, is, like, regexp,in
<<(位左移), >>(位右移) 
-, + 
*, /(div), %(mod) 
^(位异或) 
-(负号), ~(位反转) 
最高 ! 

 

  可以看到,不同运算符的优先级是不同的,一般情况下,级别高的运算符先进行计算,如果级别相同,MySQL按表达式顺序从左往右依次计算。当然,在无法确定优先级的情况下,可以使用圆括号“()”来改变优先级,并且这样会使计算过程更加清晰。

MySQL中的转义字符

在字符串中某些序列具有特殊含义,这些序列均用(" \ ")开始。

\0 ASCII (NULL)字符
\‘ 单引号(‘ ‘ ’)
\" 双引号(‘ " ’)
\b 退格符
\n 换行符
\r 回车符
\t Tab字符
\ 反斜线(‘ \ ‘)字符
\% ‘%‘字符
\ _ ‘_‘字符

  这些序列对大小写敏感。例如,‘ \ b ’解释为退格,但是‘ \ B ’解释为‘B’。

 

SQL——SQL语句总结(4)

上一篇:Oracle 说明性弹性域定义查询


下一篇:SAPHANA学习(14):SQL Function(N)