mysqlデータベースの演算子

5709 ワード

演算子はmysqlが特定の算術または論理操作を実行する記号であり、mysqlの演算子は主に算術演算子、比較演算子、論理演算子、ビット操作演算子である.
1、算術演算子
演算子
さぎょう
+
かさんえんざん
-
減算
*
じょうほうえんざん
/
除算演算
%
余剰演算を求める
#  student   name ”test_name” sid      
mysql> select sid,sid*2,sid/3,sid+100,sid-200,sid%3 from student where sname="test_name";
+-----+-------+---------+---------+---------+-------+
| sid | sid*2 | sid/3   | sid+100 | sid-200 | sid%3 |
+-----+-------+---------+---------+---------+-------+
| 100 |   200 | 33.3333 |     200 |    -100 |     1 |
+-----+-------+---------+---------+---------+-------+

2、比較演算子
コントラストオペレータは、文字列および数値のサイズまたは値が等しいかどうかを比較するために使用され、コントラストオペレータの実行結果はtrue(1)、false(0)、nullの3種類です.
コントラストオペレータ
さぎょう
例を挙げる

Between A and B
値がAとBの間にあるかどうか
select 4 between 0 and 5;
1
Not between A and B
値がAとBの範囲内でないかチェックする
select 4  not between 0 and 5
0
Coalesce()
最初のNull以外の値を返します.
select coalesce(null,32);
32
=
[同等](Equal)オペレータ
select 'a'='a';
1
>
より大きいオペレータ
select 2>2;
0
>=
以上の演算子
select 2>=2;
1
<
より小さいオペレータ
select 100<2;
o
<=
イコール以下のオペレータ
select 2<=2;
2
!=/<>
等しくないオペレータ
select 3<>3;
0
Greatest()
最大値を返す
select greatest(12,02,3);
12
In()
値が一連の値の中にあるかどうかを確認します.
select 'dy' in('dy','root');
1
Interval()
最初のパラメータより小さいパラメータの位置を返します.
select interval(0,32);
0
is/is not
ブール値と同じ値または異なる値があるかどうかを確認します.
 
 
Is not null
値がNULLでないかどうかを確認
select 'dy' is not null;
1
Is null
値がNULLかどうかを確認
select 'dy' is null;
0
Isnull()
チェックパラメータはNULL
SELECT ISNULL(1+1);
 
Least()
最小パラメータを返します
select least('a','b','c');
a
Not in()
値が一連の値の中にないかどうかをチェックします.
select 3 not in(1,2,3);
0
Like
文字の一致
 
0
Not like
値が一致しないかどうかを確認
 
 
Strcmp()
2つの文字列を比較
select strcmp('g','c');
1
#   student  sname dayi     
mysql> select sid,sname from student where sname like "dayi%";
+-----+---------+
| sid | sname   |
+-----+---------+
|   4 | dayi    |
|   5 | dayi123 |
+-----+---------+
#   student     ”yi”     
mysql> select sid,sname from student where sname not like "%yi%";  
+-----+-----------+
| sid | sname     |
+-----+-----------+
|   3 | haha      |
|  10 | dy        |

3、論理オペレータ
コントラストオペレータと同様に、論理演算子の結果もtrue(1)、false(0)、nullの3つに分けられ、主な論理演算子は以下の通りです.
演算子
さぎょう
NOTか!
ろんりひ
ANDまたは&&
ロジックと
ORまたは
論理または
XOR
論理およびまたは
#       ,         ,      ,not ”!”     
mysql> select not 10,not (1-1),not -10,not null,not 1+1,! 1+1;  
+--------+-----------+---------+----------+---------+-------+
| not 10 | not (1-1) | not -10 | not null | not 1+1 | ! 1+1 |
+--------+-----------+---------+----------+---------+-------+
|      0 |         1   |       0  |     NULL |       0  |     1 |
+--------+-----------+---------+----------+---------+-------+
# and   
mysql> select 1 and 0,1 && 0,1 and null,1 && null,0 && null;   
+---------+--------+------------+-----------+-----------+
| 1 and 0 | 1 && 0 | 1 and null | 1 && null | 0 && null |
+---------+--------+------------+-----------+-----------+
|       0  |      0  |       NULL |      NULL  |         0 |
+---------+--------+------------+-----------+-----------+
# or   
mysql> select 1 or 0,1 || 0,1 or null,1 || null,0 or null,0 || null;
+--------+--------+-----------+-----------+-----------+-----------+
| 1 or 0 | 1 || 0 | 1 or null | 1 || null | 0 or null | 0 || null |
+--------+--------+-----------+-----------+-----------+-----------+
|      1 |      1  |         1  |         1   |      NULL |      NULL  |
+--------+--------+-----------+-----------+-----------+-----------+

論理排他演算子XORは、いずれかのオペレータがNULLの場合、NULLを返します.NULL以外のオペランドの場合、両方のオペランドが0以外の値、または0の値の場合、結果は0に戻ります.1つが0値で、もう1つが0値でない場合、結果は1に戻ります.
# xor   
mysql> select 1 XOR 1, 1 XOR 0,1 XOR NULL,1 XOR 1 XOR 1;
+---------+---------+------------+---------------+
| 1 XOR 1 | 1 XOR 0 | 1 XOR NULL | 1 XOR 1 XOR 1 |
+---------+---------+------------+---------------+
|       0 |       1   |       NULL |             1   |
+---------+---------+------------+---------------+

4、演算子の優先度
優先度
演算子
最小
=,:=
 
||,OR
XOR
&&,AND
NOT
BETWEEN,CASE,WHEN,THEN,ELSE
=,<=>,>=,><=,,!=,IS,LIKE,REGEXP,IN
|
&
<>
-,+
*,/(DIV),%(MOD)
^
-(マイナス)、~(ビット反転)
最高
!
計算では、レベルの高い演算子が先に計算され、レベルが同じでmysqlは式の順序で左から右に順番に計算されます.また、「()」で優先度を変更することもできます.
5、割付オペレータ
オペレータ
さぎょう
=
setおよびupdate文では付与操作として、比較オペレータとしても使用できます.
:=
付与操作、左の変数を右の値に設定し、updateなどの文でも使用できます.
# “:=”      
mysql> select @var1:=1,@var2; 
+----------+-------+
| @var1:=1 | @var2 |
+----------+-------+
|        1 | NULL  |
+----------+-------+
mysql> select @var1,@var2:=@var1;
+-------+--------------+
| @var1 | @var2:=@var1 |
+-------+--------------+
|     1 |            1 |
+-------+--------------+
# “:=”  update  
mysql> update course.student set sname='haha' where sid=@var1:=3;