数据库原理与应用(SQLServer)第11章数据库程序设计课件.pptx

上传人(卖家):三亚风情 文档编号:3325352 上传时间:2022-08-20 格式:PPTX 页数:72 大小:737.98KB
下载 相关 举报
数据库原理与应用(SQLServer)第11章数据库程序设计课件.pptx_第1页
第1页 / 共72页
数据库原理与应用(SQLServer)第11章数据库程序设计课件.pptx_第2页
第2页 / 共72页
数据库原理与应用(SQLServer)第11章数据库程序设计课件.pptx_第3页
第3页 / 共72页
数据库原理与应用(SQLServer)第11章数据库程序设计课件.pptx_第4页
第4页 / 共72页
数据库原理与应用(SQLServer)第11章数据库程序设计课件.pptx_第5页
第5页 / 共72页
点击查看更多>>
资源描述

1、11.1 数据类型数据类型11.2 标识符、常量、标识符、常量、变量变量11.3 运算符与运算符与表达式表达式11.4 批处理批处理11.5 流程流程控制语句控制语句11.6 系统内置系统内置函数函数第第11章章 数据库程序设计数据库程序设计数据库原理与应用(SQL Server)1211.1 数据类型数据类型11.1.1 系统系统数据类型数据类型系统数据类型又称基本数据类型,常用的系统数据类型参见第6章6.3.2节。11.1.2 用户自定义数据类型用户自定义数据类型在SQL Server中,除提供的系统数据类型外,用户还可以自己定义数据类型。用户自定义数据类型根据基本数据类型进行定义,可将一

2、个名称用于一个数据类型,能更好说明该对象中保存值的类型,方便用户使用。例如student表和score表都有stno列,该列应有相同的类型,即均为字符型值、长度为6,不允许为空值,为了含义明确、使用方便,由用户定义一个数据类型,命名为:school_student_num,作为 student表和score表的stno列的数据类型。创建用户自定义数据类型应有以下三个属性:l 新数据类型的名称。l 新数据类型所依据的系统数据类型。l 为空性。数据库原理与应用(SQL Server)数据库原理与应用(SQL Server)311.1.2 用户用户自定义数据类型自定义数据类型1.创建用户自定义数据类

3、型创建用户自定义数据类型(1)使用图形界面方式定义【例11.1】使用图形界面创建用户自定义数据类型Employee_EmplID。(1)启动SQL Server Management Studio,在对象资源管理器中,展开“数据库”节点,选中“StoreSales”数据库,展开该数据库节点,展开“可编程性”节点,展开“类型”节点,右单击“用户定义数据类型”选项,在弹出的快捷菜单中选择“新建用户定义数据类型”命令,出现“新建用户定义数据类型”窗口。(2)在“名称”文本框中输入自定义的数据类型名称,此处是 Employee_EmplID。在“数据类型”下拉框中选择自定义数据类型的系统数据类型,此处

4、是char。在“长度”栏中输入要定义的数据类型的长度,此处是4。其他选项使用默认值,如图11.1所示,单击“确定”按钮,完成用户自定义数据类型的创建。数据库原理与应用(SQL Server)411.1.2 用户自定义数据类型用户自定义数据类型图11.1 “新建用户定义数据类型”窗口数据库原理与应用(SQL Server)5(2)使用CREATE TYPE命令定义使用CRETAE TYPE语句来实现用户数据类型的定义的语法格式如下:语法格式:语法格式:CREATE TYPE schema_name.type_name FROM base_type (precision ,scale )NULL|

5、NOT NULL ;说明:说明:type_name为指定用户自定义数据类型名称,base_type为用户自定义数据类型所依据的系统数据类型。11.1.2 用户自定义数据类型用户自定义数据类型数据库原理与应用(SQL Server)6【例11.2】使用CREATE TYPE命令创建用户自定义数据类型Employee_EmplID。CREATE TYPE Employee_EmplIDFROM char(4)NOT NULL 该语句创建了用户自定义数据类型Employee_EmplID。2.删除用户自定义数据类型删除用户自定义数据类型(1)使用图形界面方式删除如果要删除用户自定义数据类型,例如删除

