第8章T-SQL语言解析.ppt

1、什么是存储过程(procedure) 一组预编译的 SQL 语句,它可以包含数据操纵语句、变量、逻辑控制语句等。 2、存储过程的优点 A、执行速度更快 B、允许模块化程序设计 C、提高系统安全性 D、减少网络流通量 3、存储过程的分类 (1)系统存储过程 由系统定义,存放在 master 数据库中,类似 C 语言中的系统函数,系统存储过程的名称都以“sp_”开头或”xp_”开头。 (2)用户自定义存储过程 由用户在自己的数据库中创建的存储过程,类似 C 语言中的用户自定义函数。 使用 T-SQL 语句创建和调用存储过程 创建: CREATE PROC[EDURE] 存储过程名 @参数 1 数据类型 = 默认值, …… , @参数 n 数据类型 = 默认值 AS SQL 语句 GO 调用: EXEC 过程名 [参数] 注意: 和 C 语言的函数一样,参数可选 例 1.--创建一个返回结果集的存储过程 prSearchcontentshow create procedure prSearchcontentshow AS begin select * from contentshow end --执行 prSearchcontentshow execute prSearchcontentshow 例 2.--创建一个要求输入一个输入参数的存储过程 seachConShow create procedure seachConShow @divid varchar(10) --定义一个输入参数 as select * from contentshow where id = @divid --要求 ID 列与输入参数相等 --执行 seachConShow 存储过程 execute seachconshow 1 【例9】如果“数据库原理课程”的平均成绩高于75分,则显示“平均成绩高于75分”。 USE stc DECLARE @text1 char(20) SET @text1=平均成绩高于75. IF ( SELECT AVG(成绩) FROM sc,course WHERE sc.课程号=course.课程号 AND course.课程名=’数据库原理’ ) 75 SELECT @text1=平均成绩低于75. [ELSE] SELECT @text1 【例10】IF...ELSE语句的嵌套使用。 USE stc IF ( SELECT AVG(成绩) FROM sc,course WHERE sc.课程号=course.课程号 AND course.课程名=’数据库原理’ ) 75 SELECT 平均成绩低于75 ELSE IF ( SELECT AVG(成绩) FROM sc,course WHERE sc.课程号=course.课程号 AND course.课程名=’数据库原理’ ) 75 SELECT 平均成绩高于75 BEGIN…END语句 BEGIN…END语句将多个T-SQL语句组合成一个语句块,并将它们视为一个单元处理。 在条件语句和循环等控制流程语句中,当符合特定条件便要执行两个或者多个语句时,就需要使用BEGIN…END语句。 语法形式为: BEGIN ???? { sql_statement | statement_block} END 3.2 GOTO语句 GOTO语句可以使程序直接跳到指定的标有标识符的位置处继续执行,而位于GOTO语句和标识符之间的程序将不会被执行。通常,应尽量少用GOTO语句。 GOTO语句和标识符可以用在语句块、批处理和存储过程中,标识符可以为数字与字符的组合,但必须以“:”结尾。 语法形式如下: GOTO label …… label: 3.3 WHILE…CONTINUE…BREAK语句 WHILE…CONTINUE…BREAK语句用于设置重复执行 SQL 语句或语句块的条件。只要指定的条件为真,就重复执行语句。 CONTINUE语句可以使程序跳过CONTINUE语句后面的语句,回到WHILE循环的第一行命令。 BREAK语句则使程序退出其所在的这一层循环,结束该层循环语句的执行。 WHILE语句的语法形式为: WHILE Boolean_expression ????{

文档评论(0)

1亿VIP精品文档

相关文档