数据库技术及应用第6章函数、游标、存储过程和触发器

上传人:小萌新****ao 文档编号:366268160 上传时间:2023-10-31 格式:PPT 页数:60 大小:513.50KB
返回 下载 相关 举报
数据库技术及应用第6章函数、游标、存储过程和触发器_第1页
第1页 / 共60页
数据库技术及应用第6章函数、游标、存储过程和触发器_第2页
第2页 / 共60页
数据库技术及应用第6章函数、游标、存储过程和触发器_第3页
第3页 / 共60页
数据库技术及应用第6章函数、游标、存储过程和触发器_第4页
第4页 / 共60页
数据库技术及应用第6章函数、游标、存储过程和触发器_第5页
第5页 / 共60页
点击查看更多>>
资源描述

《数据库技术及应用第6章函数、游标、存储过程和触发器》由会员分享,可在线阅读,更多相关《数据库技术及应用第6章函数、游标、存储过程和触发器(60页珍藏版)》请在金锄头文库上搜索。

1、 6.1.1 脚本脚本脚本是一种纯文本保存的小程序脚本是一种纯文本保存的小程序,它由一条条语句或命令组,它由一条条语句或命令组成。成。脚本程序在执行时脚本程序在执行时,由系统的,由系统的解释器解释器将其一条条语句或将其一条条语句或命令命令翻译翻译成机器可识别的指令。因为脚本是解释方式执行的,成机器可识别的指令。因为脚本是解释方式执行的,所以它的执行效率要稍低一些。各类脚本被广泛地应用于网所以它的执行效率要稍低一些。各类脚本被广泛地应用于网页设计中。页设计中。脚本也可以将脚本也可以将T-SQL语言中的语句或命令组织起来,实现一语言中的语句或命令组织起来,实现一个完整的功能个完整的功能。T-SQL

2、语言的脚本中可以使用变量、函数、语言的脚本中可以使用变量、函数、流程控制语句等,这就流程控制语句等,这就为解决复杂问题提供了方便为解决复杂问题提供了方便,可以,可以降降低低管理和使用数据库的复杂性。管理和使用数据库的复杂性。6.1.2 批批批是批是一起提交给一起提交给SQL Server服务器的一个或多个服务器的一个或多个T-SQL语句语句的集合,作为一个的集合,作为一个整体由整体由SQL Server服务器进行语法分析、服务器进行语法分析、优化、编译和执行优化、编译和执行。批以批以GO命令结束命令结束,但,但GO命令本身并不是命令本身并不是T-SQL语句,它仅语句,它仅作为一个批结束的标志。

3、作为一个批结束的标志。使用批时使用批时应注意以下几点应注意以下几点:(1)GO命令必须单独占用一行。命令必须单独占用一行。(2)所有所有CREATE语句应单独构成一个批。语句应单独构成一个批。(3)使用使用ALTER TABLE语句修改表结构后,不能在同一个批中语句修改表结构后,不能在同一个批中引用被修改或新增的列。引用被修改或新增的列。(4)一个批中可以有多个事务,一个事务中也可以有多个批,事一个批中可以有多个事务,一个事务中也可以有多个批,事务内批的数量不影响事务的提交或回滚操作。务内批的数量不影响事务的提交或回滚操作。6.1.3 注释符注释符注释用于对注释用于对SQL语句的作用、功能等给

4、出简要的解释和提示,语句的作用、功能等给出简要的解释和提示,注释也可以用于暂时禁用正在调试的部分注释也可以用于暂时禁用正在调试的部分SQL语句。语句。T-SQL语言中支持语言中支持两种类型的注释符两种类型的注释符,其格式如下:,其格式如下:-注释文本注释文本 /*注释文本注释文本*/“-”开始的注释为开始的注释为单行注释单行注释,从双减号开始到行尾均为注释。,从双减号开始到行尾均为注释。“/*”和和“*/”括起来的注释为括起来的注释为多行注释多行注释,注释长度不限。,注释长度不限。多行注释不能跨越批,整个注释必须包含在一个批内。多行注释不能跨越批,整个注释必须包含在一个批内。6.2.1 常量常