6、用户自定义数据类型school_student_num,选择该类型,右单击鼠标,在弹出的快捷菜单中选择“删除”命令,在打开的“删除对象”窗口中单击“确定”按钮即可。(2)使用DROP TYPE命令删除使用DROP TYPE语句删除自定义数据类型的语法格式如下:11.1.2 用户自定义数据类型用户自定义数据类型数据库原理与应用(SQL Server)7语法格式:语法格式:DROP TYPE schema_name.type_name ;例如,删除前面定义的类型Employee_EmplID的语句为:DROP TYPE Employee_EmplID 3.使用用户自定义数据类型定义列使用用户自定义

7、数据类型定义列使用用户自定义数据类型定义列,采用图形界面方式和T-SQL命令两种方式实现,可以参照3.4.1节和4.4.2节,不同点只是数据类型是用户自定义数据类型,而不是系统数据类型。例如,采用图形界面方式,使用用户自定义数据类型Employee_EmplID定义Employee表EmplID列。【例11.3】采用命令方式,使用用户自定义数据类型Employee_EmplID定义Employee表EmplID列。11.1.2 用户自定义数据类型用户自定义数据类型数据库原理与应用(SQL Server)8USE StoreSalesCREATE TABLE Employee(EmplID Em

8、ployee_EmplID NOT NULL PRIMARY KEY,EmplName char(8)NOT NULL,Sex char(2)NOT NULL,Birthday date NOT NULL,Address char(20)NULL,Wages money NOT NULL,DeptID char(4)NOT NULL)GO 该语句创建Employee表,与以前不同的是在定义EmplID列时引用了用户自定义数据类型Employee_EmplID。11.1.2 用户自定义数据类型用户自定义数据类型数据库原理与应用(SQL Server)911.1.3 用户自定义用户自定义表表数据类

9、型数据类型创建自定义表数据类型使用CREATE TYPE语句,其语法格式如下:语法格式:语法格式:CREATE TYPE schema_name.type_name AS TABLE(,.n );说明:说明:是对列的描述,包含列名、数据类型、为空性、约束等。定义表的约束。数据库原理与应用(SQL Server)10【例11.4】创建用户自定义表数据类型,包含订单表的所有列。USE StoreSalesCREATE TYPE SalesOrder_TableType AS TABLE(OrderID char(6)NOT NULL PRIMARY KEY,EmplID char(4),Curst

10、omerID char(4),SaleDate date NOT NULL,Cost money NOT NULL)该语句创建用户自定义表数据类型SalesOrder_TableType,包含订单表的员工号、客户号、销售日期、总金额等列及其数据类型、为空性、主键约束等。11.1.3 用户自定义用户自定义表表数据类型数据类型数据库原理与应用(SQL Server)1111.2 标识符标识符、常量、变量、常量、变量11.2.1 标识符标识符标识符用于定义服务器、数据库、数据库对象、变量等的名称,包括常规标识符和分隔标识符两类。1.常规标识符常规标识符常规标识符就是不需要使用分隔标识符进行分隔的标识

11、符,它以字母、下划线(_)、或#开头,可后续一个或若干个ASCII字符、Unicode字符、下划线(_)、美元符号($)、或#,但不能全为下划线(_)、或#。2.分隔标识符分隔标识符包含在双引号()或者方括号()内的常规标识符或不符合常规标识符规则的标识符。标识符允许的最大长度为128个字符,符合常规标识符格式规则的标识符可以分隔、也可以不分隔,对不符合标识符规则的标识符必须进行分隔。数据库原理与应用(SQL Server)1211.2.2 常量常量常量是在程序运行中其值不能改变的量,又称为标量值。常量使用格式取决于值的数据类型,可分为整型常量、实型常量、字符串常量、日期时间常量、货币常量等。

12、1.整型常量整型常量整型常量分为二进制整型常量、十六进制整型常量和十进制整型常量。(1)十进制整型常量不带小数点的十进制数,例如:58、2491、+138 649 427、-3 694 269 714。(2)二进制整型常量的表示二进制数字串,用数字 0 或1组成,例如101011110,10110111。(3)十六进制整型常量的表示前辍 0 x 后跟十六进制数字串表示。例如:0 x1DA、0 xA2F8、0 x37DAF93EFA、0 x(0 x为空十六进制常量)。2.实型常量实型常量实型常量有定点表示和浮点表示两种方式。数据库原理与应用(SQL Server)13定点表示举例如下:24.73

