您的位置:首页 > 数据库

SQL SERVER 3 T-SQL编程与高级查询

2013-05-02 09:44 399 查看

1、T-SQL 与 SQL

SQL 第四代编程语言 你只需要告诉计算机你要做什么事情 例: select update

T-SQL 附加了第二代编程语言的特性,比如 流程控制(if-else while) 错误处理 存储过程 事物 触发器

2、 SQL 注释

-- 单行注释 /* */ 多行注释

3、批处理

10条插入语句 不加go批处理关键字的话 sql引擎 会一条一条处理(会影响效率)

加go批处理关键字的话 sql引擎 会一次性处理(提高处理效率)

4、 变量

分为 全局变量 @@(系统定义) 和 局部变量 @

(1)变量定义 declare @变量名 变量数据类型

示例 declare @count int,@count2 int

declare @count1 int

(2)变量赋值 set select

示例: set @count = 1 赋值只能一种

select @count = 1 赋值一般配合查询

例: select @name = StuName from student where StuNo = 'S25301'

(3) 在加go关键字以前,存储过程结束以前 变量 都是起作用的

(4)常用的全局变量 @@ERROR @@IDENTITY @@ROWCOUNT

5、输出

print 字符串 |变量| 函数| 字符串表达式

6、流程控制语句

(1) if-else

if(判断条件)

begin

语句1

语句2

end

else

begin

语句1

语句2

end

(2) case

-- 简单格式

select pcid,

case PCUse

when 0 then '空闲'

when 1 then '忙碌'

end as 'pcuse'

,pcnote from pcinfo

-- 搜索格式

select pcid,

case

when PCUse = 0 then '空闲'

when PCUse = 1 then '忙碌'

end as 'pcuse'

,pcnote from PCInfo

(3) while

while (循环成立的条件)

语句xxx

[break]

[continue]

示例:

declare @count int

while(1=1)

begin

select @count = COUNT(*) from cardInfo where cardBalance < 20

if (@count > 0)

update cardInfo set cardBalance = cardBalance + 1 where cardBalance < 20

else

break

end

7 、子查询

合并多个表中的数据的方法合并多个表中的数据的方法:

联合(Union)-合并多个数据表中的行

子查询-将一个查询包含到另一个查询中

联接-合并多个数据表中的列

EXISTS子句:

通过在子查询中使用EXISTS子句,可以对子查询中的行是否存在进行检查。

IN子查询:

IN子查询后面可跟随返回多条记录的子查询,用于检测某列的值是否在某个范围。

子查询划分:

使用比较运算符的子查询

IN和NOT IN子查询

EXISTS和NOT EXISTS子查询。

子查询若按所处位置划分,可以为子查询在WHERE关键字之后,子查询在FROM关键字之后、子查询在SELECT关键字之后。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: