一、比较运算符

MySQL的等于 mysql中的等于_mariadb

MySQL的等于 mysql中的等于_数据库_02

(注意:输出结果只有两种,1或0,其中1表示正确,0表示错误,如果字符串隐式转换不成功则为0) 

(1)等号运算符,应遵循以下规则:

  • 如果等号两边的值、字符串或表达式都是字符串时,则MySQL会按照字符串进行比较,其比较的是每个字符串中字符的ANSI编码是否相等;

MySQL的等于 mysql中的等于_database_03

  •  如果等号两边都是整数,则MySQL会按照整数进行比较两个值的大小
  • 如果等号两边的值一个是整数,一个是字符串,则MySQL会将字符串转化为数字进行比较
  • 如果等号两边的值、字符串或表达式中有一个为NULL,则结果为NULL。

MySQL的等于 mysql中的等于_database_04

(2)安全等于运算符

安全等与运算符(<=>)与等于运算符(=)的作用是相似的,唯一的区别是‘<=>'可以用来对NULL进行判断,在两个操作数均为NULL时,其返回值为1,而不为NULL;当操作数一个为NULL时,其返回值为0,而不为NULL;

MySQL的等于 mysql中的等于_database_05

非符号类型的运算符: 

MySQL的等于 mysql中的等于_database_06

 具体效果:

least:

select least('c','s','b','f') from dual;

greatest:

select greatest('x','w','z','a') from dual;

 

MySQL的等于 mysql中的等于_数据库_07

 

MySQL的等于 mysql中的等于_字符串_08

注意:当字符串不是单独一个字符时,least判断的是由第一个字符按字典排序,而并非字符串的长度)

在like模糊匹配运算符中,一个_表示一个字符。

语法格式:
select 名称 from  表名 where 名称 like '_a%'(查询第二个字符是a的信息)

(3)regexp运算符 

 REGEXP运算符用来匹配字符串,语法格式为 expr  regexp 匹配条件,如果expr满足匹配条件,返回1,如果不满足,则返回0,若expr或匹配条件任意一个为NULL,则为NULL。

REGEXP运算符在进行匹配时,常用的有下面几种通配符:

  1. '^':匹配以该字符后面的字符开头的字符串。
  2. '$':匹配以该字符前面的字符结尾的字符串。
  3. '.':匹配任何一个单字符。
  4. "[...]":匹配在方括号内的任意字符。为了命名字符的范围,使用一个'-'。"['a'-'z']"匹配任何字符,而"[0-9]"匹配任何数字。
  5. '*':匹配零个或多个在他前面的字符,例如:'x*'匹配任何数量的'x'字符,"[0-9]*"匹配任何数量的字符

MySQL的等于 mysql中的等于_database_09

MySQL的等于 mysql中的等于_database_10

 

二、逻辑运算符

逻辑运算符主要用来判断表达式的真假,在MySQL中,逻辑运算符的返回值为1,0或为NULL。

MySQL中支持4种逻辑运算符:

MySQL的等于 mysql中的等于_数据库_11

 (注意:or跟and是可以一起使用,但是在使用时要注意两者的优先级,由于and的优先级高于or,因此先对and的两边进行操作,再与or进行操作)

 (1)运算符的优先级

MySQL的等于 mysql中的等于_MySQL的等于_12

数字编号越大,优先级越高,优先级高的运算符先进行运算。

三、位运算符

位运算符是在二进制数上进行计算的运算符。位运算符会先将操作数变成二进制数,然后进行位运算,最后将计算结果从二进制变回十进制数。

MySQL支持的位运算符如下:

MySQL的等于 mysql中的等于_字符串_13

 

select 12&5,12|5,12^5 from dual; 

 

MySQL的等于 mysql中的等于_database_14

相关解释: 

MySQL的等于 mysql中的等于_MySQL的等于_15

 

MySQL的等于 mysql中的等于_database_16

 

在一定范围内,向左移动一位就是乘以2,向右移动一位就是除以2。(最本质的还是将其转化为二进制操作后再转为十进制)