13、795.408+274958149.4876-5904271059.83浮点表示举例如下:0.7E-3285.7E5+483E-2-18E43.字符串常量字符串常量字符串常量有ASCII字符串常量和Unicode 字符串常量。(1)ASCII字符串常量ASCII字符串常量是用单引号括起来,由ASCII字符构成的符号串,举例如下:WorldHow are you!11.2.2 常量常量数据库原理与应用(SQL Server)14(2)Unicode 字符串常量Unicode 字符串常量与ASCII字符串常量相似,不同的是它前面有一个N标识符,N前缀必须大写,举例如下:N WorldN How a

14、re you!4.日期时间常量日期时间常量日期时间常量用单引号将表示日期时间的字符串括起来构成,有以下格式的日期和时间:字母日期格式,例如:June 25,2011数字日期格式,例如:9/25/2012、2013-03-11未分隔的字符串格式,例如:20101026时间常量:15:42:47、09:38:AM日期时间常量:July 18,2010 16:27:085.货币常量货币常量货币常量是以“$”作为前缀的一个整型或实型常量数据,例如:$38、$1842906、-$26.41、+$27485.13。11.2.2 常量常量数据库原理与应用(SQL Server)1511.2.3 变变量量变量

15、是在程序运行中其值可以改变的量,一个变量应有一个变量名,变量名必须是一个合法的标识符。变量分为局部变量和全局变量两类。1.局部变量局部变量局部变量由用户定义和使用,局部变量名称前有“”符号,局部变量仅在声明它的批处理或过程中有效,当批处理或过程执行结束后变成无效。(1)局部变量的定义使用 DECLARE 语句声明局部变量,所有局部变量在声明后均初始化为NULL,局部变量语法格式如下:语法格式:语法格式:DECLARE local_variable data_type=value,.n 说明说明:数据库原理与应用(SQL Server)16 ocal_variable:局部变量名,前面的表示是局

16、部变量。data_type:用于定义局部变量的类型。=value:为变量赋值。n:表示可定义多个变量,各变量间用逗号隔开。(2)局部变量的赋值在定义局部变量后,可使用SET语句或SELECT语句赋值。(1)使用SET语句赋值使用SET语句赋值语法格式如下:语法格式:语法格式:SET local_variableexpression 其中,local_variable是除 cursor、text、ntext、image、table外的任何类型的变量名,变量名必须以“”符号开头。expression是任何有效的SQL Server表达式。11.2.3 变变量量数据库原理与应用(SQL Server

17、)17注意注意:为局部变量赋值,该局部变量必须首先使用DECLARE语句定义。【例11.5】创建两个局部变量并赋值,然后输出变量值。DECLARE var1 char(10),var2 char(20)SET var1=孙康 SET var2=是电子工程学院的学生 SELECT var1+var2 该语句定义两个局部变量后采用SET语句赋值,将两个变量的字符值连接后输出。语句执行结果:语句执行结果:-孙康 是电子工程学院的学生 11.2.3 变变量量数据库原理与应用(SQL Server)18【例11.6】创建一个局部变量,在SELECT语句中使用该变量查找部门号为D001的员工的学号、姓名、

18、性别。USE StoreSalesDECLARE DtID char(4)SET DtID=D001 SELECT EmplID,EmplName,Sex FROM Employee WHERE DeptID=DtID 该语句采用SET语句给局部变量赋值,再将变量值赋给DeptID列进行查询输出。语句执行结果:语句执行结果:EmplID EmplName Sex-E001 孙勇诚 男E005 廖小玉 女E006 李清林 男11.2.3 变变量量数据库原理与应用(SQL Server)1911.2.3 变变量量【例11.7】将查询结果赋给局部变量。USE StoreSalesDECLARE Em

