在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;还提供了大量的系统函数
原文:http://www.cnblogs.com/QQ931697811/p/4363675.html