数据库教学资料 第6章 t-sql语言基础ppt课件_第1页
数据库教学资料 第6章 t-sql语言基础ppt课件_第2页
数据库教学资料 第6章 t-sql语言基础ppt课件_第3页
数据库教学资料 第6章 t-sql语言基础ppt课件_第4页
数据库教学资料 第6章 t-sql语言基础ppt课件_第5页
已阅读5页,还剩73页未读 继续免费阅读

下载本文档

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

文档简介

1、第第6章章 T-SQL言语概述言语概述主讲教师:卫琳主讲教师:卫琳6.1 T-SQL言语概述言语概述6.1.1 T-SQL言语的开展过程和特点言语的开展过程和特点6.1.2 T-SQL言语的分类言语的分类数据定义言语数据定义言语(DDL)数据支配言语数据支配言语(DML)数据控制言语数据控制言语(DCL)语句语句功能功能create创建数据库或数据库对象创建数据库或数据库对象alter修改数据库或数据库对象修改数据库或数据库对象drop删除数据库或数据库对象删除数据库或数据库对象语句语句功能功能select从表或视图中检索数据从表或视图中检索数据insert将数据插入到表或视图中将数据插入到表

2、或视图中update修改表或视图中的数据修改表或视图中的数据delete从表或视图中删除数据从表或视图中删除数据语句语句功能功能grant授予权限授予权限revoke收回权限收回权限drop禁止从其他角色中继承许可权限禁止从其他角色中继承许可权限DDLDMLDCL6.1.3 T-SQL法商定法商定1.注释注释“:单行注释从双连字符到行尾的内容:单行注释从双连字符到行尾的内容/*/:多行注释对:多行注释对/*/ 之间一切内容之间一切内容2.系统保管字系统保管字不要运用保管关键字作为对象称号或标识符不要运用保管关键字作为对象称号或标识符/*创建名为创建名为example的数据库,并存放在的数据库,

3、并存放在“e:sql目录中目录中*/CREATE DATABASE exampleON(name=example,-设置数据库文件称号设置数据库文件称号 filename=e:sqlexample.mdf, -设置文件存放位置设置文件存放位置 size=10,-指定文件大小指定文件大小 maxsize=50)-指定文件的最大容量指定文件的最大容量LOG ON-指定日志文件指定日志文件(name=examplog,-指定日志文件称号指定日志文件称号 filename=e:sqlexample.ldf, -指定日志文件存放位置指定日志文件存放位置 size=5mb, maxsize=25mb, f

4、ilegrowth=5mb)go6.2 附加的言语元素附加的言语元素6.1.2 标识符标识符1. 标识符格式标识符格式1标识符的首字符必需是以下字符之一标识符的首字符必需是以下字符之一 。一致码一致码Unicode2.0规范中所定义的字母,包规范中所定义的字母,包括拉丁字母括拉丁字母a-z和和A-Z,以及来自其他言语的字,以及来自其他言语的字符。符。下划线下划线“_、符号、符号“或者数字符号或者数字符号“#。2标识符的后续字符可以是以下标识符的后续字符可以是以下3种。种。 一致码一致码Unicode2.0规范中所定义的字母。规范中所定义的字母。 来自拉丁字母或其他国家来自拉丁字母或其他国家/地

5、域脚本的十进制数地域脚本的十进制数字。字。 “符号、美圆符号符号、美圆符号“$、数字符号、数字符号“#或下划或下划线线“_。3标识符不允许是标识符不允许是Transact-SQL的保管字。的保管字。4不允许嵌入空格或其他特殊字符。不允许嵌入空格或其他特殊字符。6.1.2 标识符标识符2标识符分类标识符分类SQL Server将标识符分为以下两种类型:将标识符分为以下两种类型: 常规标识符:符合标识符的格式规那么。常规标识符:符合标识符的格式规那么。 分隔标识符:包含在双引号分隔标识符:包含在双引号(“)或者方括号或者方括号( )内的标内的标识符。识符。该标识符可以不符合标识符的格式规那么,如该