5、量常量的类型一般可由字面形式进行判断常量的类型一般可由字面形式进行判断。T-SQL语言中有如下几种常见语言中有如下几种常见的常量:的常量:(1)integer常量由正号、负号、数字常量由正号、负号、数字09组成,正号可以省略组成,正号可以省略。如。如746、-2895。(2)decimal常量由正号、负号、小数点、数字常量由正号、负号、小数点、数字09组成,正号可以省略。如组成,正号可以省略。如36.14、-7.52。(3)float和和real常量使用科学记数法表示。如常量使用科学记数法表示。如503.9E5、-3.86E-2。(4)字符串常量需用定界符单引号(字符串常量需用定界符单引号()

6、括起来。如果在字符串中包含单引号)括起来。如果在字符串中包含单引号本身,需用两个连续的单引号(本身,需用两个连续的单引号()表示,而中间没有任何字符的两个连)表示,而中间没有任何字符的两个连续的单引号(续的单引号()表示空串。如)表示空串。如Expo2010、中国上海中国上海、SQL99。(5)Unicode字符串常量是以标识符字符串常量是以标识符N(N必须大写)为前缀,再由定界符单必须大写)为前缀,再由定界符单引号(引号()括起来的字符串。如)括起来的字符串。如NExpo2010、N中国上海中国上海。(6)日期时间常量是用定界符单引号(日期时间常量是用定界符单引号()括起来的特定格式的字符串

7、。)括起来的特定格式的字符串。T-SQL提供并识别多种格式的日期提供并识别多种格式的日期/时间,使用时间,使用SET DATEFORMAT命令可命令可以设置日期格式。如以设置日期格式。如01-14-2019、01/14/2019、2019-01-14、2019/01/14、14:30:24、04:36 PM、2019-01-14 22:30:24。6.2.2 变量变量1、全局变量、全局变量全局变量是全局变量是SQL Server 2014系统内部使用的变量系统内部使用的变量,主要用主要用来记录来记录SQL Server服务器的配置设定值和活动状态值。全局服务器的配置设定值和活动状态值。全局变量

8、变量以以“”开头开头,由,由SQL Server自动定义并赋值,其作用自动定义并赋值,其作用范围是所有程序,用户可以引用全局变量但不能改变它的值。范围是所有程序,用户可以引用全局变量但不能改变它的值。下面是几个下面是几个SQL Server 2014中全局变量的名称及其功能:中全局变量的名称及其功能:error:返回最近一次执行:返回最近一次执行T-SQL语句的错误代码号,语句的错误代码号,0表示成功表示成功rowcount:返回最近一次:返回最近一次T-SQL语句所影响的数据行的行数,语句所影响的数据行的行数,0表表示不返回任何行示不返回任何行fetch_status:返回最近一次执行:返回

9、最近一次执行fetch语句的游标状态值,语句的游标状态值,0表示表示成功,成功,-1表示失败,指定位置超出结果集,表示失败,指定位置超出结果集,-2表示不存在该行表示不存在该行cursor_rows:返回当前打开的最后一个游标中还未被读取的有效:返回当前打开的最后一个游标中还未被读取的有效数据行的行数,数据行的行数,-1表示游标是动态的表示游标是动态的 6.2.2 变量变量2、局部变量、局部变量局部变量是用户自定义的变量,它仅声明它的批处理、存储过程或触发局部变量是用户自定义的变量,它仅声明它的批处理、存储过程或触发器等内部有效。器等内部有效。局部变量局部变量必须以必须以“”开头开头,且,且必

10、须先声明后才可使用必须先声明后才可使用。声明局部变量的。声明局部变量的格式如下格式如下:DECLARE 局部变量名局部变量名 AS ,n 这里的数据类型不能定义为这里的数据类型不能定义为text、ntext或或image数据类型。局部变量声数据类型。局部变量声明时不能同时赋初值,但系统会自动将其初始化为明时不能同时赋初值,但系统会自动将其初始化为null。T-SQL语言中采用语言中采用SET或或SELECT语句语句给局部变量赋值给局部变量赋值,格式如下格式如下:SET 局部变量名局部变量名=SELECT 局部变量名局部变量名=,n FROM,n WHERE 一条一条SET语句语句只能给一个变量

11、赋值只能给一个变量赋值,而一条,而一条SELECT语句语句可以给多个变可以给多个变量赋值量赋值。另外,。另外,SELECT语句也可以把查询的结果存放到局部变量中保语句也可以把查询的结果存放到局部变量中保存起来。存起来。6.2.2 变量变量3、PRINT语句语句变量的值可以用变量的值可以用PRINT语句向客户端用户显示,语句向客户端用户显示,PRINT语句语句的的格式如下格式如下:PRINT 字符串表达式可以是字符串常量、字符串变量以及用运算符字符串表达式可以是字符串常量、字符串变量以及用运算符“+”和字符函数构成的字符串。和字符函数构成的字符串。PRINT语句也可以语句也可以显示能够显示能够隐

