MySQL5.7从入门到精通--------第五章读书笔记(3)

版权声明:欢迎转载大宇的博客,转载请注明出处: https://blog.csdn.net/yanluandai1985/article/details/83111596

5.3.2  算术运算符

          保留4位小数。如果除以的是0,那么返回的是NULL。 

DROP TABLE IF EXISTS t_operation;
CREATE TABLE t_operation
(
    number INT
);

INSERT INTO t_operation(number) VALUES(10);

SELECT 
       number A,
       number+10 B,
       number-10 C,
       number*2  D,
       number/2  E,
       number/7  F,
       number/0  G
FROM
       t_operation;

5.3.3  比较运算符

(1)等于运算符

          比较运算符的返回值是0或者1,与NULL原酸的结果是NULL。

等于运算符‘=’运算规则:

        (1)数字与字符串比较的话,字符串会被转换为数字。

        (2)任何与NULL进行‘=’运算的表达式,返回值都是NULL。

        (3)两边都是字符串的话,就按照字符串进行比较。

        在MySQL中,可以把返回值返回给MyBatis框架,用Boolean接收即可。

        另外我尝试在Qracle中运行此SQL语句,发现不可以运行通过:

[SQL]SELECT 1 = 1
[Err] ORA-00923: FROM keyword not found where expected

SELECT 1=1 , '2'=2 , 1=null ,4=5

(2)安全等于运算符( <=>)

        几乎与'='运算一致,区别是 '<=>' 能用来对NULL进行判断,若两者均为NULL,则返回1,否则返回0。

(3)不等于运算符  <>或者是 != 

        用于判断字符串、数字。如果不等于,返回1。如果等于,返回0。如果有NULL进入运算,返回NULL。

(4)其它的大于等于,小于等于等运算符,都一样。且均不能用于判断空NULL,若有NULL进入运算,则返回NULL。

(5)空相关。语法:  A  IS NULL  、  B IS NOT NULL  、   ISNULL(C);

SELECT
  sex,
  name,
  sex IS NULL,
  name IS NOT NULL,
  ISNULL(sex)
FROM t_char

(6)BETWEEN AND 运算符

         数字在某个区间,字母按照字母表顺序比较。若运算中出现NULL,则返回NULL。

         在区间内返回1,不在区间返回0

SELECT 
1 BETWEEN 0 AND 10 resultA,
'f' BETWEEN 'a' AND 'z' resultB
;

(7)LEAST(值1,值2,值3,...,值n)

         返回最小值。有空返回NULL,如果是字符串与数字,那么就返回0。

SELECT 
   LEAST(2,3,4) resultA,
   LEAST('a','b','c') resultB, 
   LEAST(null,2,3) resultC,
   LEAST(2,3,'a')  resultD
;

  (8)GREATEST  用于与LEAST一样,但是取得是最大值。

  (9) IN ()、 NOT IN()    。 

          在的话,返回1,不在返回0。若IN左侧为NULL或者括号里有NULL,则返回NULL。

SELECT 
'a' in ('a','b','c') resultA,
0   in ('a',0) resultB,
4   in (1 ,2 ,3) resultC
;

 (10)LIKE

        可以使用以下两种通配符

       '%'表示匹配一切。  'a%',表示以a开头的任意字符串。  '%a',表示以a结尾的任意字符串。  ‘%a%’,表示包含a的字符串。

       '_'表示匹配一个字符。  'a_',匹配以a开头的两位字符串,例如'ab'、'ac'。  'a___'(3个空格),匹配a开头的长度为4的字符串。

SELECT 
    'a'   LIKE '%a%',
    'abc' LIKE 'a__',
    'abc' LIKE 'a_' ,
    'abc' LIKE 'ab_'
;

  

(11)REGEXP

          MySQL提供了正则功能。

       

         (1)'^a' 匹配以a开头的字符串

         (2)'$a' 匹配以a结尾的字符串

         (3)'。'  匹配任何一个单词

         (4)'【abc】'匹配字符串中含有 a或b或c 的字符串

         (5)'【a-z】' 匹配从字符a到字符z中任意一个字符的字符串 【0-9】匹配任何数字

         (6)' * '匹配零个或多个在它前面的字符。例如 x* 匹配和人数量的x字符。【0-9】*匹配任何数量的数字。

  例如

SELECT 
'ssky' REGEXP '^s',
'ssky' REGEXP '$y',
'ssky' REGEXP '.sky',
'ssky' REGEXP '[ab]'
;

  

5.3.4  逻辑运算符

        NOT 或者 ! ,逻辑非。 ! 0 或者 NOT 0 返回  1。   操作非零数字,返回0。有NULL返回NULL。

        AND 或者 && 与 NOT 相反。只有有0,返回0。 0 || NULL 返回0。

        OR 或者 ||  有非零的数字返回1。   1 || NULL 返回1。  0||NULL 返回NULL。

        XOR 异或   A XOR B 相当于     ! A && B

SELECT 
    1 || NULL,
    0 || NULL,
    1 && NULL,
    0 && NULL,
    !NULL
;

.

猜你喜欢

转载自blog.csdn.net/yanluandai1985/article/details/83111596