6、标识符可以不符合标识符的格式规那么,如MR GZGLXT、MR和和GZGLXT之间含有空格,但由于运用了之间含有空格,但由于运用了方括号,所以视为分隔标识符。方括号,所以视为分隔标识符。留意:常规标识符和分隔标识符包含的字符数必需留意:常规标识符和分隔标识符包含的字符数必需在在1128之间,对于本地暂时表,标识符最多可以有之间,对于本地暂时表,标识符最多可以有116个字符。个字符。 6.2.2 常量常量(1)字符型常量字符型常量ASCII字符串常量:用单引号括起来,由字符串常量:用单引号括起来,由ASCII字符字符组成。组成。 假设在字符常量中曾经包含了一个单引号,那么假设在字符常量中曾经包含

7、了一个单引号,那么可以运用两个单引号表示这个带单引号的字符。可以运用两个单引号表示这个带单引号的字符。 Unicode字符串常量的格式与字符串常量的格式与ASCII字符串常量类似,字符串常量类似,但它前面有一个前缀但它前面有一个前缀N,而且,而且N前缀必需是大写的。前缀必需是大写的。 如:如:NSQL Server、N张三张三、N计算机科学计算机科学与技术与技术。6.2.2 常量常量(2) 数值型常量数值型常量数值型常量包含整型常量和实数型常量。数值型常量包含整型常量和实数型常量。整型常量整型常量(Integer)用来表示整数。可细分为二进用来表示整数。可细分为二进制整型常量、十六进制整型常量

8、和十进制整型常制整型常量、十六进制整型常量和十进制整型常量。二进制整型常量以数字量。二进制整型常量以数字0或或1表示;十六进表示;十六进制整型常量由前缀制整型常量由前缀0 x后跟十六进制数组成;十后跟十六进制数组成;十进制整型常量即不带小数点的十进制数;进制整型常量即不带小数点的十进制数;实数型常量用来表示带小数部分的数,有定点数实数型常量用来表示带小数部分的数,有定点数和浮点数两种表示方式,其中浮点数运用科学记和浮点数两种表示方式,其中浮点数运用科学记数法来表示。如:数法来表示。如:0.3E-5。(3) 日期时间型常量日期时间型常量(datetime)日期时间型常量运用特定格式的字符日期值来

9、表示,日期时间型常量运用特定格式的字符日期值来表示,并且用单引号括起来。如并且用单引号括起来。如2021年年4月月1日可以用以下日可以用以下方式表示:方式表示:April 1,2021、04/01/2021或或20210401。(4) 货币型常量货币型常量(money)货币型常量以前缀货币型常量以前缀“$作为标识。如作为标识。如$123.45。6.2.2 变量变量1变量称号变量称号在在SQL Server 2019系统中,变量的命名规那么如下:系统中,变量的命名规那么如下:第一个字符必需是字母、数字、下画线或符号。需求留意的第一个字符必需是字母、数字、下画线或符号。需求留意的是,符号是,符号“

10、开头的变量表示部分变量、符号开头的变量表示部分变量、符号“开头的变量开头的变量表示全局变量。表示全局变量。变量名不能是变量名不能是T-SQL言语的系统保管字言语的系统保管字(如如IF、ELSE、CONTINUE等等),包括大写和小写方式。,包括大写和小写方式。变量名中不允许出现空格或其他特殊字符。变量名中不允许出现空格或其他特殊字符。根据以上规那么,以下变量名都是合法的:根据以上规那么,以下变量名都是合法的:a2、abc、student_3和和average。变量在运用中需求先声明再运用,声明变量用变量在运用中需求先声明再运用,声明变量用DECLARE语语句,其语法格式如下:句,其语法格式如下

