数据库SQL server——sql语言基础

本文介绍了SQL Server中的变量声明,包括局部变量和全局变量的使用,并详细讲解了各种运算符,如算数、赋值、位、逻辑和比较运算符。此外,还涵盖了流控制语句,如begin...end、if...else、while、case等,帮助读者理解SQL Server中的控制流程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

声明变量

局部变量

我们先从sql的声明局部变量开始:

--声明两个变量
declare @name varchar(20),@age int

--赋值
--set
set @name = '法外狂徒张三'
set @age = 20

-- select 
select @name = '刑部尚书罗翔',@age = 22

--输出
print @name
print @age

输出结果
总结一下,set只能跟一个变量,而select可以跟多个
根据输出不难发现,输出不会全部输出,因为第二个select赋值覆盖了之前的内容所以输出后者。

全局变量

全局变量是事先定义好的,用户无法修改,而任何程序均可调用。
全局变量以@@开头。
在这里插入图片描述

运算符

算数运算符

和C/C++一样,都有+,-,*,/,%运算。

--算数运算符
declare @a int,@b int
set @a = 9
set @b = 9
print @a+@b
print @a*@b
print @a/@b
print @a%@b
print @a-@b

在这里插入图片描述

赋值运算符
declare @name varchar(20),@name1 varchar(20)
set @name = 'hello'
set @name1 = '你好'
set @name1 = @name
print @name
位运算符

必须是任意两个整数类型表达式。
和C/C++的一样,这里就不多介绍了。
介绍

逻辑运算符

对某个条件进行测试,其运算结果返回值为布尔类型。
逻辑运算符关键字

比较运算符
=  < >  <= >= <> != !> !<
连接运算符
declare @name varchar(20)
set @name = 'hello'
print @name+' world'

上述代码结果

一元运算符

‘+’ 数值为正
‘-’ 数值为负
‘~’ 逻辑非,位反

运算符优先级
  • 一元运算符
  • 算数运算符
  • 比较运算符
  • 逻辑运算符
  • 赋值运算符

流控制语句

begin…end…
--交换两个数字
declare @x int,@y int,@t int
set @x = 9
set @y = 99
begin
	set @t = @x
	set @x = @y
	set @y = @t
end
	print @x
	print @y

上述代码结果
总结:begin…end…这个语句就是把多个语句融合为一个逻辑块。
所以在使用的时候一定有多个语句。

if…else…
--判断
	declare @m int
	set @m = 9
	if @m>0
		print 'true'
	else
		print 'false'

上述代码结果
和C/C++的用法一样,如果符合条件则实行 if 下的语句,否则实行 else 的语句

while
--判断10以内的奇数
declare @i int
set @i = 1
while @i<10
begin
	if @i%2!=0
		print @i
	set @i += 1 
end
	set @i += 1

上述代码执行结果
总结:一般和begin…end…结合使用,就类似于C/C++的大括号。
既然有循环,那就一定有 break 和 continue 。
用法都与C/C++一直,结束当前循环和继续当前循环。

case

可根据表达式的真假来确定是否返回某个值,可以进行多个分支选择。

--根据分数进行判定
declare @grade int,@jiegou varchar(20)
set @grade = 99
set @jiegou = 
case
	when @grade <= 100 and @grade >=90 then  '优秀'
	when @grade < 90 and @grade >=80 then  '一般'
	when @grade < 80 and @grade >=70 then  '及格'
	else  '不及格'
end
	print @jiegou

上述代码结果
总结:和if…else…的作用很像,都是在找符合条件的情况。

waitfor

延迟语句,可以将他之后的语句在一个指定的时间间隔之后执行。

waitfor delay 'time' |time 'time'

delay用于设定等待的时间,最多24小时
time用于设定等待结束的时间点

 --3秒后显示 hello world
 waitfor delay '00:00:03'
 print 'hello world'

 --在下午4点35显示 hello world
 waitfor time '16:35:00'
 print 'hello world'
goto

改变程序的流程,使程序跳到标识符指定的程序在继续执行。

 --goto语句
 declare @xx int
 set @xx = 9
 love:
	print @xx
	set @xx += 1
while @xx <= 10
begin
	goto love
end

上述代码结果

return

从查询或过程中无条件退出

--return语句
declare @xxx int
set @xxx = 9
if @xxx >= 3
	print 'return之前'
	return
	print 'return之后'

上述代码结果
总结:和C/C++很相似,在学习了C/C++之后我想对于这些的理解应该并不难。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值