• ADADADADAD

    MySQL数据库中有哪几种运算符[ mysql数据库 ]

    mysql数据库 时间:2024-11-28 13:02:41

    作者:文/会员上传

    简介:

    前言:MySQL数据库中有以下几种运算符:算术运算符;比较运算符;逻辑运算符;位运算符。文章大纲:一、算术运算符;二、比较运算符;三、逻辑运算符;四、位运算符;五、运算符优先级这篇文章

    以下为本文的正文内容,内容仅供参考!本站为公益性网站,复制本文以及下载DOC文档全部免费。

    前言:

    MySQL数据库中有以下几种运算符:算术运算符;比较运算符;逻辑运算符;位运算符。

    文章大纲:

      一、算术运算符;

      二、比较运算符;

      三、逻辑运算符;

      四、位运算符;

      五、运算符优先级

    这篇文章将介绍这几种运算符的作用。

    一、算术运算符

    注意:在除法运算和模运算中,如果除数为0,将是非法除法,返回结果为NULL。

    示例:

    mysql>createtablet1(numint);mysql>insertintot1values(64);mysql>selectnum,num+10,num-3,num*3,num%3,num/3fromt1;

    返回的内容如下:

    二、比较运算符

    select语句中的条件语句经常要使用比较运算符。通过这些比较运算符,可以判断表中的哪些记录时符合条件的,比较结果为真,则返回1,为假则返回0,比较结果不确定则返回NULL。

    1、等于运算符

    等于运算符用来判断数字、字符串和表达式是否相等,如果相等,则返回值为1,否则返回值为0,如果有一个值是NULL,则比较结果是NULL。

    mysql>select1=0,'2'=2,(1+3)=(2+2),NULL=NULL;
    2、严格等于运算符(<=>)

    这个操作符和等于运算符(=)的作用一致,只不过多了一个功能,就是可以判断NULL值,如下:

    mysql>select1<=>0,'2'<=>2,(1+3)<=>(2+2),NULL<=>NULL;

    返回结果如下:

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

    不等于运算符用于判断数字、字符串、表达式是否不相等,如果不相等则返回 1,否则返回 0 ,但是不能判断 NULL 值。

    mysql>SELECT'good'<>'god',1<>2,4!=4,5.5!=5,NULL<>NULL;
    4、IS NULL 、IS NOT NULL

      IS NULL是 检验一个值是否为 NULL ,如果为 NULL ,返回值为 1,否则返回值为 0;

      IS NOT NULL 检验一个值是否不为 NULL ,如果不为 NULL ,返回值为 1,否则返回值为 0。

    mysql>SELECTNULLISNULL,(10)ISNULL,10ISNOTNULL;

    返回的结果如下:

    5、BETWEEN AND

    用于判断一个值是否落在两个值之间。

    mysql>select4between1and5,4between4and6,12between9and10;

    返回的结果如下:

    6、LEAST 、GREATEST

      LEAST :当有两个或多个参数时,返回最小值,如果有一个值是 NULL ,则返回结果为 NULL;

      GREATEST :当有两个或多个参数时,返回最大值,如果有一个值是 NULL ,则返回结果为 NULL。

    mysql>selectleast(2,0),least('a','b','c'),least(10,NULL),greatest(2,0),greatest(10,NULL);

    返回的结果如下:

    7、IN、NOT IN

      IN :判断一个值是否是 IN 列表中的任意一个值;

      NOT IN :判断一个值是否不是 IN 列表中的任意一个值。

    mysql>select2in(3,5,8,2),2notin(1,3,5);

    返回的结果如下:

    8、LIKE

      LIKE 运算符用来匹配字符串,如果匹配则返回 1,如果不匹配则返回 0;

      LIKE 使用两种通配符:'%' 用于匹配任何数目的字符,包括零字符 ; '_' 只能匹配一个字符。

    mysql>select'stud'like'stu_','stud'like's___','stud'like'%d';

    返回结果如下:

    9、REGEXP

    1)REGEXP运算符用来匹配字符串,如果匹配则返回1,如果不匹配则返回0;
    2)REGEXP 使用以下几种通配符:

      '^':用于匹配以什么开头的字符串;

      '$':用以匹配以什么结尾的字符串;

      '.':用于匹配任何一个单字符串;

      '[...]':用于匹配在方括号内的任何字符;

      '*'用于匹配零个或多个在它前面的字符;

    mysql>select'ssky'regexp'^s','ssky'regexp'y$','ssky'regexp'.sky','ssky'regexp'[ab]';

    返回的结果如下:

    三、逻辑运算符

    逻辑运算符用来判断表达式的真假。如果表达式是真,结果返回 1。如果表达式是假,结果返回 0。

    1、逻辑非(NOT 或 !)

      当操作数为 0 时,所得值为 1;

      当操作数为非 0 时,所得值为 0;

      当操作数为 NULL 时,所得值为 NULL。

    mysql>selectnot10,!10,not(1-1),!(1-1),not1+1,notnull;
    2、逻辑与(AND或&&)

      当所有操作数均为非零值、并且不为 NULL 时,所得值为 1;

      当一个或多个操作数为 0 时,所得值为 0 ;

      其余情况所得值为 NULL。

    mysql>select1and-1,1&&0,0andnull,1&&null;
    3、逻辑或(OR 或 || )

      当两个操作数均为非 NULL 值,且任意一个操作数为非零值时,结果为 1 ,否则为 0;

      当有一个操作数为 NULL ,且另一个操作数为非零值时,则结果为 1 ,否则结果为 NULL;

      当两个操作数均为 NULL 时,则所得结果为 NULL。

    mysql>select1or-1or0,1||2,0ornull,null||null;

    返回结果如下:

    4、逻辑异或(XOR)

      a XOR b 的计算等同于 ( a AND (NOT b) ) 或 ( (NOT a) AND b );

      当任意一个操作数为 NULL 时,返回值为 NULL;

      对于非 NULL 的操作数,如果两个操作数都是非 0 值或者都是 0 值,则返回结果为 0;

      如果一个为 0 值,另一个为非 0 值,返回结果为 1。

    mysql>select1xor1,0xor0,1xor0,1xornull,1xor1xor1;

    返回结果如下:

    四、位运算符

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

    1、位或运算符( | )

    对应的二进制位有一个或两个为 1 ,则该位的运算结果为 1 ,否则为 0。

    mysql>select10|15,9|4|2;+-------+-------+|10|15|9|4|2|<!--10的二进制为1010,15的二进制为1111,按位或运算之后结果为1111,即15-->+-------+-------+<!--9的二进制为1001,4为0100,2的二进制为0010,按位或运算之后1111,即15-->|15|15|+-------+-------+1rowinset(0.00sec)
    2、位与运算符(&)

    对应的二进制位都为 1 ,则该位的运算结果为 1 ,否则为 0。

    mysql>select10&15,9&4&2;+---------+-----------+|10&15|9&4&2|+---------+-----------+|10|0|+---------+-----------+1rowinset(0.00sec)
    3、位异或运算符(^)

    对应的二进制位不相同时,结果为 1 ,否则为 0。

    mysql>select10^15,1^0,1^1;
    4、位左移运算符(<<)

    使指定的二进制位都左移指定的位数,左移指定位之后,左边高位的数值将被移出并丢弃,右边低位空出的位置用 0 补齐。

    mysql>select1<<2,4<<2;

    返回的结果如下:

    在上述位左移运算中,1的二进制值为00000001,左移两位之后变成00000100,即十进制数4;4的二进制值为00000100,左移两位之后变成00010000,即十进制数16。

    5、位右移运算符(>>)

    使指定的二进制位都右移指定的位数,右移指定位之后,右边低位的数值将被移出并丢弃,左边高位空出的位用 0 补齐。

    mysql>select1>>1,16>>2;

    返回的结果如下:

    6、位取反运算符(~)

    将对应的二进制数逐位反转,即 1 取反后变 0 ,0 取反后变 1。

    mysql>select5&~1;

    关于上述的返回值解释:SQL语句是将5和进行位取反的数字1进行位与运算(&),位于运算的原则是对应的二进制位都位1,则该位为1,否则为0,5的二进制数为0101,1的二进制数为0001,1进行位取反后的值就是1110,那么0101和1110进行位与运算的结果就是0100,也就是4。

    五、运算符优先级

    注:最低优先级为:":="

    最高优先级为: !、BINARY、 COLLATE。

    MySQL数据库中有哪几种运算符.docx

    将本文的Word文档下载到电脑

    推荐度:

    下载
    热门标签: mysql数据库