11、:DECLARE 变量称号变量称号 变量的数据类型变量的数据类型 ,n阐明:阐明:为表示部分变量,变量称号的第一个字符必需是为表示部分变量,变量称号的第一个字符必需是一切变量在声明后均设置初值为一切变量在声明后均设置初值为NULL6.2.2 变量变量2变量赋值变量赋值有两种为变量赋值的方式:运用有两种为变量赋值的方式:运用SET语句直接为变量赋值和语句直接为变量赋值和运用运用SELECT语句选择表中的值来为变量赋值。语句选择表中的值来为变量赋值。语法格式如下:语法格式如下:格式格式1:运用:运用SET语句赋值语句赋值SET 变量称号变量称号=表达式表达式格式格式2:运用:运用SELECT语句赋

12、值语句赋值SELECT 变量称号变量称号=表达式表达式 ,n阐明:阐明:表达式可以是任何有效的表达式可以是任何有效的SQL表达式;表达式;一个一个SELECT语句可以给多个变量赋值,而一个语句可以给多个变量赋值,而一个SET语句一次语句一次只能给一个变量赋值。只能给一个变量赋值。例:用赋值语句分别定义两个整型变量x和y。使x的值为20,y的值为5,计算并显示x,y,3x +4y,xy,和x /y的值。declare x int,y intset x=20set y=5select x,y,3*x+4*y,x*y,x/y例:创建两个部分变量,并赋值,然后输出变量的值。declare var1 c

13、har(4),var2 char(20)set var1=中国set var2=var1+是一个伟大的国家select var1,var2go例如:创建一个名为例如:创建一个名为sex的部分变量,并在的部分变量,并在select语句中语句中运用该部分变量查找表运用该部分变量查找表student中一切女同窗的信息。中一切女同窗的信息。use xscj2019declare xb char(2)set xb=女女select * from studentwhere ssex=xb例:运用查询给变量赋值。例:运用查询给变量赋值。use XSCJ2019godeclare xm varchar(8)s

14、et xm =(select sname from student where sno=2019056103)select xmGouse XSCJ2019godeclare xm varchar(8)select xm =sname from studentselect xmGo阐明:假设前往多个值,将前往的最后一个值赋给变量阐明:假设前往多个值,将前往的最后一个值赋给变量例:use XSCJ2019godeclare xm varchar(8)select xm=刘丰select xm=sname from studentwhere sno=123456789select xm as na

15、mego阐明:假设阐明:假设select语句没有前往行,变量将保管当前值语句没有前往行,变量将保管当前值6.3 运算符和表达式运算符和表达式SQL Server 2019提供以下几类运算符:算术运算符、关系运算符、逻辑运算符、字符运算符和位运算符。6.3.1 算术运算符算术运算符算术运算符对两个表达式执行数学运算。算术运算符对两个表达式执行数学运算。算术运算符算术运算符说说 明明+加法运算加法运算-减法运算减法运算*乘法运算乘法运算/除法运算,如果两个表达式都是整数,则结果是整数,小数除法运算,如果两个表达式都是整数,则结果是整数,小数部分被截断部分被截断%(求模求模)求模求模(求余求余)运算

16、,返回两数相除后的余数运算,返回两数相除后的余数算术运算符算术运算符例【6-3】:计算6/5、6.0/5.0、5/6、5.0/6.0与6%5的值。select 6/5,6.0/5.0,0,5.0/6.0,6%5select 14/5,6.0/5.0,0,5.0/6.0,6%5select 6.0/5,6.0/5.0,0,5.0/6.0,6%5经过执行语句我们留意到:6/5的结果为1,而6.0/5.0的结果为1.200000,两者运算结果并不一样。缘由在于当两个具有一样数据类型的数进展算术运算时,运算结果依然是当前的数据类型。但是,当两个不同数据类型的数进展算术运算时,数据类型优先级规那么指定将

17、优先级较低的数据类型转换为优先级较高的数据类型。这样可以在最大程度上维护运算结果的正确性和合理性。同样,5/6与5.0/6.0的运算结果也不一样。6.3.2 关系运算符关系运算符关系运算符说 明实 例=相等姓名=”王华”大于成绩85小于年龄=大于等于成绩=60=小于等于工资=2000、!=不等于所属院系英语系!不小于学分!不大于成绩!=100阐明:阐明:两个数值型数据比较时,按照值的大小直接比较;两个数值型数据比较时,按照值的大小直接比较;两个日期时间型数据比较时,按照年、月、日的先后顺序比较;两个日期时间型数据比较时,按照年、月、日的先后顺序比较;两个字符型数据比较时,英文字母按照两个字符型

