当前位置:
首页 > 数据库 > SQL Server 2008 教程 >
-
SQL Server 2008教程之编程基础—常量与变量
本站最新发布
SQL Server 2016数据库视频教程
试听地址 https://www.xin3721.com/eschool/SQLxin3721/
在表4-1列出了SQL Server 2008中可用的常量类型及常量的表示说明。
表4-1 常量类型及说明
变量,就是在脚本中没有固定值的元素对象。在Microsoft SQL Server 2008系统中,存在两种类型的变量。第一种是系统定义和维护的全局变量;第二种是用户定义用来保存中间结果的局部变量。
1.系统全局变量
系统全局变量是SQL Server系统提供并赋值的变量。用户不能建立全局变量,也不能用SET语句来修改全局变量的值。通常将全局变量的值赋给局部变量,以便保存和处理。全局变量以两个@符号开头。
例如,可以使用全局变量@@VERSION查看当前使用的SQL Server的版本信息,语句如下所示:
图4-1 使用全局变量
2.局部变量
局部变量是作用域局限在一定范围内的Transact-SQL对象。在SQL Server中,局部变量是用户自定义的,可以保存单个特定类型数据值对象。
通常情况下,局部变量在一个批处理(也可以是存储过程或触发器)中被声明或定义,然后该批处理内的SQL语句就可以设置这个变量的值,或者是引用这个变量已经被赋予的值。当这个批处理结束后,这个局部变量的生命周期也就随之消失。
要创建局部变量,使用DECLARE语句,其语法如下:
l @local_variable 是变量的名称,他必须以@开发。
l data_type 是任何由系统提供的或用户定义的数据类型。变量不能是text、ntext或image数据类型。
l table_type_definition 用于定义表数据类型。表声明包括列定义、名称、数据类型和约束。允许的约束类型只包括PRIMARY KEY、UNIQUE KEY、NULL和CHECK。
l n 表示可以指定多个变量并对变量赋值的占位符。当声明表变量时,表变量必须是DECLARE语句中正在声明的变量。
声明局部变量后要给局部变量赋值,可以使用SET或SELECT语句:
SELECT @lacol_variable通常用于将单个值返回到变量中,如果expression为列名,则返回多个。如果SELECT语句返回多个值,将返回的最后一个值赋予变量。如果SELECT语句没有返回行,变量将保留当前值。如果expression是不返回值的子查询,则将变量设为NULL。因此,通常情况下使用SET而不是SELECT给变量赋值。
例如,将局部变量hello声明为char类型,长度为20,并为其赋值为hello,world!其SQL语句如下:
试听地址 https://www.xin3721.com/eschool/SQLxin3721/
编程基础
Transact-SQL语言是一系列操作数据库及数据库对象的命令语句,因此了解基本语法和流程语句的构成是必须的,这主要包括常量和变量、运算符、表达式、注释等。4.2.1 常量与变量
在任何语言中,最不可少的便是常量和变量,它们是语言编程的基础元素。常量,也称为文字值或标量值,是指程序运行中值不变的量,用于表示特定数据值的符号,根据代表的数据类型不同,值也就不同,可以是日期型、数值型、字符串型等。在表4-1列出了SQL Server 2008中可用的常量类型及常量的表示说明。
表4-1 常量类型及说明
常量类型 | 常量表示说明 |
字符串常量 | 包括在单引号或双引号中,由字母数(a-z、A-Z)、数字字符(0-9)以及特殊字符(如感叹号(!)、at符(@)和数字号(#))组成 |
二进制常量 | 只有0或者1构成的串,并且不使用引号。如果使用一个大于1的数字,他将被转换为1 |
十进制整型常量 | 使用不带小数点的十进制数据表示 |
十六进制整型常量 | 使用前缀0X后跟十六进制数字串表示 |
日期常量 | 使用单引号将日期时间字符串括起来组成 |
实型常量 | 有定点表示和浮点表示两种方式 |
货币常量 | 以前缀为可选的小数点和可选的货币符号的数字字符串来表示 |
1.系统全局变量
系统全局变量是SQL Server系统提供并赋值的变量。用户不能建立全局变量,也不能用SET语句来修改全局变量的值。通常将全局变量的值赋给局部变量,以便保存和处理。全局变量以两个@符号开头。
例如,可以使用全局变量@@VERSION查看当前使用的SQL Server的版本信息,语句如下所示:
SELECT @@VERSION AS [当前SQL Server版本]
在查询窗口中执行上述语句,如图4-1所示。图4-1 使用全局变量
2.局部变量
局部变量是作用域局限在一定范围内的Transact-SQL对象。在SQL Server中,局部变量是用户自定义的,可以保存单个特定类型数据值对象。
通常情况下,局部变量在一个批处理(也可以是存储过程或触发器)中被声明或定义,然后该批处理内的SQL语句就可以设置这个变量的值,或者是引用这个变量已经被赋予的值。当这个批处理结束后,这个局部变量的生命周期也就随之消失。
要创建局部变量,使用DECLARE语句,其语法如下:
DECLARE
{@local_variable data_type|
@cursor_variable CURSOR
}[,…n]
主要参数说明如下:{@local_variable data_type|
@cursor_variable CURSOR
}[,…n]
l @local_variable 是变量的名称,他必须以@开发。
l data_type 是任何由系统提供的或用户定义的数据类型。变量不能是text、ntext或image数据类型。
l table_type_definition 用于定义表数据类型。表声明包括列定义、名称、数据类型和约束。允许的约束类型只包括PRIMARY KEY、UNIQUE KEY、NULL和CHECK。
l n 表示可以指定多个变量并对变量赋值的占位符。当声明表变量时,表变量必须是DECLARE语句中正在声明的变量。
声明局部变量后要给局部变量赋值,可以使用SET或SELECT语句:
SET @local_variable = expression
SELECT @ local_variable = expression[,…n]
其中,@local_variable是除cursor、text、ntext、image外的任何类型变量名;expression是任何有效的SQL Server表达式。SELECT @ local_variable = expression[,…n]
SELECT @lacol_variable通常用于将单个值返回到变量中,如果expression为列名,则返回多个。如果SELECT语句返回多个值,将返回的最后一个值赋予变量。如果SELECT语句没有返回行,变量将保留当前值。如果expression是不返回值的子查询,则将变量设为NULL。因此,通常情况下使用SET而不是SELECT给变量赋值。
例如,将局部变量hello声明为char类型,长度为20,并为其赋值为hello,world!其SQL语句如下:
DECLARE @hello char(20)
SET @hello='hello,world!'
最新更新
MongoDB 复制
vb.net教程之VB.NET中TextBox的智能感知应用实
数据库是如何定义的?
Mysql数据库
Python在Mysql中使用的数据类型
c#教程之运算符
变量
C#语法
C#入门简介
C#教程之C# 环境
MySQL LIKE 子句
MySQL 查询数据
MySQL 插入数据
MySQL 修改数据表
MySQL 删除数据表
MySQL 创建数据表
MySQL 数据类型
mysql教程-如何选择数据库
mysql教程-如何使用MySQL 删除数据库
如何MySQL 创建数据库
数据类型之对象
数据类型之布尔型、整型、浮点型和字符
php教程之数据类型之数组
php教程之PHP 常量
php教程之变量
php教程之语法
PHP简介与安装
phpMyAdmin配置安装全攻略
PHP是什么
win2003 iis整合php后 环境变量无法读取到