好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

Mysql学习笔记(三)运算符和控制流函数

1.操作符

2.控制流程函数

 

操作符:

i.圆括号。。

简单的介绍一下圆括号,圆括号的使用的目的是规定计算表达式的顺序。。。这个想必大家都熟悉例如  mysql>select 1+(2*3) mysql>select (1+2)*3

ii.比较运算符。

比较运算符就比较多了,并且也很常用..比如

 

 =  
 
等于:

mysql  >   SELECT   1   =   0  ;
          ->   0  
mysql  >   SELECT   ‘  0  ‘   =   0  ;
          ->   1 

 <>  ,  !=  
    不等于:

    mysql  >   SELECT   ‘  .01  ‘   <>   ‘  0.01  ‘  ;
              ->   1  
    mysql  >   SELECT  . 01   <>   ‘  0.01  ‘  ;
              ->   0 
 <=  
    小于或等于:

    mysql  >   SELECT   0.1   <=   2  ;
              ->   1 

 <  
    小于:

    mysql  >   SELECT   2   <   2  ;
              ->   0 

 >=  
    大于或等于:

    mysql  >   SELECT   2   >=   2  ;
              ->   1 

 >  
    大于:

    mysql  >   SELECT   2   >   2  ;
              ->   0 

 <=> 
     NULL   值安全等于:

    mysql  >   SELECT   1   <=>   1 ,  NULL   <=>   NULL ,  1   <=>   NULL  ;
              ->   1   1   0 

 IS   NULL 
 IS   NOT   NULL  
    测试一个值是或不是   NULL  :

    mysql  >   SELECT   1   IS   NULL ,  0   IS   NULL ,  NULL   IS   NULL  ;
              ->   0   0   1  
    mysql  >   SELECT   1   IS   NOT   NULL ,  0   IS   NOT   NULL ,  NULL   IS   NOT   NULL  ;
              ->   1   1   0  

expr   BETWEEN   min   AND   max  

    如果 expr 大于或等于   min  ,并且 expr 小于或等于  max , BETWEEN  返回  1 ,否则返回  0 。它等价于表达式 ( min   <=  expr  AND  expr  <=   max ) ,只要所有的参数均是相同的类型。 否则类型会依照上面的规则发生转换,但是应用于所有三个参数。注意,在 MySQL  4.0 . 5   之前,参数被转换到 expr 的类型。 

mysql  >   SELECT   1   BETWEEN   2   AND   3  ;
          ->   0  
mysql  >   SELECT   ‘  b  ‘   BETWEEN   ‘  a  ‘   AND   ‘  c  ‘  ;
          ->   1  

expr   IN   (value,...)
    如果 expr 是   IN  列表中的作一值,它将返回  1 ,否则返回  0 。如果所有的值均是常数,那么所有的值被依照 expr 的类型进行计算和排序。然后以一个二进制搜索方式完成项目的搜索。这就意味着,如果  IN  列表完全由常数组成, IN   将是非常快的。如果 expr 是一个字母大小写敏感的字符串表达式,字符串比较将以大小写敏感方式执行:

    mysql  >   SELECT   2   IN  ( 0 , 3 , 5 , ‘  wefwf  ‘  );
              ->   0  
    mysql  >   SELECT   ‘  wefwf  ‘   IN  ( 0 , 3 , 5 , ‘  wefwf  ‘  );
              ->   1 

 

iii.逻辑运算符...

逻辑运算符也很常用并且也很简单...

 NOT  
!
    逻辑非。 如果操作数为   0 ,返回  1 ;如果操作数为非零,返回  0 ;如果操作数为  NOT   NULL ,返回  NULL  。

    mysql  >   SELECT   NOT   10  ;
              ->   0  
    mysql  >   SELECT   NOT   0  ;
              ->   1  
    mysql  >   SELECT  !  1  +  1  ;
          ->   1  
最后一个例子返回   1 ,因为表达式是与 (! 1 ) +  1   一样被计算的。 

  AND  , &&  

逻辑与..当表达式的两边同时为1的时候,函数表达式才返回true,否则为false..

mysql  >   SELECT   1   &&   1  ;
          ->   1  
mysql  >   SELECT   1   &&   0  ;
          ->   0 

 or  , ||  

逻辑或。。当表达式两边同时为0的时候,函数表达式才返回false,否则为true..

mysql  >   SELECT   1   ||   1  ;
          ->   1  
mysql  >   SELECT   1   ||   0  ;
          ->   1  

xor

逻辑异或。。当两边的不同的时候函数表达式返回true,否则返回true.. 

控制流函数:

 

 IFNULL(expr1,expr2)
如果 expr1 为非   NULL   的,IFNULL() 返回 expr1,否则返回 expr2。IFNULL() 返回一个数字或字符串值
mysql  >   SELECT  IFNULL( 1 , 0  );
          ->   1  
mysql  >   SELECT  IFNULL( NULL , 10  );
          ->   10  
如果 expr1   =  expr2 为真,返回  NULL ,否则返回 expr1。 它等同于  CASE   WHEN  x  =  y  THEN   NULL   ELSE  x  END  :

mysql  >   SELECT   NULLIF ( 1 , 1  );
          ->   NULL  
mysql  >   SELECT   NULLIF ( 1 , 2  );
          ->   1 
 --  ------------------------------------------------------------------------------ 
 NULLIF  (expr1,expr2)

如果 expr1   =  expr2 为真,返回  NULL ,否则返回 expr1。 它等同于  CASE   WHEN  x  =  y  THEN   NULL   ELSE  x  END  :

mysql  >   SELECT   NULLIF ( 1 , 1  );
          ->   NULL  
mysql  >   SELECT   NULLIF ( 1 , 2  );
          ->   1 
 --  ------------------------------------------------------------------------------ 
 IF  (expr1,expr2,expr3)
如果expr1为真,那么将返回expr2的值,否则返回expr3的值
mysql  >   SELECT   IF ( 1  >  2 , 2 , 3  );
          ->   3  
mysql  >   SELECT   IF ( 1  <  2 , ‘  yes  ‘ , ‘  no  ‘  );
          ->   ‘  yes  ‘  
mysql  >   SELECT   IF (STRCMP( ‘  test  ‘ , ‘  test1  ‘ ), ‘  no  ‘ , ‘  yes  ‘  );
          ->   ‘  no  ‘  
如果expr2和expr3明确的指为null,那么将返回非NULL的类型..
  --  ------------------------------------------------------------------------------ 
 CASE  value  WHEN   [  compare-value  ]   THEN  result  [  WHEN [compare-value  ]   THEN  result ...]  [  ELSE result  ]   END 
 CASE   WHEN   [  condition  ]   THEN  result  [  WHEN [condition  ]   THEN  result ...]  [  ELSE result  ]   END   

mysql  >   SELECT   CASE   1   WHEN   1   THEN   "one"
             WHEN   2   THEN  "two"  ELSE  "more"  END  ;
         ->   "one"
mysql  >   SELECT   CASE   WHEN   1  >  0   THEN  "true"  ELSE  "false"  END  ;
         ->   "true"
mysql  >   SELECT   CASE   BINARY  "B"  WHEN  "a"  THEN   1   WHEN  "b"  THEN   2   END  ;
         ->   NULL 

 

Mysql学习笔记(三)运算符和控制流函数

标签:

查看更多关于Mysql学习笔记(三)运算符和控制流函数的详细内容...

  阅读:26次