天天看点

T-SQL编程,SQL server中的变量,流程控制语句

T-SQL编程:是SQL server数据库对标准SQL的扩展

PL/SQL是Oracle数据库对标准SQL的扩展

一.变量

1.全局变量

      名称以@@开头,用于记录SQL server的各种状态信息,在服务器级别定义,由系统定义和维护,对于用户是只读的,在整个示例范围都有效

     例:

     @@versionà记录SQL server的版本信息

     @@errorà记录上一条语句的错误号,如果没有,则为0

     @@rowcountà记录上一条语句受影响的行数

     @@servicenameà服务器的名称

2.局部变量

     @开头,有效范围:从声明变量开始到批处理或存储过程的结尾

     例:

declare @avgGrade int   --声明变量
select @avgGrade=avg(Grade) from SC whre Cno='2' --查询平均成绩,并赋值
           

注:字符串类型,时间日期类型的常量要用''单引号括起来

二.流程控制语句

1.begin-end

begin
...
end
           

2.if-else

declare @avgGrade int--声明变量
select @avgGrade=avg(Grade) from SC whre Cno='2'--查询平均成绩,并赋值
if @avgGrade>=85
  print '考的不错'
else
  print '继续努力'
           

3.while 

--eg:while 1+2+3+..+100

declare @i int,@sum int
set @i=1
set @sum=0
while (@i<=100)
begin
 set @[email protected][email protected]
 set @[email protected]+1
end
 print @sum
           

3.case

select Sno,Sname,Ssex,Sdept,
   case Sdept
     when 'cs'then '计算机科学'
     when 'ma' then '数学'
     when 'is'then '信息'
     else '其他'
     end 专业
from Student

select Sno,Cno,Grade,
   case
	when Grade is null  then '无成绩'		
	when Grade >=90  then '优秀'
	when Grade >=80  then '优秀'		
	when Grade >=70  then '优秀'
	when Grade >=60  then '优秀'
	else '不及格'
	end 级别
 from SC;
           

三.批处理

 一条或多条SQL语句,一次性发送到SQL sever数据库服务器进行执行,SQL server数据库服务器讲批处理的语句编译成一个可执行单元,称为执行计划,批处理以go结束.编译错误的时候不会执行;运行时错误.

create table Test
(
 cola int primary key,
 colB char(3)
)
go

select * from Test