第8章 SQL Server的编程结构 2021/2/20 Information College. ChangJun
2021/2/20 Information College · ChangJun 1 第8章 SQL Server 的编程结构
[本章概要] 81基本概念 82变量 83函数 84流程控制语句 85游标 86事务 2021/2/20 Information College. ChangJun
2021/2/20 Information College · ChangJun 2 [本章概要] 8.1 基本概念 8.2 变量 8.3 函数 8.4 流程控制语句 8.5 游标 8.6 事务
81编程结构基本概念 81.1注释语句 66/k9 和“*”括起来表示可进行部分 单行或多行语句的注释。 “-表示只可进行单行语句的注释。 养成良好的书写注释的习惯 2021/2/20 Information College. ChangJun
2021/2/20 Information College · ChangJun 3 8.1 编程结构基本概念 8.1.1 注释语句 l “/*” 和“*/”括起来表示可进行部分、 单行或多行语句的注释。 l “--”表示只可进行单行语句的注释。 l 养成良好的书写注释的习惯
8.1.2脚本和批处理 1、脚本( script) 是存储在文件中用于执行某项操作的一系列 Transact-SQL语句集合。 Transact-S哑L脚本文件通常带有.sq1扩展名 Transact-SL脚本可以用于: a)保存用于创建和填充服务器上的数据库 的操作的永久复本(备份机制)。 b)必要时将语句从一台计算机转移到另 台计算机。 c)通过让新雇员发现代码中的问题、了解 代码或更改代码从而快速对其进行培训。 2021/2/20 Information College. ChangJun
2021/2/20 Information College · ChangJun 4 8.1.2 脚本和批处理 1、脚本(script) 是存储在文件中用于执行某项操作的一系列 Transact-SQL 语句集合。 Transact-SQL脚本文件通常带有 .sql 扩展名。 Transact-SQL脚本可以用于: a) 保存用于创建和填充服务器上的数据库 的操作的永久复本(备份机制)。 b) 必要时将语句从一台计算机转移到另一 台计算机。 c) 通过让新雇员发现代码中的问题、了解 代码或更改代码从而快速对其进行培训
2、批处理( batch) 批处理是客户端作为一个单元发出的一个或多 个SQL语句的集合。它们作为一个组一起提交给服 务器并加以执行。 服务器将每个批处理编译为一个执行计划。 Transact-SQL脚本包含一个或多个批处理。G0 命令作为批处理结束的标志。如果 Transact-SL 脚本没有G0命令,则将它作为单个批处理执行。 批处理的方法: a) Create Table、 Create view只能单独放 在一个批中。 b)使用事务来保证批处理 c)包含存储过程的批处理,除第一个可以 不用EXEC来执行,其余都必须用 2021/2/20 Information College. ChangJun
2021/2/20 Information College · ChangJun 5 2、批处理 (batch) 批处理是客户端作为一个单元发出的一个或多 个 SQL 语句的集合。它们作为一个组一起提交给服 务器并加以执行。 服务器将每个批处理编译为一个执行计划。 Transact-SQL脚本包含一个或多个批处理。GO 命令作为批处理结束的标志。如果 Transact-SQL 脚本没有 GO 命令,则将它作为单个批处理执行。 批处理的方法: a) Create Table、Create View只能单独放 在一个批中。 b) 使用事务来保证批处理 c) 包含存储过程的批处理,除第一个可以 不用EXEC来执行,其余都必须用
8.2变量 Transact-SQL中可以使用两种变量: 局部变量和全局变量。 8.2.1局部变量 局部变量是用户可自定义的变量,它的作用 围仅在一个批内。特点: 1、在程序中通常用来储存从表中查询到的 数据,或当作程序执行过程中暂存变量使用 2、局部变量必须以@开头,而且必须先用 DECLARE命令说明。其说明形式如下: DECLARE@变量名变量类型[,n] 3、必须使用 SELECT或SET命令来设定变量 的值。 2021/2/20 Information College. ChangJun
2021/2/20 Information College · ChangJun 6 8.2 变量 Transact-SQL 中可以使用两种变量: 局部变量和全局变量。 8.2.1 局部变量 局部变量是用户可自定义的变量,它的作用 范围仅在一个批内。特点: 1、在程序中通常用来储存从表中查询到的 数据,或当作程序执行过程中暂存变量使用。 2、局部变量必须以@开头,而且必须先用 DECLARE 命令说明。其说明形式如下: DECLARE @变量名 变量类型[,...n] 3、必须使用SELECT或SET 命令来设定变量 的值
其语法如下 SELECT@局部变量=变量值 (或)SET@局部变量量=变量值 例如: 声明一个长度为8个字符的变量id, 并赋值。 declare (@id char(8) select id=10010001> 或 set @id=10010001 2021/2/20 Information College. ChangJun
2021/2/20 Information College · ChangJun 7 其语法如下: SELECT @局部变量= 变量值 (或)SET @局部变量量= 变量值 例如: 声明一个长度为 8 个字符的变量id, 并赋值。 declare @id char(8) select @id =‘10010001’ 或 set @id =‘10010001’
8.2.2全局变量 全局变量是 SQL Server系统内部使用的变量,其作 用范围并不局限于某一程序,而是任何程序均可随时调用。 特点: 1、全局变量通常存储一些 SQL Server的配置设定值 和效能统计数据。 2、用户可在程序中用全局变量来测试系统的设定值 或 Transact-SQL命令执行后的状态值。 3、全局变量不是由用户的程序定义的,它们是在服 务器级定义的,只能使用预先说明及定义的全局变量。 4、 SQL Server-共提供了30多个全局变量。 5、引用全局变量时必须以“@@”开头。 6、局部变量的名称不能与全局变量的名称相同,否 则会在应用中出错。 2021/2/20 Information College. ChangJun
2021/2/20 Information College · ChangJun 8 8.2.2 全局变量 全局变量是SQL Server 系统内部使用的变量,其作 用范围并不局限于某一程序,而是任何程序均可随时调用。 特点: 1、全局变量通常存储一些SQL Server 的配置设定值 和效能统计数据。 2、用户可在程序中用全局变量来测试系统的设定值 或Transact-SQL 命令执行后的状态值。 3、全局变量不是由用户的程序定义的,它们是在服 务器级定义的,只能使用预先说明及定义的全局变量。 4、SQL Server一共提供了30多个全局变量。 5、引用全局变量时必须以“@@”开头。 6、局部变量的名称不能与全局变量的名称相同,否 则会在应用中出错
常用全局变量: 1、@@EROR:返回执行上一条 Transact SQL语句所返回的错误号。返回0,表示成功。返 回非0值,表示错误的相应编号。 2、@@ FATCH STATUS:返回执行上一次使用 游标 FETCH操作所返回的状态值。返回0,表示成 功。返回-1,表示操作失败或超出了游标所能操 作的数据行的范围。返回-2,表示返回的值已经 丢失。 3、@@ ROWCOUNT:返回执行上一条 Transact-SQL语句所影响到的数据行数目 2021/2/20 Information College. ChangJun
2021/2/20 Information College · ChangJun 9 常用全局变量: 1、@@ERROR : 返回执行上一条TransactSQL语句所返回的错误号。返回0,表示成功。返 回非0值,表示错误的相应编号。 2、@@FATCH_STATUS:返回执行上一次使用 游标FETCH操作所返回的状态值。返回0,表示成 功。返回-1,表示操作失败或超出了游标所能操 作的数据行的范围。返回-2,表示返回的值已经 丢失。 3、@@ROWCOUNT : 返回执行上一条 Transact-SQL语句所影响到的数据行数目
8.3函数 8.3.1内置函数( Built-in) 1、数学函数 a)算术函数可对数据类型为整型、浮点型、 实型、货币型和 SMALLMONEY的列进行操作 b)它的返回值是6位小数,如果使用出错, 则返回NUL值,并显示警告信息。 c)可以在 SELECT语句的 SELECT和 WHERE 子句以及表达式中使用算术函数。 d)教材附录AP235-P236 2021/2/20 Information College. ChangJun
2021/2/20 Information College · ChangJun 10 8.3 函数 8.3.1 内置函数(Built-in) 1、数学函数 a) 算术函数可对数据类型为整型、浮点型、 实型、货币型和SMALLMONEY 的列进行操作。 b) 它的返回值是6 位小数,如果使用出错, 则返回NULL值,并显示警告信息。 c) 可以在SELECT 语句的SELECT 和WHERE 子句以及表达式中使用算术函数。 d) 教材附录A P235-P236