18、数据比较时,英文字母按照ASCII码值大小比较,汉字按照拼音先后顺码值大小比较,汉字按照拼音先后顺序比较。序比较。use XSCJgodeclare student char(6)set student=001111if(student0)select * from xs where 学号=student6.3.3 逻辑运算符逻辑运算符运 算 符运 算 规 则AND与运算,两个操作数均为TRUE时,结果才为TRUEOR或运算,若两个操作数中任何一个为TRUE,则结果为TRUENOT非运算,单目运算,结果值取反ALL每个操作数值都为TRUE时,结果为TRUEANY多个操作数中只要有一个为TRUE

19、,结果为TRUEBETWEEN若操作数在指定的范围内,则运算结果为TRUEEXISTS若子查询包含一些行,则运算结果为TRUEIN若操作数值等于表达式列表中的一个,则结果为TRUELIKE若操作数与某种模式相匹配,则结果为TRUESOME若在一系列操作数中,有些值为TRUE,则结果为TRUE例:查询成果高于李明最高成果的学生姓名、课程名和成果select sname,cname,gradefrom student join sc join courseon courseo=scoon student.sno=sc.snoand gradeall(select grade from studen

20、t join sc join course on courseo=sco on student.sno=sc.sno and sname=李明 ) 1)any,all例:查询成果高于李明最低成果的学生姓名、课程名和成果select sname,cname,gradefrom student join sc join courseon courseo=scoon student.sno=sc.snoand gradeany(select grade from student join sc join course on courseo=sco on student.sno=sc.sno and

21、sname=李明 ) 2.Between例:查询例:查询91及及92年出生的学生信息年出生的学生信息select * from studentwhere sbirth between 1991-1-1 and 1992-12-31例:查询不是例:查询不是91、92年出生的学生信息年出生的学生信息select * from studentwhere sbirth not between 1991-1-1 and 1992-12-31查询姓王或姓刘的学生信息select * from studentwhere sname like 王刘%查询不姓王也不姓刘的学生信息select * from st

