sqlserver程序设计

sqlserver程序设计

ID:27942849

大小:207.50 KB

页数:23页

时间:2018-12-07

sqlserver程序设计_第1页
sqlserver程序设计_第2页
sqlserver程序设计_第3页
sqlserver程序设计_第4页
sqlserver程序设计_第5页
资源描述:

《sqlserver程序设计》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、-第10章Transact-SQL程序设计教学目标终极目标:会利用变量、函数、流程控制语句编写Transact-SQL程序实现对数据库系统的操作。促成目标:1.能正确理解和使用变量2.能正确理解和使用函数3.能正确理解和使用流程控制语句相关知识什么是Transact-SQL?前面我们已经学习了有关SQL的知识,SQL是关系型数据库系统的标准语言,标准的SQL语句几乎可以在所有的关系型数据库上可以不加修改地使用。但标准的SQL不支持流程控制,仅仅是一些简单的语句,有时候使用起来不方便。为此,大型的关系型数据库系统都在标准的SQL基础上,结合自身的特点推出

2、了可以编程的、结构化的SQL编程语言,比如SQLServer2000的Transact-SQL、Oracle9i的PL/SQL。可能有同学会问了,SQL不是很好用吗,我们什么时候需要使用Transact-SQL呢?如果你的工作仅仅是简单地查询SQLServer2000数据库的数据,那么学习SQL也就够了。对于一些复杂的查询,SQL就鞭长莫及了,尤其是如果在查询过程中需要变量、判断、循环等控制时就必须使用Transact-SQL。建立SQLServer2000数据库的目的还是为了开发各种应用系统,要开发C/S模式的数据库应用系统,往往会用到存储过程、触发

3、器、函数这样的编程对象,这时就必须使用Transact-SQL。Transact-SQL程序的结构其实我们前面学习的SQL范例都可以称为是Transact-SQL程序。下面我们通过一个实例来说明一个稍复杂的Transact-SQL。/*Transact-SQL程序的实例*/useschoolgodeclare@avgradeint--判断成绩set@avgrade=60if(selectavg(grade)fromscwherecno='c01')>=@avgrade--输出结果select'课程平均成绩超过'+convert(varchar(3),@

4、avgrade)else--输出结果select'课程平均成绩不超过'+convert(varchar(3),@avgrade)--执行批处理.---go由此可见,Transact-SQL程序主要的语法要素如下:ì变量ì注释符ì运算符ì函数ì流程控制语句ì批处理10.1变量Transact-SQL中可以使用两种变量:局部变量和全局变量。10.1.1局部变量局部变量是用户可自定义的变量,它的作用范围仅在程序内部。在程序中通常用来储存从表中查询到的数据,或当作程序执行过程中暂存变量使用。局部变量必须以@开头,而且必须先用DECLARE命令声明后才可使用。其

5、说明形式如下:DECLARE@变量名变量类型[,@变量名变量类型…]在使用DECLARE命令声明以后,所有的变量都被赋予初值NULL例:声明一个变量Declare@ichar(5)可以在一个declare语句中声明多个变量例:declare@iint,@jint,@kint在Transact-SQL中不能像在一般的程序语言中一样使用“变量=变量值”来给变量赋值,必须使用SELECT或SET命令来设定变量的值。其语法如下:SELECT@变量名=变量值SET@变量名=变量值【注意】:SET与SELECT的区别下表列出SET与SELECT的区别:setsel

6、ect同时对多个变量同时赋值不支持支持表达式返回多个值时出错将返回的最后一个值赋给变量表达式未返回值变量被赋null值变量保持原值下面以具体示例来说明问题:createtablechinadba1(useridint,addrvarchar(128))insertintochinadba1(userid,addr)values(1,'addr1')insertintochinadba1(userid,addr)values(2,'addr2').---insertintochinadba1(userid,addr)values(3,'addr3')1.

7、同时对多个变量同时赋值,使用set赋值declare@addr1varchar(60),@addr2varchar(60)set@addr1='aaa',@addr2='bbb'','附近有语法错误。同时对多个变量同时赋值,使用select赋值declare@addr1varchar(60),@addr2varchar(60)select@addr1='aaa',@addr2='bbb'2.表达式返回多个值时,使用SET赋值declare@addrvarchar(128)set@addr=(selectaddrfromchinadba1)/*--出错信

8、息为服务器:消息512,级别16,状态1,行2子查询返回的值多于一个。当子查询跟随在=、!=、

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。