从头开始学MySQL--------算术运算(3)

网友投稿 606 2022-11-16

从头开始学MySQL--------算术运算(3)

从头开始学MySQL--------算术运算(3)

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 GFROM 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。

注:在Mysql中,因为与null进行算数运算均返回NULL,所以才引入了  <=>

(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;

.

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:从头开始学MySQL--------数据类型(1)
下一篇:删除最小字母(第四范式算法一面)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~