MYSQL 運算符總結
1、算數(shù)運算符
MySQL支持的算術運算符:
運算符
|
作用
|
+
|
加法
|
-
|
減法
|
*
|
乘法
|
/,DIV
|
除法,返回商
|
%,MOD
|
除法,返回余數(shù)
|
例1: +,-,*,/,%,
mysql> select 0.1+0.333,0.1-0.333,0.1*0.333,1/2,1%2; +-----------+-----------+-----------+--------+------+ | 0.1+0.333 | 0.1-0.333 | 0.1*0.333 | 1/2 | 1%2 | +-----------+-----------+-----------+--------+------+ | 0.433 | -0.233 | 0.0333 | 0.5000 | 1 | +-----------+-----------+-----------+--------+------+ 1 row in set (0.05 sec)
例2:除法運算中,如果除數(shù)為0
將是返回NULL
mysql> select 1/0; +------+ | 1/0 | +------+ | NULL | +------+ 1 row in set (0.00 sec)
例3:模運算的另外一種形式MOD
(a,b) 和a%b
相同
mysql> select 1%2,mod(1,2); +------+----------+ | 1%2 | mod(1,2) | +------+----------+ | 1 | 1 | +------+----------+ 1 row in set (0.00 sec)
2、比較運算符
MySQL支持的比較運算符:
運算符
|
作用
|
=
|
等于 |
<>或!=
|
不等于
|
<=>
|
NULL 安全的等于(NULL-safe)
|
<
|
小于
|
<=
|
小于等于
|
>
|
大于
|
>=
|
大于等于
|
BETWEEN
|
存在與指定范圍
|
IN
|
存在于指定集合
|
IS NULL
|
為 NULL
|
IS NOT NULL
|
不為 NULL
|
LIKE
|
通配符匹配
|
REGEXP 或 RLIKE
|
正則表達式匹配
|
例1:“<>
” 和 “=
” 相反,如果兩則操作不等 返回結果為1,否則返回結果0,“NULL
”不能用于“<>
”比較
mysql> select 1<>0,1<>1,null<>null; +------+------+------------+ | 1<>0 | 1<>1 | null<>null | +------+------+------------+ | 1 | 0 | NULL | +------+------+------------+ 1 row in set (0.00 sec)
例2: “<=>
”安全等于運算符和“=
”操作相同返回1,區(qū)別在于“<=>
”在值為null
的時候也可以做比較
mysql> select 1<=>1,1<=>0,null<=>null; +-------+-------+-------------+ | 1<=>1 | 1<=>0 | null<=>null | +-------+-------+-------------+ | 1 | 0 | 1 | +-------+-------+-------------+ 1 row in set (0.02 sec)
例3: “<
”當左側小于右側時,返回1
mysql> select 'a'<'b','A'<'b','bdf'<'c',1<2; +---------+---------+-----------+-----+ | 'a'<'b' | 'A'<'b' | 'bdf'<'c' | 1<2 | +---------+---------+-----------+-----+ | 1 | 1 | 1 | 1 | +---------+---------+-----------+-----+ 1 row in set (0.02 sec)
例4:between
,格式為“a BETWEEN min AND max
”,表示a大于等于min
并且小于等于max
的時候,返回1,否則返回0
mysql> select 10 between 10 and 20,9 between 10 and 20; +----------------------+---------------------+ | 10 between 10 and 20 | 9 between 10 and 20 | +----------------------+---------------------+ | 1 | 0 | +----------------------+---------------------+ 1 row in set (0.01 sec)
例5:regexp
,格式為“str REGEXP str_pat
”,表示str字符串中含有str_pat
相匹配的字符串時,則返回1,否則返回0
mysql> select 'abcdeef' regexp 'ab','abcdef' regexp 'g','abcedf' regexp 'df'; +-----------------------+---------------------+----------------------+ | 'abcdeef' regexp 'ab' | 'abcdef' regexp 'g' | 'abcedf' regexp 'df' | +-----------------------+---------------------+----------------------+ | 1 | 0 | 1 | +-----------------------+---------------------+----------------------+ 1 row in set (0.01 sec)
其他的使用簡單,直接上語法,示例就不寫了
in
,使用格式為“a IN (value1,value2,…)
”IS NULL
,使用格式為“a IS NULL
”IS NOT NULL
,使用格式為“a IS NOT NULL
”LIKE
,使用格式為“a LIKE %123%
”
3、邏輯運算符
MySQL中的邏輯運算符:
運算符
|
作用
|
NOT 或!
|
邏輯非
|
AND 或&&
|
邏輯與
|
OR 或 ||
|
邏輯或
|
XOR
|
邏輯異或
|
例1: ““NOT
”或“!
”表示邏輯非。返回和操作數(shù)相反的結果。當操作為0,則返回1;當操作為1,則返回0,但是NOT NLLL
返回null
mysql> select not 0,!0,not 1,not null; +-------+----+-------+----------+ | not 0 | !0 | not 1 | not null | +-------+----+-------+----------+ | 1 | 1 | 0 | NULL | +-------+----+-------+----------+ 1 row in set (0.00 sec)
例2: “AND
”和“&&
”表示邏輯與運算,當操作數(shù)均為非零值,返回結果1,否則返回0,當操作數(shù)中有任意一個為NULL,其中一個值如果為0,返回0;其他值都是>0的數(shù)值,另外有NULL
,則返回NULL
mysql> select (1 and 1),(0 and 1),(3 and 1),(0 and null),(1 and null); +-----------+-----------+-----------+--------------+--------------+ | (1 and 1) | (0 and 1) | (3 and 1) | (0 and null) | (1 and null) | +-----------+-----------+-----------+--------------+--------------+ | 1 | 0 | 1 | 0 | NULL | +-----------+-----------+-----------+--------------+--------------+ 1 row in set (0.00 sec) mysql> select 1 and NULL and 0; +------------------+ | 1 and NULL and 0 | +------------------+ | 0 | +------------------+ 1 row in set (0.00 sec) mysql> select 1 and NULL and 3; +------------------+ | 1 and NULL and 3 | +------------------+ | NULL | +------------------+ 1 row in set (0.00 sec)
例3: “OR
”或“||
”表示邏輯或運算。當操作數(shù)均不為NULL時,任意一方非零,則結果為1,否則為0;當有一個操作數(shù)為NULL,如果另一個操作數(shù)非零,則結果為1,否則結果為NULL
mysql> select (1 or 0),(0 or 0),(1 or NULL),(0 or NULL),(NULL or NULL); +----------+----------+-------------+-------------+----------------+ | (1 or 0) | (0 or 0) | (1 or NULL) | (0 or NULL) | (NULL or NULL) | +----------+----------+-------------+-------------+----------------+ | 1 | 0 | 1 | NULL | NULL | +----------+----------+-------------+-------------+----------------+ 1 row in set (0.00 sec)
例4:XOR
表示邏輯異或。當任意一個操作數(shù)為 NULL 時,返回值為 NULL。對于非 NULL 的操作數(shù),如果兩個的邏輯真假值相異,則返回結果 1;否則返回 0。
mysql> select (0 xor 0),(1 xor 0),(1 xor 1),(1 xor null),(0 xor null),(null xor null); +-----------+-----------+-----------+--------------+--------------+-----------------+ | (0 xor 0) | (1 xor 0) | (1 xor 1) | (1 xor null) | (0 xor null) | (null xor null) | +-----------+-----------+-----------+--------------+--------------+-----------------+ | 0 | 1 | 0 | NULL | NULL | NULL | +-----------+-----------+-----------+--------------+--------------+-----------------+ 1 row in set (0.00 sec)
4、位運算符
MySQL支持的位運算符:
運算符
|
作用 |
&
|
位與(位 AND)
|
|
|
位或 (位 OR )
|
^
|
位異或(位 XOR)
|
~
|
位取反
|
>>
|
位右移
|
<<
|
位左移
|
例1: “位與”對多個操作數(shù)的二進制位作邏輯與操作。2&3,2的二進制數(shù)為10,3的二進制數(shù)為11,將此做與操作,結果還是10,轉換為十進制結果就是2
mysql> select 2&3; +-----+ | 2&3 | +-----+ | 2 | +-----+ 1 row in set (0.01 sec)
例2: “位或”對多個操作數(shù)的二進制位作邏輯或操作。2&3,2的二進制數(shù)為10,3的二進制數(shù)為11,將此做與操作,結果就變成11,轉換為十進制結果就是3
mysql> select 2|3; +-----+ | 2|3 | +-----+ | 3 | +-----+ 1 row in set (0.00 sec)
例3: “位異或
”對多個操作數(shù)的二進制位作異或操作。2^3 ,2的二進制數(shù)為10,3的二進制數(shù)為11,10^11結果就是01,轉換為十進制結果就是1
mysql> select 2^3; +-----+ | 2^3 | +-----+ | 1 | +-----+ 1 row in set (0.01 sec)
例4: “位取反”對操作數(shù)的二進制位做NOT操作,這里的操作數(shù)只能是一位,解釋:在mysql中常亮數(shù)字默認會以8字節(jié)表示,8個字節(jié)就是64位,而常量1的二進制 就是前面63個0,1個1,位去反后就是63個1,1個0,轉換為二進制后就是 18446744073709551614,
mysql> select ~1,~18446744073709551614 -> ; +----------------------+-----------------------+ | ~1 | ~18446744073709551614 | +----------------------+-----------------------+ | 18446744073709551614 | 1 | +----------------------+-----------------------+ 1 row in set (0.01 sec) mysql> select bin(18446744073709551614); +------------------------------------------------------------------+ | bin(18446744073709551614) | +------------------------------------------------------------------+ | 1111111111111111111111111111111111111111111111111111111111111110 | +------------------------------------------------------------------+ 1 row in set (0.03 sec)
例5: “位右移”對左操作數(shù)向右移動操作數(shù)指定的位數(shù)。例如100>>3,對100的二進制數(shù)0001100100右移動3位,0000001100,轉換為二進制數(shù)就是12:
mysql> select 100>>3; +--------+ | 100>>3 | +--------+ | 12 | +--------+ 1 row in set (0.00 sec)
例6: “位左移”對左操作數(shù)向左移動操作數(shù)指定的位數(shù)。例如100<<3,對100的二進制數(shù)0001100100000右移動3位,1100100000000,轉換為二進制數(shù)就是800:
mysql> select 100<<3; +--------+ | 100<<3 | +--------+ | 800 | +--------+ 1 row in set (0.00 sec)
5、運算符的優(yōu)先級
MySQL中的運算符優(yōu)先級:
優(yōu)先級順序
|
運算符
|
1 |
:=
|
2 |
||, OR, XOR
|
3 |
&&, AND
|
4 |
NOT
|
5 |
BETWEEN, CASE, WHEN, THEN, ELSE
|
6 |
=, <=>, >=, >, <=, <, <>, !=, IS, LIKE, REGEXP, IN
|
7 |
|
|
8 |
&
|
9 |
<<, >>
|
10 |
-, +
|
11 |
*, /, DIV, %, MOD
|
12 |
^
|
13 |
- (一元減號), ~ (一元比特反轉)
|
14 |
!
|
到此這篇關于MYSQL 運算符總結的文章就介紹到這了,更多相關MYSQL 運算符內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
使用percona-toolkit操作MySQL的實用命令小結
這篇文章主要介紹了使用percona-toolkit操作MySQL的實用命令小結,percona-toolkit是一款強大的MySQL輔助工具軟件,需要的朋友可以參考下2015-11-11使用phpMyAdmin批量修改Mysql數(shù)據(jù)表前綴的方法
這篇文章主要介紹了使用phpMyAdmin批量修改Mysql數(shù)據(jù)表前綴的方法,需要的朋友可以參考下2015-09-09mysql 8.0.12安裝配置方法圖文教程(Windows版)
這篇文章主要為大家詳細介紹了Windows下mysql 8.0.12安裝配置方法圖文教程,具有一定的參考價值,感興趣的小伙伴們可以參考一下2018-08-08