Home >Database >Mysql Tutorial >SQL与高级查询
T-SQL简介 是微软对SQL的扩展,具有SQL的主要特点,同时增加了变量、运算符、函数、流程控制和注释等语言元素。 T-SQL语句分类 1.变量声明:T-SQL语句中可以使用两种类型的变量:局部变量(标识符:@)和全局变量(标识符:@@) 2.数据定义语言(Data Definition Lang
T-SQL简介
是微软对SQL的扩展,具有SQL的主要特点,同时增加了变量、运算符、函数、流程控制和注释等语言元素。
T-SQL语句分类
1.变量声明:T-SQL语句中可以使用两种类型的变量:局部变量(标识符:@)和全局变量(标识符:@@)
2.数据定义语言(Data Definition Language,DDL),用来建立数据库及数据库对象,绝大部分以CREATE开头.
3.数据控制语言(Data Control Language,DCL),用来控制数据库组件的存取许可,权限等命令.
4.数据操作语言(Data Manipulation Language,DML),用来操作数据库中数据的命令(SELETCT,UPDATE等).
5.流程控制语言(Flow Control Language,FCL),用于控制应用程序流程的语句(IF,CASE等).
T-SQL中的注释1.嵌入行内的注释语句: 用 --
2.块注释语句:用 " /* " 和 " */ "
T-SQL中的批处理包含一条或多条T-SQL语句的语句组,这组语句从应用程序一次性地发送到SQLServer服务器执行.SQL Server服务器将批处理语句编译成一个可执行单元,这种单元称为执行单元.
在语句末尾添加"GO"标志着批处理的结束.
变量 1.局部变量1.声明变量
DECLARE {@变量名 数据类型 [,...n]}
2.变量赋值
SET @变量名 = 值
SELECT @变量名 = 值
set一次只能赋一个值,select一次可以赋多个值
3.局部变量的作用域
从声明变量开始的地方到声明变量的批处理或存储过程的结尾.
4.局部变量的应用
(1)作为计数器计算循环执行的次数或控制循环执行的次数.
(2)保存数据值以供控制语言测试.
(3)保存存储过程要返回的数据值或函数返回值.
2.全局变量(1)全局变量不是由用户的程序定义的,它们是在服务器级定义的.
(2)用户只能使用预先定义的全局变量.
(3)引用全局变量时,必须以标记符"@@"开头.
常用全局变量
@@ERROR 返回执行上一个T-SQL语句的错误代码数量,并覆盖上上次的错误代码的次数
@@IDENTITY 返回上次插入的标识值,并覆盖上上次的标识值
@@ROWCOUNT 返回受上一语句影响的行数.并覆盖上上次的行数记录
@@SERVERNAME 返回运行SQL Server的本地服务器的名称
输出语句
PRINT语句:以文本形式输出.
语法:
PRINT {字符串 | 变量 | 函数 | 字符串表达式}
SELECT语句:以网格形式输出.
T-SQL的流程控制 IF...ELSE语句条件判断语句.
语法:
IF(条件表达式) 语句或语句块 ELSE 语句或语句块
定义语句块,使用控制流程关键字BEGIN和END.
语法:
IF(条件表达式) BEGIN ...语句 END ELSE BEGIN ...语句 END
IF...ELSE可以嵌套使用,而且嵌套层数没有限制.
CASE语句格式一:简单CASE格式:将某个表达式与一组简单表达式进行比较,以确定结果.
语法:
CASE 测试表达式 WHEN 表达式 THEN 结果表达式1 [...n] [ELSE 结果表达式n] END
格式二:搜索CASE格式:计算一组布尔表达式,以确定结果.
语法:
CASE WHEN 布尔表达式 THEN 结果表达式1 [...n] [ELSE 结果表达式n] END
WHILE语句WHILE 布尔表达式 {语句或语句块} [BREAK] {语句或语句块} [CONTINUE] {语句或语句块}
若要定义语句块,则需要使用BEGIN和END将语句括起来.
使用子查询常用的子查询有:
使用比较运算符(>,
IN 和 NOT IN 子查询:引入的子查询结果是包含零个值或多个值的列表.
EXISTS 和 NOT EXISTS子查询:子查询返回的行是否存在.
语法:
WHILE [NOT] EXISTS (子查询)
,服务器空间,网站空间,香港服务器租用