首页 > 数据库技术 > 详细

T-SQL 高级编程

时间:2015-03-24 18:52:37      阅读:305      评论:0      收藏:0      [点我收藏+]

在Sql Server 中访问数据库一般有2种方式:

1、一种是使用应用程序编程接口API

2、数据库语句

对于许多应用程序的开发,都是一边在客户端进行程序开发,一边在数据库服务器端进行T-Sql编程;为了确保数据库的完整性,一般需要编写较为复杂的触发器、存储过程、自定义函数、游标、事务等

目标 :掌握If Else While Case 等逻辑语句

          掌握自定义函数

          掌握游标并且学会应用

PS:当多条sql语句要组装在一起执行时候需要Begin和End起来,Begin和End必须成对出现,并且各占一行,如:

 Begin

<T-SQL 命令或者程序块>

End

-------------------------------------------------

If Else  结构如下:

if(条件)

Begin

<T-SQL 命令或程序块>

End

Else

Begin

<T-SQL 命令或程序块>

End

备注:Else是可选部分

-------------------------------------------------

While 循环语句:

while(条件)

Begin

语句1

   Continue

语句2

    Break

End

注释:Break表示退出循环   Continue表示退出当前循环,继续下一次循环

1 use transmate5
2 DECLARE @sum INT,@i INT
3 SET @i = 1
4 SET @sum = 2
5 WHILE(@sum<=100)
6   SET @sum = @sum+@i;
7   SET @i = @i+1
8 END
9 print 1-100为+CONVERT(CHAR(6),@sum)

实例2:

 1 USE transmate5
 2 DECLARE @sum int,@i INT
 3 set @sum = 1
 4 set @i = 1
 5 while @sum<100
 6 BEGIN
 7 set @i = @i+1
 8 IF(@i%2=0)
 9 CONTINUE
10 SET @sum = @sum+@i
11 IF(@i=49)
12 break
13 end
14 print ‘‘

----------------------------------------------

Case  End 多语句分支:

Case <条件判断表达式>

 WHEN 条件判断表达式结果1 < WHEN T-SQL命令行或者语句块>

WHEN 条件判断表达式结果2  < WHEN T-SQL命令行或者语句块>

Else < WHEN T-SQL命令行或者语句块>

End

实例代码:

 1 SELECT
 2     files.id,
 3     files.fileurl,
 4     files.filename = CASE files.id
 5 WHEN 12 THEN
 6     vb
 7 WHEN 12 THEN
 8     vb
 9 WHEN 12 THEN
10     vb
11 WHEN 12 THEN
12     vb
13 WHEN 12 THEN
14     vb
15 WHEN 12 THEN
16     vb
17 WHEN 12 THEN
18     vb
19 ELSE 未知课程
20 END
21 FROM files
 1 SELECT files.id , files.filename=
 2 case files.id 
 3 WHEN 12 THEN VB
 4 WHEN 13 then C#
 5 else 未知课程
 6 END
 7 files.fileurl,files.IsDown=
 8 case files.IsDown
 9 WHEN 1 THEN 已下载
10 ELSE 未下载
11 END
12 from files

goto 语句:goto<标号>

1 IF(312323 not in (select DISTINCT files.id from files))
2 goto abc
3 BEGIN
4 print 学生成绩存在
5 select files.id,files.filename,files.filepath,files.fileurl
6 FROM files WHERE filename=312323
7 end
8 abc:print 没有学生成绩

用户自定义函数,基本结构如下:(包括标量值函数,自定义函数、内嵌表值型函数、)

1 create FUNCTION <函数名>
2[{@参数名 输出参数类型[=默认值]}[,....]])
3 RETURNS 函数返回值类型
4 [WITH encryption]
5 [AS]
6 BEGIN
7 函数体
8 RETURN 函数返回值
9 end
 1 CREATE FUNCTION myFunction (@score INT) RETURNS VARCHAR (60) AS
 2 BEGIN
 3     RETURN
 4       CASE @score >= 90 AND @score <= 100 THEN 优秀
 5       CASE @score >= 80 AND @score <= 90 THEN 良好
 6       case @score >=70 and @score<=80 THEN 中等
 7       case @score >=60 AND @score<=70 THEN 及格
 8         else  不及格
 9       end
10 END
11 SELECT files.id,files.filename,myFunction(score) from files

游标的使用:常常我们队数据的处理是数据行集合,但是有时候我们需要对单个数据行或者单独几行进行处理,这个时候,我们需要使用游标;

                 游标是以逐行的方式处理数据,可以看做一个指针,

1 声明游标:
2 DECLARE 游标名 CURSOR FOR SELECT 语句
3 打开游标  使用Open语句填充该游标
4 读取游标  使用fetch语句,从数据行中检索特定的行
5   在打开一个游标后,它将被放在游标结果集的首行前,必须使用fetch语句访问该首行
6   FETCH next from 游标名 into @变量名
7 关闭游标  使用Close语句关闭
8 删除游标  使用deallocate 删除游标引用

总结:

T-SQL 包括分支(if...Else和Case),循环(只有While一种,可以带Continue和Break),无条件跳转(goto)返回语句return;还提供了大量的系统函数

 

T-SQL 高级编程

原文:http://www.cnblogs.com/QQ931697811/p/4363675.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!