19、Name char(8)SET EmName=(SELECT EmplName FROM Employee WHERE EmplID=E005)SELECT EmName 该语句定义局部变量后,将查询结果赋给局部变量。语句执行结果:语句执行结果:-廖小玉(2)使用SELECT语句赋值使用SELECT语句赋值,其语法格式如下:数据库原理与应用(SQL Server)20语法语法格式:格式:SELECT local_variable=expression,n其中,local_variable是除 cursor、text、ntext、image 外的任何类型变量名,变量名必须以开头。expressi

20、on是任何有效的SQL Server表达式,包括标量子查询。n表示可给多个变量赋值。【例11.8】使用SELECT语句赋值给变量。USE StoreSalesDECLARE No char(4),Name char(8)SELECT No=EmplID,Name=EmplNameFROM EmployeeWHERE DeptID=D001PRINT No+Name 该语句定义局部变量后,使用SELECT语句赋值给变量,采用屏幕输出语句输出。11.2.3 变变量量数据库原理与应用(SQL Server)21语句执行结果:语句执行结果:E006 李清林 说明:说明:PRINT语句是屏幕输出语句,该

21、语句用于向屏幕输出信息,可输出局部变量、全局变量、表达式的值。2.全局变量全局变量全局变量由系统定义,在名称前加“”符号,用于提供当前的系统信息。T-SQL 全局变量作为函数引用,例如,ERROR返回执行上次执行的T-SQL语句的错误编号,CONNECTIONS返回自上次启动SQL Server以来连接或试图连接的次数。11.2.3 变变量量数据库原理与应用(SQL Server)2211.3 运算符与表达式运算符与表达式运算符是一种符号,用来指定在一个或多个表达式中执行的操作,SQL Server的运算符有:算术运算符、位运算符、比较运算符、逻辑运算符、字符串连接运算符、赋值运算符、一元运算

22、符等。11.3.1 算术运算符算术运算符算术运算符在两个表达式间执行数学运算,这两个表达式可以是任何数字数据类型。算术运算符有:+(加)、-(减)、*(乘)、/(除)和%(求模)五种运算。+(加)和(减)运算符也可用于对datetime及smalldatetime值进行算术运算。表达式是由数字、常量、变量和运算符组成的式子,表达式的结果是一个值。11.3.2 位运算符位运算符位运算符用于对两个表达式进行的位操作,这两个表达式可为整型或与整型兼容的数据类型,位运算符如表11.2所示。数据库原理与应用(SQL Server)2311.3.2 位位运算符运算符表11.2 位运算符运算符运算名称运算规

23、则&按位与两个位均为1时,结果为1,否则为0|按位或只要一个位为1,结果为1,否则为0按位异或两个位值不同时,结果为1,否则为0【例11.9】对两个变量进行按位运算。DECLARE a int,b intSET a=7SET b=4SELECT a&b AS a&b,a|b AS a|b,ab AS ab 该语句对两个变量分别进行按位与、按位或、按位异或运算。数据库原理与应用(SQL Server)24语句执行结果:语句执行结果:a&b a|b ab-4 7 3 11.3.3 比较运算符比较运算符比较运算符用于测试两个表达式的值是否相同,它的运算结果返回TRUE、FALSE或 UNKNOWN之

24、一,SQL Server比较运算符如表11.3所示,11.3.2 位位运算符运算符表11.3 比较运算符运算符运算名称运算符运算名称=相等 大于、!=不等于 小于!=大于或等于!不大于数据库原理与应用(SQL Server)2511.3.4 逻辑逻辑运算符运算符逻辑运算符用于对某个条件进行测试,运算结果为TRUE或FALSE,逻辑运算符如表11.4所示。表11.4 逻辑运算符运算符运算规则AND如果两个操作数值都为TRUE,运算结果为 TRUE。OR如果两个操作数中有一个为TRUE,运算结果为TRUE。NOT若一个操作数值为TRUE,运算结果为FALSE,否则为TRUE。ALL如果每个操作数值

