网站首页  汉语字词  英语词汇  考试资料  写作素材  旧版资料

请输入您要查询的考试资料:

 

标题 MSSQL对比学习MYSQL心得(五)运算符
内容
    MYSQL中的运算符很多,这一节主要讲MYSQL中有的,而SQLSERVER没有的运算符。
    安全等于运算符(<=>)
    这个操作符和=操作符执行相同的比较操作,不过<=>可以用来判断NULL值。
    在两个操作数均为NULL时,其返回值为1而不为NULL;
    而当一个操作数为NULL时,其返回值为0而不为NULL。
    下面分别是SELECTNULL<=>1SELECT1<=>0SELECTNULL<=>NULL的执行结果
    在两个操作数均为NULL时,其返回值为1而不为NULL;
    6
    LEAST运算符
    语法格式为:LEAST(值1,值2,...值n),其中值n表示参数列表中有n个值。在有两个或多个参数的情况下,返回最小值。
    假如任意一个自变量为NULL,则LEAST()的返回值为NULL
    使用LEAST运算符进行大小判断,SQL语句如下:
    代码如下:
    SELECTLEAST(2,0),LEAST('a','b','c'),LEAST(10,NULL)
    7
    由结果可以看到,当参数中是整数或者浮点数时,LEAST将返回其中最小的值;
    当参数为字符串时,返回字母中顺序最靠前的字符;
    当比较值列表中有NULL时,不能判断大小,返回值为NULL
    GREATEST运算符
    语法格式为:GREATEST(值1,值2,...值n),其中n表示参数列表中有n个值。
    在有两个或多个参数的情况下,返回最大值。
    假如任意一个自变量为NULL,则GREATEST()的返回值为NULL
    使用GREATEST运算符进行大小判断,SQL语句如下:
    代码如下:
    SELECTGREATEST(2,0),GREATEST('a','b','c'),GREATEST(10,NULL)
    8
    由结果可以看到,当参数中是整数或者浮点数时,GREATEST将返回其中最大的值;
    当参数为字符串时,返回字母中顺序最靠后的字符;
    当比较值列表中有NULL时,不能判断大小,返回值为NULL
    REGEXP运算符
    在SQLSERVER里是没有正则函数或者运算符的,MYSQL在这方面的确比较完善
    用来匹配字符串,语法格式为:exprREGEXP匹配条件,如果expr满足匹配条件,返回1;
    如果不满足,则返回0;
    若expr或匹配条件任意一个为NULL,则结果为NULL
    常用的几种通配符:
    (1)'^'匹配以该字符后面的字符开头的字符串
    (2)'$'匹配以该字符后面的字符结尾的字符串
    (3)'.'匹配任何一个单字符
    (4)'[...]'匹配在方括号内的任何字符。例如,“[abc]"匹配a、b或c。
    字符的范围可以使用一个'-',“[a-z]”匹配任何字母,而“[0-9]”匹配任何数字
    (5)'*'匹配零个或多个在他前面的字符。例如,“x*”匹配任何数量的'*'字符,“[0-9]*”匹配任何数量的数字,
    而“.*”匹配任何数量的任何字符。
    使用REGEXP运算符进行字符串匹配运算,SQL语句如下:
    代码如下:
    SELECT'ssky'REGEXP'^s','ssky'REGEXP'y$','ssky'REGEXP'.sky','ssky'REGEXP'[ab]';
    9
    由结果可以看到,指定匹配字符串为ssky。
    '^s'表示匹配任何以字母s开头的字符串,因此满足匹配条件,返回1;
    'y$'表示匹配任何以字母y结尾的字符串,因此满足匹配条件,返回1;
    '.sky'表示匹配任何以sky结尾,字符长度为4的字符串,因此满足匹配条件,返回1;
    '^s'表示匹配任何以字母s开头的字符串,因此满足匹配条件,返回1;
    '[ab]'表示匹配任何包含字母a或者b的字符串,指定字符串中没有字母a也没有字母b,因此不满足匹配条件,返回0;
    TIPS:正则表达式是一个可以进行复杂查询的强大工具,相对于LIKE字符串匹配,他可以使用更多的通配符类型
    查询结果更加灵活。
    逻辑运算符
    逻辑与运算符:AND或者&&
    逻辑或运算符:OR或者||
    上面两个运算符就不说了,只是比SQLSERVER多了&&和||的写法
    异或运算符:XOR
    当任意一个操作数为NULL时,返回值为NULL;对于非NULL的操作数,如果两个操作数都是非0值或者都是0值,则返回结果为0;
    如果一个为0值,另一个为非0值,返回结果为1
    使用异或运算符XOR进行逻辑判断,SQL语句如下
    代码如下:
    SELECT1XOR1,0XOR0,1XOR0,1XORNULL,1XOR1XOR1
    10
    由结果可以看到‘1XOR1'和‘0XOR0'中运算符两边的操作数都为非零值,或者都是零值,因此返回0;
    '1XOR0'中两边的操作数,一个为0值,另一个为非0值,返回结果为1;
    '1XORNULL'中有一个操作数为NULL,返回结果为NULL;
    '1XOR1XOR1'中有多个操作数,运算符相同,因此运算符从左到右依次计算,'1XOR1'的结果为0,再与1进行异或运算,因此结果为1。
    TIPS:aXORb的计算等同于(aAND(NOTb))或者(NOTaAND(b))
    位运算符
    由于比较少用到,这里只做简单介绍,同样位运算符在SQLSERVER里是没有的
    位运算符是用来对二进制字节中的位进行测试、移位或者测试处理
    MYSQL中提供的位运算有
    按位或(|)
    按位与(&)
    按位异或(^)
    按位左移(<<)
    按位右移(>>)
    按位取反(~):反转所有比特
    TIPS:可以使用BIN()=binary函数查看一个十进制数的二进制表示
    例如20这个数字SELECTBIN(20)
    二进制表示为:10100
    11
    特别提示
    某一些MYSQL中的特殊字符需要用转义字符才能插入数据库,否则产生意料之外的结果。
    下面的特殊字符需要在输入时加反斜线符号开头
    输入单引号需要:\'
    输入双引号需要:\''
    输入反斜杠:\\
    输入回车符:\r
    输入换行符:\n
    输入制表符:\tab
    输入退格符:\b
    在插入这些特殊字符到数据库之前一定要进行转义处理
    在SQLSERVER里,这些特殊字符不是在前面加反斜杠\,而是加单引号'
    例如插入一个单引号,加了反斜杠,插入成功
    代码如下:
    INSERTINTOtable_1(NAME)VALUES('\'')
    SELECT*FROMtable_1
    12
    总结
    这一节简单介绍了MYSQL里的一些运算符和特殊字符,并且比较了与SQLSERVER的区别。
随便看

 

在线学习网考试资料包含高考、自考、专升本考试、人事考试、公务员考试、大学生村官考试、特岗教师招聘考试、事业单位招聘考试、企业人才招聘、银行招聘、教师招聘、农村信用社招聘、各类资格证书考试等各类考试资料。

 

Copyright © 2002-2024 cuapp.net All Rights Reserved
更新时间:2025/5/20 10:31:49