22、udentwhere sname like 王刘%通配符通配符说明说明%代表代表0个或多个字符个或多个字符_代表单个字符代表单个字符 指定范围(如:指定范围(如:a-f、0-9或集合或集合abcdef中的任何单个字符中的任何单个字符指定不属于范围(如:指定不属于范围(如:a-f、0-9或集合或集合abcdef中的任何中的任何单个字符单个字符3.Like查询一切选课的学生信息查询一切选课的学生信息select * from studentwhere exists(select * from sc where sno=student.sno)查询没有选课的学生信息查询没有选课的学生信息select

23、 * from studentwhere not exists(select * from sc where sno=student.sno)4. exists6.3.4 字符运算符字符运算符 字符运算符只需一个“+,又称为字符串串联运算符。字符串之间经过“+实现字符串的衔接。select 8899+7788select 8899+7788select 8899+7788阐明:当数据类型不一样阐明:当数据类型不一样时,转换成优先级别高的。时,转换成优先级别高的。6.3.5 位运算符位运算符 位运算符在两个表达式之间实现按位操作,这两个表达式应该为整型数据类型或与整型兼容的数据类型如字符型等,但

24、不能是image类型)运 算 符运 算 法 则&(位与运算)两个参与运算的位值均为1时,结果位为1,否则为0|(位或运算)两个参与运算的位中只要有一位值为1,结果就为1,否则为0(位异或运算)两个参与运算的位中只有一个的值为1时(不可以两个值都为1),结果为1;只有当两个参与运算的位值都为0或都为1时,结果才为06.3.5 位运算符位运算符例如:例如:select 128&129,128|129,128129运 算 符运 算 法 则&(位与运算)两个参与运算的位值均为1时,结果位为1,否则为0|(位或运算)两个参与运算的位中只要有一位值为1,结果就为1,否则为0(位异或

25、运算)两个参与运算的位中只有一个的值为1时(不可以两个值都为1),结果为1;只有当两个参与运算的位值都为0或都为1时,结果才为0128:129:1000 00001000 0001或或|1000 0001128:129:1000 00001000 0001与与&|1000 0000128:129:1000 00001000 0001异或异或0000 0001优 先 级运 算 符1一目运算:+(正)、-(负)、(按位取反)2*(乘)、/(除)、%(取模)3+(加)、+(字符串连接)、-(减)4=、=、=、!=、!、!yprint x大于大于yelseprint x小于或等于小于或等于y6

26、.4 流程控制语句流程控制语句6.4.2 IF ELSE语句语句IF 条件表达式条件表达式语句体语句体1ELSE语句体语句体2例:输入一个坐标值,判别其在哪一个象例:输入一个坐标值,判别其在哪一个象限限declare x int,y intset x=8set y=-3if x0if y0print xy位于第一象限位于第一象限elseprint xy位于第四象限位于第四象限elseif y0print xy位于第二象限位于第二象限elseprint xy位于第三象限位于第三象限IF.ELSE语句语句例【例【6-6】:设定变量】:设定变量score,根据,根据score的值的值判别成果能否合格

27、,并输出结论。判别成果能否合格,并输出结论。declare score int,a nchar(10)set score=55if score=60set a=N成果合格成果合格elseset a=N成果不合格成果不合格select a1.简单简单case语句语句计算计算 input_expression,然后按指定顺序对每个,然后按指定顺序对每个when子子句的句的input_expressionwhen_expression进展计算。进展计算。前往第一个取值为前往第一个取值为true的的input_expression= when_expression的的result_expression

28、.假设没有取值为假设没有取值为true的的input_expression= when_expression,那么当指定,那么当指定else子句时,子句时,sql server将前往将前往else_result_expression;假设没有指定;假设没有指定else子句子句时,那么前往时,那么前往null值。值。2.Case 搜索语句搜索语句按指定顺序为每个按指定顺序为每个when子句的子句的Boolean_expression求值。求值。前往第一个取值为前往第一个取值为true的的Boolean_expression的的result_expression。假设没有取值为假设没有取值为tru

29、e的的Boolean_expression,那么当指定,那么当指定else子句时,子句时,sql server将前往将前往else_result_expression;假设没有指定假设没有指定else子句时,那么前往子句时,那么前往null值。值。6.4.3 case 语句语句-简单Case语句 CASE sex WHEN 1 THEN 男 WHEN 2 THEN 女 ELSE 其他 END -Case搜索语句 CASE WHEN sex = 1 THEN 男 WHEN sex = 2 THEN 女 ELSE 其他 END 简单Case语句只前往第一个符合条件的值,剩下的Case部分将会被自动

30、忽略。 -比如说,下面这段SQL,他永远无法得到“第二类这个结果 CASE WHEN col_1 IN ( a, b) THEN 第一类 WHEN col_1 IN (a) THEN 第二类 ELSE其他 END select sno,cno,grade,case when grade=90 then 优秀优秀when grade=80 then 良好良好when grade=70 then 中等中等when grade=60 then 及格及格when grade60 then 不及格不及格end as 成果等级成果等级from sc1.简单简单Case 语句语句6.4.3 case 语句语

31、句2.Case 搜索语句搜索语句例例6-7:create table temp(score int not null)insert into temp values(60)insert into temp values(30)insert into temp values(90)insert into temp values(106)insert into temp values(87)select score,等级等级=case when score=60 and score=80 and score=90 and score=0 and 成果成果=60 and 成果成果=70 and 成果

32、成果=80 and 成果成果=90 and 成果成果=100 then 优秀优秀endfrom scgoselect * from v6.4.4 goto语句语句无条件转移语句,运用无条件转移语句,运用goto语句可以将执行语句可以将执行流程转移到标签指定的位置。为了与前面的版本兼流程转移到标签指定的位置。为了与前面的版本兼容,容,SQL SERVER 2019 支持支持goto语句,但由于该语句,但由于该语句破坏了语句的构造,容易引发不易发现的问题,语句破坏了语句的构造,容易引发不易发现的问题,所以应该尽量减少或防止运用。所以应该尽量减少或防止运用。declare x intset x=1l

33、oving:print xselect x=x+1while x=3goto loving阐明:标号是GOTO目的,它不仅仅标识了跳转目的,标号不隔离其前后语句。执行标号前面语句的用户跳过标号并执行标号后的语句。除非标号前面的语句本身是控制流语句return,这种情况才发生。declare pjf floatif (select COUNT(*)from scwhere sno=2019056101)=0goto labelelsebeginselect pjf=AVG(grade)from scwhere sno=2019056101print pjfendlabel:print 无学生或此

34、学生没有选课!例如:输出2019056101号学生平均成果,假设此学生没有选课,那么显示相应提示信息,用goto完成。阐明:标号是GOTO目的,它不仅仅标识了跳转目的,标号不隔离其前后语句。执行标号前面语句的用户跳过标号并执行标号后的语句。除非标号前面的语句本身是控制流语句return,这种情况才发生。6.4.5 whilebreak和和continue 语句语句1.while 语句语句declare s int,num intselect s=0,num=1while num=100beginset s=s+numset num=num+1endprint 1+2+3+.+100=+conv

35、ert(char,s)godeclare x intset x=1while x=3beginprint xselect x=x+1end6.4.5 whilebreak和和continue 语句语句2.break 语句语句 break 语句普通用在语句普通用在while循环或循环或if .else语句中,语句中,用于退出本层循环。用于退出本层循环。例:求例:求1100之间的累加和,当和超越之间的累加和,当和超越1000时停顿累加,显示累加和以及累时停顿累加,显示累加和以及累加到的位置。加到的位置。declare i int,s intset i=1set s=0while i=1000bre

36、akset i=i+1endselect s as s,i as i6.4.5 whilebreak和和continue 语句语句3.continue 语句语句continue 命令可以让程序跳过命令可以让程序跳过continue命令之后命令之后的语句,回到的语句,回到while循环的第一行命令。循环的第一行命令。Break那么那么让程序完全跳出循环,终了让程序完全跳出循环,终了while命令的执行。命令的执行。例:求例:求110之间的偶数和,并用之间的偶数和,并用continue控制语句的输出。控制语句的输出。declare x int,sum intset x=1set sum=0whil

37、e x0print 遇到return之前returnprint 遇到return之后SQL SERVER2019新增功能新增功能 try.catch语句语句Bgein try语句语句块语句语句块End tryBegin catch语句语句块语句语句块End catch 类似类似C+的异常处置,当执行的异常处置,当执行try语句块中的代码出语句块中的代码出现错误时,系统将把控制传送到现错误时,系统将把控制传送到catch语句块进展处置。语句块进展处置。begin trycreate database testend trybegin catchprint test数据库已存在drop datab

38、ase testprint 原有的test数据库已删除create database testprint test数据库再次胜利创建end catch6.5 函数函数6.5.1 数学函数数学函数数数 学学 函函 数数功功 能能ABS(数值表达式数值表达式)绝对值函数,返回数值表达式的绝对值绝对值函数,返回数值表达式的绝对值ACOS(实型表达式实型表达式)反余弦函数,返回一个余弦值对应的角度。角度以弧度表示,反余弦函数,返回一个余弦值对应的角度。角度以弧度表示,实型表达式取值范围从实型表达式取值范围从-11,若参数超过此范围,函数返回,若参数超过此范围,函数返回NULL并报告错误并报告错误COS

39、(数值表达式数值表达式)正弦函数,返回表达式中以弧度表示的指定角的余弦值正弦函数,返回表达式中以弧度表示的指定角的余弦值EXP(数值表达式数值表达式)指数函数,返回表达式的指数值指数函数,返回表达式的指数值LOG(数值表达式数值表达式)自然对数函数,返回表达式的自然对数值自然对数函数,返回表达式的自然对数值PI()圆周率函数,返回圆周率函数,返回14位小数的圆周率常量值位小数的圆周率常量值RAND()随机函数,随机返回随机函数,随机返回01之间的之间的float数值数值SIGN(数值表达式数值表达式)符号函数,返回表达式的正号、零或负号符号函数,返回表达式的正号、零或负号SIN(数值表达式数值

40、表达式)正弦函数,返回表达式中以弧度表示的指定角的正弦值正弦函数,返回表达式中以弧度表示的指定角的正弦值SQRT(数值表达式数值表达式)平方根函数,返回表达式的平方根平方根函数,返回表达式的平方根TAN(数值表达式数值表达式)正切函数,返回指定表达式中以弧度表示的指定角的正切值正切函数,返回指定表达式中以弧度表示的指定角的正切值例【6-8】:运用常用数学函数计算-1的绝对值,e的10次方,5的自然对数,半径为3的圆的面积和49的平方根。SELECT N-1绝对值=ABS(-1),Ne的10次方=EXP(10),N5的自然对数=LOG(5),N半径为3的圆的面积=PI()*3*3,N49的平方根

41、=SQRT(49)6.5.2 字符串函数字符串函数字符串函数字符串函数功功 能能ASCII(字符表达式字符表达式)ASCII函数,返回字符串表达式中最左端字符的函数,返回字符串表达式中最左端字符的ASCII码值码值CHAR(整型表达式整型表达式)ASCII码转换函数,参数为介于码转换函数,参数为介于0255之间的整数,返回整数之间的整数,返回整数的的ASCII码码LEFT(字符表达式,字符表达式,n)左子串函数,返回从字符串左边开始的左子串函数,返回从字符串左边开始的n个字符个字符LEN(字符表达式字符表达式)字符串长度函数,返回字符串表达式中字符的个数字符串长度函数,返回字符串表达式中字符的

42、个数LOWER(字符表达式字符表达式)小写字母函数,将大写字母转换为小写字母,返回表达式的小写字母函数,将大写字母转换为小写字母,返回表达式的小写字母表示小写字母表示LTRIM(字符表达式字符表达式)删除前导空格函数,返回删除了前导空格的字符表达式删除前导空格函数,返回删除了前导空格的字符表达式REPLACE(字符表达式字符表达式1,字符表达式字符表达式2,字符表达,字符表达式式3)字符替换函数,用第三个表达式替换第一个字符串表达式中字符替换函数,用第三个表达式替换第一个字符串表达式中包含的所有第二个字符表达式,并返回替换后的表达式包含的所有第二个字符表达式,并返回替换后的表达式RIGHT(字

43、符表达式,字符表达式,n)右子串函数,返回从字符串右边开始的右子串函数,返回从字符串右边开始的n个字符个字符RTRIM(字符表达式字符表达式)删除尾随空格函数,返回删除所有尾随空格的字符表达式删除尾随空格函数,返回删除所有尾随空格的字符表达式STR(数值表达式数值表达式 ,长,长度度n ,小数位,小数位)数字向字符转换函数,返回由数字转换过来的字符串,长度数字向字符转换函数,返回由数字转换过来的字符串,长度用于指定总长度,包括小数点,小数位指小数点右边的位数用于指定总长度,包括小数点,小数位指小数点右边的位数UPPER(字符表达式字符表达式)大写字母函数,返回指定表达式的大写字母表示大写字母函

44、数,返回指定表达式的大写字母表示例【6-9】:运用常用字符串函数计算A的ASCII码,SQL Server的前3个字符,数据库原理字符串的长度,将China转换为大写字母,将英语四级改为英语六级。T-SQL语句如下:SELECT NA的ASCII=ASCII(A), NSQL Server的前3个字符=LEFT(SQL Server,3), N数据库原理的长度=LEN(N数据库原理), N将China转换为大写字母=UPPER(China), N将英语四级改为英语六级=REPLACE(N英语四级,N四,N六)declare s varchar(50)set s=北京,欢迎您!select ri

45、ght(s,4)+left(s,2)将将北京北京,欢迎您欢迎您!变成变成欢迎您欢迎您! 北京北京select ASCII(loving) /*前往最左端字符的前往最左端字符的ascii码值码值Len用于前往指定字符串的字符而不是字节个数。select LEN(loving)select len(2019.10.01)select LEN (李小葱生日高兴!)declare s varchar(50)set s=2019年月欢庆北京申奥胜利年月欢庆北京申奥胜利-变成变成北京年月申奥胜利北京年月申奥胜利select substring(s,11,2)+LEFT(s,8)+RIGHT(s,4)sel

46、ect replicate(loving,3)select REPLACE(SQL SERVER,ER,loving)Replace函数将字符串中的子字符串交换为指定字符串函数将字符串中的子字符串交换为指定字符串Replicate函数用于指定的次数反复字符串表达式函数用于指定的次数反复字符串表达式select ASCII(loving)ascii函数前往最左端字符的函数前往最左端字符的ascii代码值。代码值。纯数字的字符串可以不用单引号,而其他字符表达式必需纯数字的字符串可以不用单引号,而其他字符表达式必需用用,否那么出错。否那么出错。子串交换函数子串交换函数格式:格式:STUFF字符表达式

47、字符表达式1,起始位置,长度,字,起始位置,长度,字符表达式符表达式2功能:用功能:用“字符表达式字符表达式2的值交换的值交换“字符表达式字符表达式1中中由由“起始位置和起始位置和“长度指明的一个子串。长度指明的一个子串。select STUFF(计算机等级考试计算机等级考试,4,2,专业专业)select STUFF(计算机等级考试计算机等级考试,6,0,二级二级)select charindex(l,I like football) 搜索的起始位置是1select charindex(l,I like football,4) 搜索的起始位置是4select charindex(l,I li

48、ke football,15) 搜索的起始位置是15Charindex函数前往字符串指定表达式的起始位置。函数前往字符串指定表达式的起始位置。6.5.3 日期和时间函数日期和时间函数日期和时间函数日期和时间函数描描 述述DAY(日期时间型数据日期时间型数据)返回指定日期的返回指定日期的“天天”部分的整数部分的整数GETDATE(日期时间型日期时间型数据数据)以标准格式返回本地服务器的以标准格式返回本地服务器的DATETIME值值DATEADD(时间间隔,时间间隔,数值表达式,日期数值表达式,日期)为为DATETIME值添加间隔。时间间隔项决定时间间隔值添加间隔。时间间隔项决定时间间隔的单位,可

49、取的单位,可取Year、Day of year(一年的日数一年的日数)、Quarter、Month、Day、Week、Weekday(一周的日一周的日数数)、Hour、Minute、Second、Millisecond。数值表。数值表达式为加上或者减去的时间间隔达式为加上或者减去的时间间隔DATEDIFF(时间间隔,时间间隔,日期日期1,日期,日期2)计算两个计算两个DATETIME值之间指定的日期部分的差,返值之间指定的日期部分的差,返回数值型数据。时间间隔项决定时间间隔的单位,取回数值型数据。时间间隔项决定时间间隔的单位,取值与值与DATEADD中的时间间隔项相同中的时间间隔项相同MONTH(日期时间型数日期时间型数据据)返回指定日期的返回指定日期的“月月”部分的整数部分的整数YEAR(日期时间型数据日期时间型数据)返回指定日期的返回指定日期的“年年”部分的整数部分的整数ConvertCONVERT() 函数是把日期转换为新数据类型的通用函数。CONVERT() 函数可以用不同的格式显示日期/时间数据。例如:convert(char(4),year(date1)例【6-10】:运用日期和时间函数显示当前日期,在当前日期后10天的日期,当前日期与2019年1月1日相隔的天数。T-SQL语句如下:SELECT N显示当前系统日期=GETDATE(),N在当前日期后10天的日期=D

温馨提示

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

评论

0/150

提交评论