25、都为TRUE,运算结果为TRUE。ANY在一系列操作数中只要有一个为 TRUE,运算结果为TRUE。BETWEEN如果操作数在指定的范围内,运算结果为TRUE。EXISTS如果子查询包含一些行,运算结果为TRUE。IN如果操作数值等于表达式列表中的一个,运算结果为TRUE。LIKE如果操作数与一种模式相匹配,运算结果为TRUE。SOME如果在一系列操作数中,有些值为TRUE,运算结果为TRUE。使用LIKE运算符进行模式匹配时,用到的通配符如表11.5所示。数据库原理与应用(SQL Server)26表11.5 通配符列表11.3.4 逻辑逻辑运算符运算符通配符说明%代表0个或多个字符。_(下

26、划线)代表单个字符。指定范围(如:a-f、0-9)或集合(如abcdef)中的任何单个字符。指定不属于范围(如:a-f、0-9)或集合(如:abcdef)的任何单个字符。11.3.5 字符串连接运算符字符串连接运算符字符串连接运算符通过运算符“+”实现两个或多个字符串的连接运算。【例11.10】多个字符串连接。SELECT(ab+cdefg+hijk)AS 字符串连接 该语句进行了多个字符串连接。数据库原理与应用(SQL Server)27语句执行结果:语句执行结果:字符串连接-Abcdefghijk11.3.6 赋值运算符赋值运算符在给局部变量赋值的SET和SELECT语句中使用的“=”运算

27、符,称为赋值运算符。赋值运算符用于将表达式的值赋予另外一个变量,也可以使用赋值运算符在列标题和为列定义值的表达式之间建立关系,参见6.2.3中局部变量赋值部分。11.3.7 一元运算符一元运算符一元运算符指只有一个操作数的运送符,包含+(正)、-(负)和(按位取反)。按位取反运算符的使用举例如下:设a的值为9(1001),则a的值为6(0110)。11.3.5 字符字符串连接串连接运算符运算符数据库原理与应用(SQL Server)2811.3.8 运算符优先级运算符优先级当一个复杂的表达式有多个运算符时,运算符优先级决定执行运算的先后次序,执行的顺序会影响所得到的运算结果。运算符优先级如表1

28、1.6所示,在一个表达式中按先高(优先级数字小)后低(优先级数字大)的顺序进行运算。表11.6 运算符优先级列表运 算 符优 先 级+(正)、-(负)、(按位 NOT)1*(乘)、/(除)、%(模)2+(加)、+(串联)、-(减)3=,=,=,!=,!,!80 BEGIN PRINT 课程:1002 PRINT 平均成绩良好 ENDELSE BEGIN PRINT 课程:1002 PRINT 平均成绩一般 END 该语句采用了IFELSE语句,在IF和ELSE后面分别使用了BEGINEND语句块。11.5.2 条件语句条件语句数据库原理与应用(SQL Server)42语句执行结果:语句执行结

29、果:课程:102平均成绩良好11.4.3 循环语句循环语句1WHILE循环语句循环语句程序中的一部分语句需要重复执行时,可以使用WHILE循环语句来实现,它的语法格式如下:语法格式:语法格式:WHILE Boolean_expression /*条件表达式*/sql_statement|statement_block /*T-SQL语句序列构成的循环体*/WHILE循环语句的执行流程如图11.3所示。11.5.2 条件语句条件语句数据库原理与应用(SQL Server)4311.5.3 循环循环语句语句图11.3 WHILE语句的流程图从WHILE语句的流程图可看出其使用形式如下:WHILE

