1.1 局部变量

  (1)声明局部变量

DECLARE @变量名  数据类型
DECLARE @name varchar(20)
DECLARE @id int

  (2)为变量赋值

SET @变量名 =--set用于普通的赋值
SELECT @变量名 =--用于从表中查询数据并赋值,,可以一次给多个变量赋值

SET @name=‘张三’
SET @id = 1
SELECT @name = sName FROM student WHERE sId=@id

  (3)输出变量的值

  SELECT 以表格的方式输出,可以同时输出多个变量;而PRINT 则是以文本的方式输出,一次只能输出一个变量的值

SELECT @name,@id
PRINT @name
PRINT @id
print @name,@id  --错误!!

1.2 全局变量

  (1)关于全局变量与局部变量

  局部变量:

  ①局部变量必须以标记@作为前缀 ,如@Age int;

  ②局部变量需要先声明,再赋值

  全局变量(系统变量):

  ①全局变量必须以标记@@作为前缀,如@@version;

  ②全局变量由系统定义和维护,我们只能读取,不能修改全局变量的值;

  (2)有哪些全局变量?

SQL语句练习手册--第四篇

补充:@@error变量,在每次执行完SQL语句后,都会为@@error变量赋值,如果上次执行的SQL语句有错,则将@@errro赋值为一个不为0的值,否则(执行没错),则将@@error赋值为0.

  (3)怎么使用全局变量

select @@LANGUAGE as '当前使用语言'
select @@SERVERNAME as '当前服务器名称'
select @@TRANCOUNT as '当前连接打开的事务数'
select @@MAX_CONNECTIONS as '可以同时连接的最大数目'
select @@VERSION as '当前服务器版本'
select @@ERROR as '最后一个T-SQL错误的错误号'

SQL语句练习手册--第四篇

二、选择与循环:if(小苹果) begin 一直听根本停不下来 end 

2.1 无处不在的 IF ELSE

  (1)条件选择语法

IF(条件表达式)
  BEGIN --相当于C#里的{
    语句1  ……
  END --相当于C#里的}
ELSE
 BEGIN
    语句1
    ……
  END
View Code

  (2)假设我们有一张选课成绩表SC,其中包括三个字段{S#,C#,Score},其中S#为学号,C#为课程号,而Score则为成绩。S#为Student表的外键,C#为课程表的外键。那么,根据这三张表,我们有一个需求:

  计算平均分数并输出:如果平均分数超过60分输出成绩最高的三个学生的成绩,否则输出后三名的学生;

SQL语句练习手册--第四篇
declare @avgscore float = 0
select @avgscore = AVG(Score) from SC
if(@avgscore>60)
begin
    print '前三名'
    select top 3 s.Sname,sc.Score from Student s join SC sc on s.S#=sc.S#
    order by Score desc
end
else
begin
    print '后三名'
    select top 3 s.Sname,sc.Score from Student s join SC sc on s.S#=sc.S#
    order by Score asc
end
SQL语句练习手册--第四篇

2.2 死了都要爱 WHILE

  (1)循环语句语法

WHILE(条件表达式)
  BEGIN --相当于C#里的{
    语句
    ……
    continue --退出本次循环
    BREAK    --退出整个循环
  END --相当于C#里的}
View Code

相关文章:

  • 2022-12-23
  • 2021-06-23
  • 2021-12-19
  • 2021-09-20
  • 2021-07-05
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-01-07
  • 2021-05-23
相关资源
相似解决方案