5.1 什么是T-SQL
1.SQL是结构数据查询语言的英文缩写,是一种使用关系模型的数据库应用语言。
5.2 SQL标识符
1. 标识符是一个由用于定义的,SQL Server可识别的有意义的字符序列。通常用它们来表示服务器名、数据库名、数据库对象名、常量、变量、存储过程名称等。
命名规则:
1)标识符的长度可以为1~30个字符
2)标识符的第一个字符必须为字母、下划线、@以及#。
以@为首的标识符表示一个局部变量。
以#为首的标识符表示一个临时数据库对象。对于表或存储过程,名称前包含一个#时表示局部临时对象,而两个#(##)表示全局临时对象。
3)标识符中第一个字符后面可以是字母、数字、#、$和下划线
4)默认情况下,标识符内不允许有空格,也不允许将SQL关键字作为用于定义的标识符,但可以使用引号来定义特殊标识符,并在定义之前,将QUOTED.INENTIFER设置为ON。
5.3 T-SQL运算符
1. 算术运算符
算术运算符用于数值型列或变量间的算术运算符。包括加,减,乘,除和取模
2. 位运算符
用以对数据进行按位与(&)、或(|)、异或(^)、求反(~)。
3. 比较运算符
用来比较两个表达式的值是否相同,有大于(>)、小于(<)、大于等于(>=)、小于等于(<=)和不等于(!=)。
通常出现在条件表达式中。
4. 连接运算符
用于两个字符串数据的连接。
5.4 T-SQL变量
1. 局部变量
局部变量一般出现在批处理、存储过程和触发器中,要使用局部变量,必须在使用前以declare语句定义。
在使用declare语句来声明局部变量时,必须提供变量名称及它的数据类型,变量名前必须有一个@符号。
局部变量仅生存于声明它的批处理、存储过程或触发器。
2. 局部变量赋值
在SQL中,通常用SELECT语句为变量赋值,格式:
select @variable_name = expression[,……]
from ……
where ……
在局部变量没有被赋值前,它的值是NULL,如果要在程序体中引用它,特别是在循环结构中,必须先为其赋值。
通常情况下,一条select赋值语句只能返回一行。如果一条select赋值语句在检索数据后返回了多行,则则只将返回的最后一行的值赋给局部变量。
可使用两种方法来保证select语句值返回一行,即只有一个指定值返回给了变量:
1)在where子句中使用主关键字或唯一关键字
declare @single_auth varchar(40),
@curdate datetime
select @single_auth = auth_lname,
@curdate =getdate()
from authors
where au_id = "123-45-6789"
2)在select列表中使用一个集合函数
delcare @lname varchar(40)
select @lname = max (au_lname)
from authors
print @lname
3. 利用UPDATE为局部变量赋值
如:
declare @qty_smallint
update sales
set @qty = qty*2
where title_id = "BU1032"
and stor_id = "6380"
and ord_num = "6871"
4. 全局变量
@ @rowcount----------------------------前一条命令处理的行数
@ @error-------------------------------前一条SQL语句报告的错误号
@ @trancount---------------------------事务嵌套的级别
@ @transtate---------------------------事务的当前状态
@ @tranchained-------------------------当前事务的模式
@ @servername--------------------------本地SQL Server的名称
@ @version-----------------------------SQL Server和O/S版本级别
@ @spid--------------------------------当前进程id
@ @identity----------------------------上次INSERT操作中使用的identity值
@ @nestlevel---------------------------存储过程/触发器的嵌套层
@ @fetch_status------------------------游标中上条FETCH语句的状态
浙公网安备 33010602011771号