运算符和表达式(课件)-《MySQL数据库技术与应用》同步教学(清华)_第1页
运算符和表达式(课件)-《MySQL数据库技术与应用》同步教学(清华)_第2页
运算符和表达式(课件)-《MySQL数据库技术与应用》同步教学(清华)_第3页
运算符和表达式(课件)-《MySQL数据库技术与应用》同步教学(清华)_第4页
运算符和表达式(课件)-《MySQL数据库技术与应用》同步教学(清华)_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第7章运算符、表达式和系统函数本章的学习目标:了解Transact-SQL语言的发展过程理解Transact-SQL语言附加的语言元素掌握常量、变量、运算符和表达式掌握流程控制语句掌握常用函数SQLServer2016提供以下几类运算符:算术运算符、关系运算符、逻辑运算符、连接运算符和位运算符。1.算术运算符算术运算符对两个表达式执行数学运算。算术运算符说明+加法运算-减法运算*乘法运算/除法运算,如果两个表达式都是整数,则结果是整数,小数部分被截断%(求模)求模(求余)运算,返回两数相除后的余数算术运算符7.5运算符和表达式7.5.1运算符【例】计算8/5、8.0/5.0、5/8、5.0/8.0与8%5的值。select8/5,8.0/5.0,5/8,5.0/8.0,8%51 1.600000 0 0.625000 3通过执行语句我们注意到:8/5的结果为1,而8.0/5.0的结果为1.600000,两者运算结果并不相同。原因在于当两个具有相同数据类型的数进行算术运算时,运算结果依然是当前的数据类型。但是,当两个不同数据类型的数进行算术运算时,数据类型优先级规则指定将优先级较低的数据类型转换为优先级较高的数据类型。这样能够在最大程度上保护运算结果的正确性和合理性。同样,5/8与5.0/8.0的运算结果也不相同。2.关系运算符关系运算符说

明实

例=相等姓名=”李华”>大于成绩>90<小于年龄<18>=大于等于成绩>=60<=小于等于工资<=2000<>、!=不等于所属院系<>’数学系’!<不小于学分!<3!>不大于成绩!>100说明:两个数值型数据比较时,按照值的大小直接比较;两个日期时间型数据比较时,按照年、月、日的先后顺序比较;两个字符型数据比较时,英文字母按照ASCII码值大小比较,汉字按照拼音先后顺序比较。【例】使用关系运算符查询usexscjdeclare@studentchar(6)set@student='001111'if(@student<>0) select*fromxswhere学号=@studentgo3.逻辑运算符运

符运

则AND与运算,两个操作数均为TRUE时,结果才为TRUEOR或运算,若两个操作数中任何一个为TRUE,则结果为TRUENOT非运算,单目运算,结果值取反ALL每个操作数值都为TRUE时,结果为TRUEANY多个操作数中只要有一个为TRUE,结果为TRUEBETWEEN若操作数在指定的范围内,则运算结果为TRUEEXISTS若子查询包含一些行,则运算结果为TRUEIN若操作数值等于表达式列表中的一个,则结果为TRUELIKE若操作数与某种模式相匹配,则结果为TRUESOME若在一系列操作数中,有些值为TRUE,则结果为TRUE【例】查询成绩高于李华最高成绩的学生姓名、课程名和成绩selectsname,cname,gradefromstudentjoinscjoincourseono=oonstudent.sno=sc.snoandgrade>all (selectgrade fromstudentjoinscjoincourse ono=o onstudent.sno=sc.sno andsname='李华' )1)any,all【例】查询成绩高于李华最低成绩的学生姓名、课程名和成绩selectsname,cname,gradefromstudentjoinscjoincourseono=oonstudent.sno=sc.snoandgrade>any (selectgrade fromstudentjoinscjoincourse ono=o onstudent.sno=sc.sno andsname='李华' )2)between【例】查询93及94年出生的学生信息select*fromstudentwheresbirthbetween'1993-1-1'and'1994-12-31‘【例】查询不是93、94年出生的学生信息select*fromstudentwheresbirthnotbetween'1993-1-1'and'1994-12-31'查询姓王或姓李的学生信息select*fromstudentwheresnamelike'[王李]%'查询不姓王也不姓李的学生信息select*fromstudentwheresnamelike'[^王李]%'通配符说明%代表0个或多个字符_代表单个字符[]指定范围(如:[a-f]、[0-9]或集合[abcdef]中的任何单个字符[^]指定不属于范围(如:[^a-f]、[^0-9]或集合[^abcdef]中的任何单个字符3)like查询所有选课的学生信息select*fromstudentwhereexists (select*fromsc wheresno=student.sno)查询没有选课的学生信息select*fromstudentwherenotexists (select*fromsc wheresno=student.sno)4)exists4.连接运算符

