03SQL编程

T-SQL中的变量分为局部变量和全局变量

 

为什么要用局部变量:

SQL 中,我们常常使用临时表来存储临时结果,对于结果是一个集合的情况,这种方法非常实用,但当结果仅仅是一个数据或者是几个数据时,还要去建一个表,显得就比较麻烦,另外,当一个 SQL 语句中的某些元素经常变化时,比如选择条件,(至少我想)应该使用局部变量 。当然 MS SQL Server的全局变量也很有用。

 

局部变量 :局部变量就是在当前批处理中有效的变量,批处理完成就删掉

 

全局变量 :在整个SQL Server 中都可以访问到的变量

 

 

语法:

declare    @variable_name    DataType

--声明      变量名称                  数据类型( 变量不能是 text ntext image 数据类型,MS说的).


局部变量的赋值:

语法:

set @variable_name =value

select @variable_name=value

 

set赋值语句一般用于赋给变量指定的数据常量

select 语句需要确保筛选的记录不多于一条,如果查询的记录多于一条,将把最后一条记录的值赋给变量

 

set与select语句在对变量进行赋值时的区别

 

 SETSELECT
同时对多个变量赋值不支持支持
表达式返回多个值时出错将返回的最后一个值赋给变量
表达式未返回值时变量被赋NULL值变量保持原值

 

全局变量 是系统预定义的,返回一些系统信息,全局变量以两个at(@) 开头。

常见的:

 

@@error  最后一个T-SQL错误的错误号

@@identity  最后一次插入的标识值

@@language 当前使用的语言的名称

@@max_connections 可以创建的同时连接的最大数目

@@rowcount 受上一个SQL语句影响的行数

@@servername 本地服务器的名称

@@servicename该计算机上的SQL服务的名称

@@timeticks当前计算机上的每刻度的微妙数

@@transcount当前连接打开的事物数

@@version  返回当前sql server的版本信息

......

 

输出语句print 和select

 

语法

print 局部变量或字符串

select 局部变量 as 自定义列名

 


数据类型转换 cast() 和convert()函数

 

与C#类似,t-sql语言中,数据类型转换也分为隐式转换和显示转换。

 

convert()和cast()都能实现数据类型的显示转换

 

语法

cast(表达式 as 数据类型)

convert(数据类型[(长度)],长度[,样式])

 

相关例子:

SQLserver中用convert函数转换日期格式

2008-01-23 15:47

 

SQLserver中用convert函数转换日期格式2008-01-15 15:51SQLserver中用convert函数转换日期格式

SQL Server中文版的默认的日期字段datetime格式是yyyy-mm-dd Thh:mm:ss.mmm

例如:

select getdate()

2004-09-12 11:06:08.177

整理了一下SQL Server里面可能经常会用到的日期格式转换方法:

举例如下:

select CONVERT(varchar, getdate(), 120 )

2004-09-12 11:06:08

select replace(replace(replace(CONVERT(varchar, getdate(), 120 ),'-',''),' ',''),':','')

20040912110608

select CONVERT(varchar(12) , getdate(), 111 )

2004/09/12

select CONVERT(varchar(12) , getdate(), 112 )

20040912

select CONVERT(varchar(12) , getdate(), 102 )

2004.09.12

select CONVERT(varchar(12) , getdate(), 101 )

09/12/2004

更多信息详见联机丛书,msdn

 

 

 

begin-end 语句

 

作用:在顺序结构的程序中,将多个语句定义为一个语句块,把每个语句块视为一个单元处理,类似C# 中"{}"的 作用

语法

begin

语句或语句块

end

 

       if-else 条件语句

     作用:属于分支结构,类似C#,同样是根据条件是否成立来确定程序的执行方向。

语法

if(条件)

语句或语句块1

else

语句或语句块2

 

       while 循环语句

      作用:可根据条件重复执行一条语句或一个语句块

      在循环中,可通过continue 和break来控制语句的执行

语法

while(条件)

begin

语句或语句块

[break|continue]

end

 

       case 多分支语句

       作用:计算一组条件表达式,并返回其中一个符合条件的结果

语法

case

      when 条件1 then 结果1

      when 条件2 then 结果2

      [else 其他结果]

end

 

case语句表示如果"条件1"成立,就执行“结果2”

 

如果省略else 并且when的条件表达式的结果都不为true,则case-end语句返回null

 

批处理

         go 指令

go指令是批处理的标志。

批处理是一条或多条sql语句的集合,sql server将批处理指令编译成一个可执行单元,此单元称为执行计划。

每个批处理可以编译成单个执行计划,从而提高执行效率。


定义: 以一条命令的方式处理一组命令的过程称为批处理

了解: 百度的定义:批处理 (Batch),也称为 批处理 脚本。 批处理 就是对某对象进行批量的处理。 目前比较常见 的批处理 包含两类:DOS 批处理 和PS 批处理

 

 

呼~~纯手工打,写下来作为复习。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值