赞
踩
五一过后,我又来啦!狂玩五天,放松好心情~
MySQL中的运算符有以下4类,分别是:算数运算符,比较运算符,逻辑运算符,位操作运算符。
有一定python基础的话,应该对”算数运算符“并不陌生,包括:+ - * / %。加减乘除取余数。
我们可以选择表内某一数据进行加法运算,并输出运算结果。
这里我们先创建一个新的表,tb5,字段名为 num,字段属性为INT。
向表内添加数值 55:
我们得到的表是这样的:
对该值进行加法运算,并输出:
发现,输出的结果也形成了一个表。那么我们看看原数据是否会有变化:
并不会。
# 其实做到这里,我有一个疑问,是否可以通过运算符改变原表的数值呢?SELECT * FROM <TABLE> 语句相当于把表内的值拷贝一个出来,进行数值运算。
# 具体更改原表数值中的内容需要等到学习UPDATE语句。这里的运算并不能改变原表中的值。
其他的运算也是如此。
# 0除任何数都为NULL
比较运算符的结果:1,0,NULL
往往用于SELECT 查询条件中。
除了判断NULL的地方不一样之外,和=的作用相同。
检验是否为NULL 的语句:
IS NULL == ISNULL 为NULL
IS NOT NULL 不为NULL
注意,使用ISNULL 的时候,判断的值要放在后面的括号里。
BETWEEN <> AND <>:
判断值是否在区间内。(字符串也是可以实现的)
LEAST <(数值)> :
筛选输入数据中的最小值。
浮点数也是可以的,看一下字符串:
在既有数字,又有字符串的情况下,优先数字大小。
既然有挑选最小值的语句,那么也一定有挑选最大值的语句。
GREATEST<>;
挑选所给数据中最大的一项。
<> LIKE <>;
# %d 表示的就是以d结尾的任意单词。
<> REGEXP <>:
使用正则表达式中的符号来匹配字符串。
这个需要一定正则表达式基础,这里贴一个大佬的文章:
(1条消息) 正则表达式(一)字符串匹配_正则表达式匹配指定字符串_花果山来的和尚的博客-CSDN博客
匹配以g开头的单词
匹配在方括号中出现的任意字符,可以重复匹配
(如果没有*号在方括号后面,那么在正则表达式中,方括号只能匹配一次)
逻辑运算符包括:非,与,或,异或
注意,下面的例子中使用了两个数进行比较,实际上可以有多个数进行逻辑运算,数字中间使用逻辑运算符相连接。
非:NOT 或 !
表示:后面跟着的数字是0,返回1;不是0,也不是NULL,返回1;是NULL 返回 NULL。
这样一看两个似乎相同,但是依然有例外情况:
出现这个情况是因为 NOT 和 !的运算优先级不同。
AND 或 &&:
<> AND <> // <> && <>
OR 或 ||:
<> OR <> // <> || <>
XOR
<> XOR <>
对二进制字节中的位进行测试、移动、或者测试处理,MySQL中提供的位运算符有:
按位或(|):
这个需要理解前面在“逻辑运算符”中提到的 OR 或 ||,
将参与运算的数据,按照其对应的二进制数,逐位进行“逻辑或运算”:
先来举个例子:
我们进行了两个“按位或”运算,先来看10 | 15
再来看4,9,2:
结果按位或的结果是,返回一个64位无符号整数
按位与(&)
这回参照的是“逻辑与运算”:
位异或(^)
参照“逻辑异或运算”:
位左移(<<)
expr << n,n为移动位数
15:0000 1111
60:0011 1100
右侧用0补齐
位右移(>>)
和位左移一样。
位取反(~)
0 变成1, 1变成0
如果单独取反,会发现数据特别大:
可以合并其他运算:
由低到高,转换过来就是先算哪个:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。