连接运算符“+”用于串联两个或两个以上的字符或二进制串、列名或者串和列的混合体。select2255+1188select'2255'+'1188'select'2255'+1188说明:当数据类型不相同时,转换成优先级别高的。5.位运算符

位运算符在两个表达式之间实现按位操作,这两个表达式应该为整型数据类型或与整型兼容的数据类型(如字符型等,image类型除外)运

符运

则&(位与运算)两个参与运算的位值均为1时,结果位为1,否则为0|(位或运算)两个参与运算的位中只要有一位值为1,结果就为1,否则为0^(位异或运算)两个参与运算的位不同时,结果为1,否则为0【例】select128&129,128|129,128^129128:129:1000000010000001或|10000001128:129:1000000010000001与&|10000000128:129:1000000010000001异或^00000001优

级运

符1()括号2一目运算:+(正)、-(负)、~(按位取反)3*(乘)、/(除)、%(取模)4+(加)、+(字符串连接)、-(减)5=、>、<、>=、<=、<>、!=、!>、!<6^(位异或)、&(位与)、|(位或)7NOT8AND9ALL、ANY、BETWEEN、IN、LIKE、OR、SOME6.运算符的优先顺序当运算符的级别不同时,先对较高级别的运算符进行运算,然后再对较低级别的运算符进行运算。当一个表达式中运算符的级别相同时,一般按照从左到右的顺序进行运算。当表达式中有括号时,应先对括号内的表达式进行求值;若表达式中有嵌套的括号,则首先对嵌套最深的表达式求值。在SQL语言中,表达式由标识符、变量、常量、标量函数、子查询以及运算符组成。在MicrosoftSQLServer2016中,表达式可以用于查询记录的条件等。1.字段名表达式可以是单一的字段名或几个字段的组合,也可以是由字段、作用于字段的集函数和常量的任意算术运算(+、-、*,/)组成的运算公式。主要包括数值表达式、字符表达式、逻辑表达式、日期表达式4种。2.目标表达式有4种构成方式:*,表示选择相应基表或视图的所有字段。<表名>.*,表示选择指定的基表和视图的所有字段。集函数(),表示在相应的表中按集函数操作和运算。[<表名>.]<字段名表达式>[,[<表名>.]<字段名表达式>]…,表示按字段名表达式在多个指定的表中选择指定的字段。7.5.2表达式3.条件表达式常用的有以下6种:(1)比较大小应用比较运算符构成的表达式,主要的比较运算符有:=,>,<,>=,<=,!=,<>,!>(不太于),!<(不小于),NOT+(与比较运算符同用,对条件求非)。(2)指定范围BETWEEN…AND…,NOTBETWEEN…AND…查找字段值在(或不在)指定范围内的记录。BETWEEN后是范围的下限(即低值),AND后是范围的上限(即高值)。(3)集合IN…,NOTIN…查找字段值属于(或不属于)指定集合内的记录。(4)字符匹配LIKE,NOTLIKE’<匹配串>’[ESCAPE’<换码字符>’]查找指定的字段值与<匹配串>相匹配的记录。(5)空值ISNULL,ISNOTNULL查找字段值为空(或不为空)的记录。SQL规定:在含有运算符+、-、*、/的算术表达式中,若有一个值是NULL,则该运算表达式的值也是空值;任何一个含有NULL比较操作结果的取值都为“假”。(6)多重条件

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论