12、式转换隐式转换为字符串类型的表达式的值。为字符串类型的表达式的值。6.2.3 运算符运算符(1)算术运算符算术运算符有:有:+(加)、(加)、-(减)、(减)、*(乘)、(乘)、/(除)、(除)、%(取余),(取余),%运算只能对运算只能对int、smallint或或tinyint类型的操类型的操作数进行。作数进行。(2)字符串运算符字符串运算符有:有:+(连接),连接就是将两个字符串首尾(连接),连接就是将两个字符串首尾连接,形成一个新的字符串。连接,形成一个新的字符串。(3)位运算符位运算符有:有:&(按位与)、(按位与)、|(按位或)、(按位或)、(按位取反)、(按位取反)、(按位异或)

13、。(按位异或)。(4)比较运算符比较运算符有:有:=(等于)、(等于)、(大于)、(大于)、=(大于或等于)、(大于或等于)、=(小于或等于)、(小于或等于)、(不等于)、(不等于)、!=(不等于)、(不等于)、!(不大于)、(不大于)、!(不小于)。(不小于)。(5)逻辑运算符逻辑运算符有:有:NOT(非)、(非)、AND(与)、(与)、OR(或)。(或)。6.3.1 块语句块语句块语句由位于块语句由位于BEGIN和和END之间的一组语句组成,其格式如之间的一组语句组成,其格式如下:下:BEGIN T-SQL语句语句,n END一个一个块语句逻辑上应视为一条语句块语句逻辑上应视为一条语句。B

14、EGIN和和END语句语句可以可以嵌套嵌套,即一个块语句中又可以包含另一个块语句。,即一个块语句中又可以包含另一个块语句。6.3.2 分支语句分支语句1、IF语句语句IF语句的语句的格式如下格式如下:IF 语句语句1 ELSE 语句语句2 语句语句1和语句和语句2都只能是一条语句(简单语句或块语句),语句都只能是一条语句(简单语句或块语句),语句1和语句和语句2本身也可以是本身也可以是IF语句,从而语句,从而形成形成IF语句的嵌套形式语句的嵌套形式。例例6.1 查询查询16005号学生的选课信息,如果该生没有选课,则显示号学生的选课信息,如果该生没有选课,则显示“16005号号学生没有选课记录

15、学生没有选课记录”。IF EXISTS(SELECT*FROM SC WHERE Sno=16005)SELECT*FROM SC WHERE Sno=16005 ELSE PRINT 16005号学生没有选课记录号学生没有选课记录!6.3.2 分支语句分支语句2、CASE表达式表达式CASE表达式返回其中一个符合条件的结果表达式的值。表达式返回其中一个符合条件的结果表达式的值。CASE表达式不是语句表达式不是语句,不能独立运行。有两种形式:,不能独立运行。有两种形式:简单简单CASE表达式表达式的格式如下:的格式如下:CASE WHEN THEN WHEN THEN ELSE END 6.3

16、.2 分支语句分支语句2、CASE表达式表达式搜索搜索CASE表达式表达式的格式如下:的格式如下:CASE WHEN THEN WHEN THEN ELSE END同一个同一个CASE表达式中各个表达式中各个、和和的数据类型必须相同或者可的数据类型必须相同或者可隐式转换。隐式转换。CASE表达式可以嵌套表达式可以嵌套,即一个,即一个CASE表达式可以出现在另一个表达式可以出现在另一个CASE表达式的结果表达式中。表达式的结果表达式中。6.3.2 分支语句分支语句2、CASE表达式表达式例例6.2 查询每个教师的工号、姓名和职称。要求职称按查询每个教师的工号、姓名和职称。要求职称按以下规以下规则显示:助教显示为初级,讲师显示为中级,教授和副教授则显示:助教显示为初级,讲师显示为中级,教授和副教授显示为高级。显示为高级。SELECT Tno,Tname,CASE Title WHEN 助教助教 THEN 初级初级 WHEN 讲师讲师 THEN 中级中级 ELSE 高级高级 END AS 职称职称 FROM T 6.3.2 分支语句分支语句2、CASE表达式表达式例例6.3 查询每个学生查询

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 电子/通信

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号