SQL2005 基础(8)
一 使用变量
变量是可以存储数据值的对象,SQL中的变量分为局部变量和全局变量。局部变量的使用是先声明,再赋值。全局变量由系统定义和维护可以直接使用。
1 局部变量
局部变量的名称必须以@标记作为前缀
语法:declare @变量名 数据类型
局部变量的赋值有两种方法:使用SET语句或select语句.
语法:Set @variable_name = value 或者 select @variable_name =value
Set 赋值语句一般用于赋给变量指定的数据常量,
select赋值语句一般用于从表中查询数据,然后在赋给变量。
注:Select语句需要确保筛选的记录不多于一条,否则把最后一条记录的值赋给变量。
例句:
declare @name varchar(8)
set @name='小白'
select * from stuinfo where stuname=@name
declare @stuno int
select @stuno=stuno from stuinfo where stuname=@name
select * from stuinfo where stuno=@stuno+1 or stuno=@stuno-1
2 全局变量
Sql server 中的所有全局变量都使用两个@标志作为前缀。
变量 含义
@@error 最后一个sql错误的错误号
@@language 当前使用的语言名称
@@connections Sql Server自上次启动以来尝试的连接数
@@max_connections 可以创建的同时连接的最大数目
@@rowcount 受上一个sql语句影响的行数
@@servername 本地服务器名称
@@servicename 该计算机上的sql 服务名称
@@version Sql server的版本信息
二 输出语句
输出语句用来显示处理的数据结果,常用的输出语句有两种。
语法: print 局部变量或字符串
Select 局部变量as自定义列名
第二种方法也就是查询语句的特殊应用
例句:
print '服务器名称:'+@@servername
select @@servername as 服务器名称
三 逻辑控制语句
1 if else 条件语句
语法: if 条件
语句或语句块
Else
语句或语句块
如果有多条语句,需要使用语句块,语句块使用begin..end表示
declare @avgage float;
select @avgAge=avg(stuage) from stuinfo
if (@avgage>20)
begin
print '平均年龄大于岁,年龄最大的为'
select top 1 stuname from stuinfo order by stuage desc
end
else
begin
print '平均年龄不到岁,年龄最小的为'
select top 1 stuname from stuinfo order by stuage
end
2 while循环语句
While循环语句可以根据某些条件重复执行一条sql语句或一个语句块,通过使用while关键字,可以确保只要指定的条件为true,就会重复执行语句,可以在while循环中使用continue和break关键字来控制语句的执行。
语法:while (条件)
语句或语句块
[break]
使用break关键字从最内层的while循环中退出
declare @avgage float,@avg int;
select @avgage = avg(stuage) from stuinfo
while (@avgage < 25)
begin
select @avg=count(*) from stuinfo where stuage < 25
if @avg > 0
update stuinfo set stuage=stuage+1
else
break
end
go
select avg(stuage) from stuInfo
3 case多分支语句
语法:case
When 条件1 then 结果1
When 条件2 then 结果2
Else
End
select * from stuinfo;
select stuname,stuage = case
when stuage < 18 then '未成年'
when stuage between 18 and 20 then '年轻人'
when stuage >25 then '中年人'
end
from stuinfo
4 批处理语句
批处理语句是一条或多条sql 语句的集合,sql server 将批处理语句编译成一个可执行单元,此单元称为执行计划。一般将一些逻辑相关的操作语句放在同一批语句中,以GO关键字标志着批处理的结束,GO不是sql语句,它可以由任何用户执行。
变量是可以存储数据值的对象,SQL中的变量分为局部变量和全局变量。局部变量的使用是先声明,再赋值。全局变量由系统定义和维护可以直接使用。
1 局部变量
局部变量的名称必须以@标记作为前缀
语法:declare @变量名 数据类型
局部变量的赋值有两种方法:使用SET语句或select语句.
语法:Set @variable_name = value 或者 select @variable_name =value
Set 赋值语句一般用于赋给变量指定的数据常量,
select赋值语句一般用于从表中查询数据,然后在赋给变量。
注:Select语句需要确保筛选的记录不多于一条,否则把最后一条记录的值赋给变量。
例句:
declare @name varchar(8)
set @name='小白'
select * from stuinfo where stuname=@name
declare @stuno int
select @stuno=stuno from stuinfo where stuname=@name
select * from stuinfo where stuno=@stuno+1 or stuno=@stuno-1
2 全局变量
Sql server 中的所有全局变量都使用两个@标志作为前缀。
变量 含义
@@error 最后一个sql错误的错误号
@@language 当前使用的语言名称
@@connections Sql Server自上次启动以来尝试的连接数
@@max_connections 可以创建的同时连接的最大数目
@@rowcount 受上一个sql语句影响的行数
@@servername 本地服务器名称
@@servicename 该计算机上的sql 服务名称
@@version Sql server的版本信息
二 输出语句
输出语句用来显示处理的数据结果,常用的输出语句有两种。
语法: print 局部变量或字符串
Select 局部变量as自定义列名
第二种方法也就是查询语句的特殊应用
例句:
print '服务器名称:'+@@servername
select @@servername as 服务器名称
三 逻辑控制语句
1 if else 条件语句
语法: if 条件
语句或语句块
Else
语句或语句块
如果有多条语句,需要使用语句块,语句块使用begin..end表示
declare @avgage float;
select @avgAge=avg(stuage) from stuinfo
if (@avgage>20)
begin
print '平均年龄大于岁,年龄最大的为'
select top 1 stuname from stuinfo order by stuage desc
end
else
begin
print '平均年龄不到岁,年龄最小的为'
select top 1 stuname from stuinfo order by stuage
end
2 while循环语句
While循环语句可以根据某些条件重复执行一条sql语句或一个语句块,通过使用while关键字,可以确保只要指定的条件为true,就会重复执行语句,可以在while循环中使用continue和break关键字来控制语句的执行。
语法:while (条件)
语句或语句块
[break]
使用break关键字从最内层的while循环中退出
declare @avgage float,@avg int;
select @avgage = avg(stuage) from stuinfo
while (@avgage < 25)
begin
select @avg=count(*) from stuinfo where stuage < 25
if @avg > 0
update stuinfo set stuage=stuage+1
else
break
end
go
select avg(stuage) from stuInfo
3 case多分支语句
语法:case
When 条件1 then 结果1
When 条件2 then 结果2
Else
End
select * from stuinfo;
select stuname,stuage = case
when stuage < 18 then '未成年'
when stuage between 18 and 20 then '年轻人'
when stuage >25 then '中年人'
end
from stuinfo
4 批处理语句
批处理语句是一条或多条sql 语句的集合,sql server 将批处理语句编译成一个可执行单元,此单元称为执行计划。一般将一些逻辑相关的操作语句放在同一批语句中,以GO关键字标志着批处理的结束,GO不是sql语句,它可以由任何用户执行。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· SQL Server 2025 AI相关能力初探
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库