首页 理论教育 SQLServer数据库基础教程:变量和常量

SQLServer数据库基础教程:变量和常量

时间:2023-10-21 理论教育 版权反馈
【摘要】:定义变量@NAME和@SEAT。 下面定义两个变量@var1,@var2,并进行赋值。全局变量全局变量由系统定义和维护,用户直接使用,但一般不自定义全局变量。 把学号为20090103的成绩改为89,@@rowcount全局变量表示上一条语句所影响的行数。表2-4 变量名及其返回2.常量常量指固定不变的数据,但在SQL Server中数据称为常量。用SET语句赋给变量的数据,就可视为常量。

SQLServer数据库基础教程:变量和常量

1.变量

变量就是在执行过程中可变的数据,“变”的意思就是在执行时可以因需要而改变,故名为变量。变量是一种语言必不可少的组成部分。一个变量的组成包括名称、类型和数据,其中类型可以是SQL Server提供的数据类型。T⁃SQL语言中有两种形式的变量,一种是用户自己定义的局部变量,另外一种是系统提供的全局变量。

(1)局部变量

局部变量是一个能够拥有特定数据类型的对象,它的作用范围仅限制在程序内部。局部变量可以作为计数器来计算循环执行的次数,或是控制循环执行的次数。另外,利用局部变量还可以保存数据值,以供控制流语句测试以及保存由存储过程返回的数据值等。局部变量被引用时要在其名称前加上“@”标志,而且必须先用DECLARE语句声明,通过SELECT语句或SET语句给它们赋值,然后在声明它的语句、批处理或过程中使用,当批处理或过程执行完后它就丢失。

●声明局部变量的语句如下。

978-7-111-33494-1-Chapter02-7.jpg

其中,VARIABLE_NAME为局部变量的名称,DATATYPE为数据类型。

【例2-1】 定义变量@NAME和@SEAT。

978-7-111-33494-1-Chapter02-8.jpg

●局部变量赋值有两种方法:使用SET语句或SELECT语句,语法如下。

978-7-111-33494-1-Chapter02-9.jpg

978-7-111-33494-1-Chapter02-10.jpg

说明:

1)SET赋值语句一般用于赋给变量指定的数据常量。

2)SELECT赋值语句一般用于从表中查询数据,然后再赋给变量。需要注意的是,SE-LECT语句需要确保筛选的记录不多于一条。如果查询的记录多余一条,将把最后一条记录的值赋给变量。

【例2-2】 下面定义两个变量@var1,@var2,并进行赋值。

978-7-111-33494-1-Chapter02-11.jpg

(2)全局变量

全局变量由系统定义和维护,用户直接使用,但一般不自定义全局变量。SQL Server中的所有全局变量都是用“@@”标志作为前缀。

【例2-3】 使用全局变量@@servername来显示服务器的名称。

978-7-111-33494-1-Chapter02-12.jpg

【例2-4】 把学号为20090103的成绩改为89,@@rowcount全局变量表示上一条语句所影响的行数。(www.xing528.com)

978-7-111-33494-1-Chapter02-13.jpg

说明:变量名的返回如表2-4所示。

表2-4 变量名及其返回

978-7-111-33494-1-Chapter02-14.jpg

2.常量

常量指固定不变的数据,但在SQL Server中数据称为常量。用SET语句赋给变量的数据,就可视为常量。所以,这时的常量,其实是指各种不同数据类型的数据表示法。

(1)字符常量

若是字符型数据,对于一般字符应在前后加上英文单引号,若是Unicode字符,应加上N。如:

978-7-111-33494-1-Chapter02-15.jpg

注意:

若应用环境中以网页连接SQLServer数据库,则字段的数据类型和在T-SQL中处理数据时,应尽量使用Unicode字符。

(2)二进制常量

二进制数据的表示法是以0x开头,其后的长度不定,不必使用单引号。例如:

978-7-111-33494-1-Chapter02-16.jpg

(3)数字常量

所有数字数据在表示时,也不需使用单引号,且数字数据又有多种类型,分为整数和小数,又有一般数字和货币值等,例如:

978-7-111-33494-1-Chapter02-17.jpg

以上程序中首先声明两个变量,类型分别是int和money,int是整数,money可以含有小数点和货币符号,其他可以是小数点的数字类型还有decimal、real和float等。

(4)日期和时间常量

日期和时间数据都必须加上单引号,可以是各种合法的格式,例如:

978-7-111-33494-1-Chapter02-18.jpg

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