30、条件表达式 循环体 /*T-SQL语句或语句块*/数据库原理与应用(SQL Server)44首先进行条件判断,当条件表达式值为真时,执行循环体的中的T-SQL语句或语句块;然后,再进行条件判断,当条件表达式值为真时,重复执行上述操作;直至条件表达式值为假,退出循环体,执行WHILE语句的下一条语句。在循环体中,可进行WHILE语句的嵌套。【例11.15】显示字符串Work中每个字符的 ASCII 值和字符。DECLARE pn int,sg char(8)SET pn=1SET sg=WorkWHILE pn=LEN(sg)BEGIN SELECT ASCII(SUBSTRING(sg,pn

31、,1),CHAR(ASCII(SUBSTRING(sg,pn,1)SET pn=pn+1 END 11.5.3 循环循环语句语句数据库原理与应用(SQL Server)45该语句采用了WHILE循环语句,循环条件为小于或等于字符串Work的长度值,在循环体中使用了BEGINEND语句块,执行结果如图11.4所示。11.5.3 循环循环语句语句图11.4 WHILE循环语句执行结果数据库原理与应用(SQL Server)462BREAK语句语句BREAK语句语法格式如下:语法语法格式格式 BREAK 在循环语句中用于退出本层循环,当循环体中有多层循环嵌套时,使用BREAK语句只能退出其所在的本层

32、循环。3CONTINUE语句语句CONTINUE语句语法格式如下:语法格式语法格式 CONTINUE在循环语句中用于结束本次循环,重新转入循环开始条件的判断。11.5.3 循环循环语句语句数据库原理与应用(SQL Server)4711.5.4 无条件转移无条件转移语句语句GOTO语句用于实现无条件的跳转,将执行流程转移到标号指定的位置,其语法格式如下:语法格式:语法格式:GOTO label 其中,Label是要跳转的语句标号,标号必须符合标识符规则。标号的定义形式为:label:语句【例11.16】计算从1加到100的和。DECLARE sm int,i int SET i=0数据库原理与

33、应用(SQL Server)48SET sm=0lp:SET sm=sm+i SET i=i+1IF i=100 GOTO lp PRINT 1+2+.+100=+CAST(sm AS char(10)该语句采用了GOTO语句。语句执行结果:语句执行结果:1+2+.+100=5050 11.5.4 无条件转移无条件转移语句语句数据库原理与应用(SQL Server)4911.5.5 返回返回语句语句RETURN语句用从查询语句块、存储过程或者批处理中无条件退出,位于RETURN之后的语句将不被执行,其语法格式如下:语法格式:语法格式:RETURN integer_expression 其中,i

34、nteger_expression将整型表达式的值返回。11.5.6 等待等待语句语句指定语句块、存储过程或事务执行的时刻、或需等待的时间间隔。语法格式:语法格式:WAITFOR DELAY time|TIME time 其中,DELAY time 用于指定SQL Server必须等待的时间,TIME time 用于指定SQL Server 等待到某一时刻。数据库原理与应用(SQL Server)5011.5.7 错误处理错误处理语句语句TRYCATCH语句用于对T-SQL语言中的错误进行处理,其语法格式如下:语法格式:语法格式:BEGIN TRY sql_statement|statemen

35、t_block END TRYBEGIN CATCH sql_statement|statement_block END CATCH;数据库原理与应用(SQL Server)5111.6 系统内置函数系统内置函数T-SQL语言提供三种系统内置函数:标量函数、聚合函数、行集函数,所有函数都是确定性的或确定性的。例如,DATEADD 内置函数是确定性函数,因为对于其任何给定参数总是返回相同的结果。GETDATE 是非确定性函数,因其每次执行后,返回结果都不同。标量函数的输入参数和返回值的类型均为基本类型,SQL Server包含的标量函数如下:数学函数;字符串函数;日期和时间函数;系统函数;配置函

36、数;系统统计函数;游标函数;文本和图像函数;元数据函数;安全函数。数据库原理与应用(SQL Server)52下面介绍常用的标量函数。1.数学函数数学函数数学函数用于对数字表达式进行数学运算并返回运算结果,常用的数学函数如表11.8所示。11.6 系统内置函数系统内置函数表11.8 数学函数表函数描述ABS返回数值表达式的绝对值EXP返回指定表达式以e为底的指数CEILING返回大于或等于数值表达式的最小整数FLOOR返回小于或等于数值表达式的最大整LN返回数值表达式的自然对数LOG返回数值表达式以10为底的对POWER返回对数值表达式进行幂运算的结果RAND返回0到1之间的一个随机值ROUN

37、D返回舍入到指定长度或精度的数值表达式SIGN返回数值表达式的正号(+)、负号(-)或零(0)SQUARE返回数值表达式的平方SQRT返回数值表达式的平方根数据库原理与应用(SQL Server)53下面举例说明数学函数的使用。(1)ABS函数ABS函数用于返回数值表达式的绝对值,其语法格式如下:语法格式:语法格式:ABS(numeric_expression)其中,参数numeric_expression为数字型表达式,返回值类型与numeric_expression 相同。【例11.17】ABS函数对不同数字的处理结果 SELECT ABS(-5.8),ABS(0.0),ABS(+7.4)

38、该语句采用了ABS函数分别求负数、零和正数的绝对值。11.6 系统内置函数系统内置函数数据库原理与应用(SQL Server)54语句执行结果:语句执行结果:-5.8 0.0 7.4(2)RAND函数RAND函数用于返回0到1之间的一个随机值,它的语法格式如下:语法格式:语法格式:RAND(seed )其中,参数seed是指定种子值的整型表达式,返回值类型为float。如果未指定种子值,则随机分配种子值;当指定种子值时,返回的结果相同。11.6 系统内置函数系统内置函数数据库原理与应用(SQL Server)55【例11.18】通过 RAND 函数产生随机数 DECLARE count int

39、SET count=8SELECT RAND(count)AS Random_Number 该语句采用了RAND函数求随机数。语句执行结果:语句执行结果:R Random_Number-0.713722424011731 2.字符串函数字符串函数字符串函数用于对字符串、二进制数据和表达式进行处理,常用的字符串函数如表11.9所示。11.6 系统内置函数系统内置函数数据库原理与应用(SQL Server)5611.6 系统内置函数系统内置函数表11.9 字符串函数表函数描述ASCIIASCII函数,返回字符表达式中最左侧的字符的ASCII代码值CHARASCII代码转换函数,返回指定ASCII代

40、码的字符CHARINDEX返回指定模式的起始位置LEFT左子串函数,返回字符串中从左边开始指定个数的字符LEN字符串函数,返回指定字符串表达式的字符(而不是字节)数,其中不包含尾随空格LOWER小写字母函数,将大写字符数据转换为小写字符数据后返回字符表达式LTRIM删除前导空格字符串,返回删除了前导空格之后的字符表达式REPLACE替换函数,用第三个表达式替换第一个字符串表达式中出现的所有第二个指定字符串表达式的匹配项REPLICATE复制函数,以指定的次数重复字符表达式RIGHT右子串函数,返回字符串中从右边开始指定个数的字符RTRIM删除尾随空格函数,删除所有尾随空格后返回一个字符串SPA

41、CE空格函数,返回由重复的空格组成的字符串STR数字向字符转换函数,返回由数字数据转换来的字符数据SUBSTRING子串函数,返回字符表达式、二进制表达式、文本表达式或图像表达式的一部分UPPER大写函数,返回小写字符数据转换为大写的字符表达式数据库原理与应用(SQL Server)57(1)LEFT函数LEFT函数用于返回字符串中从左边开始指定个数的字符,它的语法格式如下:语法格式:语法格式:LEFT(character_expression,integer_expression)其中,参数character_expression为字符型表达式,integer_expression为整型表达

42、式,返回值为varchar型。【例11.19】返回部门名最左边的2个字符。USE StoreSalesSELECT DISTINCT LEFT(DeptName,2)FROM Department 该语句采用了LEFT函数求部门名最左边的2个字符。11.6 系统内置函数系统内置函数数据库原理与应用(SQL Server)58语句执行结果:语句执行结果:-经理人事物资销售 (2)LTRIM函数LTRIM函数用于删除字符串中的前导空格,并返回字符串,它的语法格式如下:语法格式:语法格式:LTRIM(character_expression)其中,参数character_expression为字符型

43、表达式,返回值类型为varchar。11.6 系统内置函数系统内置函数数据库原理与应用(SQL Server)59【例11.20】使用 LTRIM 函数删除字符串中的起始空格。DECLARE string varchar(30)SET string=分布式文件系统SELECT LTRIM(string)该语句采用了LTRIM函数删除字符串中的前导空格并返回字符串。语句执行结果:语句执行结果:-分布式文件系统(3)REPLACE函数REPLACE函数用第三个字符串表达式替换第一个字符串表达式中包含的第二个字符串表达式,并返回替换后的表达式,它的语法格式如下:11.6 系统内置函数系统内置函数数据

44、库原理与应用(SQL Server)60语法格式:语法格式:REPLACE(string_expression1,string_expression2,string_expression3)其中,参数string_expression1、string_expression2和string_expression3均为字符串表达式。返回值为字符型。【例11.21】用REPLACE函数实现字符串的替换。DECLARE str1 char(16),str2 char(4),str3 char(16)SET str1=云计算教程SET str2=教程SET str3=概论SET str3=REPLACE

45、(str1,str2,str3)SELECT str3 该语句采用了REPLACE函数实现字符串的替换。11.6 系统内置函数系统内置函数数据库原理与应用(SQL Server)61语句执行结果语句执行结果:-云计算概论(4)SUBSTRING函数SUBSTRING函数用于返回表达式中指定的部分数据,它的语法格式如下:语法格式:语法格式:SUBSTRING(expression,start,length)其中,参数expression可为字符串、二进制串、text、image字段或表达式;Start、Length均为整型,Start指定子串的开始位置,Length指定子串的长度(要返回的字节数

46、)。【例11.22】在一列中返回员工表中的姓,在另一列中返回表中员工的名。11.6 系统内置函数系统内置函数数据库原理与应用(SQL Server)62USE StoreSalesSELECT SUBSTRING(EmplName,1,1),SUBSTRING(EmplName,2,LEN(EmplName)-1)FROM EmployeeORDER BY EmplID 该语句采用了SUBSTRING函数分别求“姓名”字符串中的子串“姓”和子串“名”。语句执行结果:语句执行结果:-孙 勇诚罗 秀文刘 强徐 莉思廖 小玉李 清林11.6 系统内置函数系统内置函数数据库原理与应用(SQL Serv

47、er)63(5)CHARINDEX函数CHARINDEX函数用于在表达式2 中搜索 表达式1 并返回其起始位置(如果找到),它的语法格式如下:语法格式:语法格式:CHARINDEX(expression1,expression2 ,start_location )其中,expression1为包含要查找的序列的字符表达式,,expression2为要搜索的字符表达式,start_location表示搜索起始位置的整数或 bigint 表达式。3.日期时间函数日期时间函数日期和时间函数用于对日期和时间数据进行各种不同的处理和运算,返回日期和时间值、字符串和数值等,常用的日期时间函数如表11.10

48、所示。11.6 系统内置函数系统内置函数数据库原理与应用(SQL Server)64表11.10 日期时间函数表11.6 系统内置函数系统内置函数函数描述DATEADD返回给指定日期加上一个时间间隔后的新datetime值。DATEDIFF返回跨两个指定日期的日期边界数和时间边界数。DATENAME返回表示指定日期的指定日期部分的字符串。DATEPART返回表示指定日期的指定日期部分的整数。DAY返回一个整数,表示指定日期的天datepart部分。GETDATE以datetime值的SQL Server 2008标准内部格式返回当前系统日期和时间。GETUTCDATE返回表示当前的UTC时间(

49、通用协调时间或格林尼治标准时间)的datetime值。当前的UTC时间得自当前的本地时间和运行Microsoft SQL Server 2008实例的计算机操作系统中的时区设置。MONTH返回表示指定日期的“月”部分的整数。YEAR返回表示指定日期的年份的整数。在表11.10中,有关datepart的取值如表11.11所示。数据库原理与应用(SQL Server)65表11.11 datepart的取值11.6 系统内置函数系统内置函数Datepart取值缩写形式函数返回的值Datepart取值缩写形式函数返回的值Yearyy,yyyy年份Weekwk,ww第几周Quarterqq,q季度Ho

50、urhh小时Monthmm,m月Minutemi,n分钟Dayofyeardy,y一年的第几天Secondss,s秒Daydd,d日Millisecondms毫秒【例11.23】依据员工出生时间计算年龄。USE StoreSalesSET NOCOUNT ONDECLARE startdt datetimeSET startdt=GETDATE()SELECT EmplName AS 姓名,DATEDIFF(yy,Birthday,startdt)AS 年龄 FROM Employee数据库原理与应用(SQL Server)66 该语句通过GETDATE函数获取当前系统日期和时间,采用DATE

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 办公、行业 > 各类PPT课件(模板)
版权提示 | 免责声明

1,本文(数据库原理与应用(SQLServer)第11章数据库程序设计课件.pptx)为本站会员(三亚风情)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!


侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|