-
SQL Server 2008教程之编程基础—常量与变量
编程基础
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!'
最新更新
nodejs爬虫
Python正则表达式完全指南
爬取豆瓣Top250图书数据
shp 地图文件批量添加字段
爬虫小试牛刀(爬取学校通知公告)
【python基础】函数-初识函数
【python基础】函数-返回值
HTTP请求:requests模块基础使用必知必会
Python初学者友好丨详解参数传递类型
如何有效管理爬虫流量?
SQL SERVER中递归
2个场景实例讲解GaussDB(DWS)基表统计信息估
常用的 SQL Server 关键字及其含义
动手分析SQL Server中的事务中使用的锁
openGauss内核分析:SQL by pass & 经典执行
一招教你如何高效批量导入与更新数据
天天写SQL,这些神奇的特性你知道吗?
openGauss内核分析:执行计划生成
[IM002]Navicat ODBC驱动器管理器 未发现数据
初入Sql Server 之 存储过程的简单使用
这是目前我见过最好的跨域解决方案!
减少回流与重绘
减少回流与重绘
如何使用KrpanoToolJS在浏览器切图
performance.now() 与 Date.now() 对比
一款纯 JS 实现的轻量化图片编辑器
关于开发 VS Code 插件遇到的 workbench.scm.
前端设计模式——观察者模式
前端设计模式——中介者模式
创建型-原型模式