Post on 03-Jan-2016
description
第第 33 讲 讲 Transact-SQLTransact-SQL 语言编程语言编程
学习目的
掌握 Transact-SQL语言编程知识,包括标识符、表达式、运算符、常用函数、常量与变量,常用系统存储过程,以及流控语句等,并能够根据实际需要,进行综合运用编写程序代码。
内容框架
内容框架
编程基础知识
编程基础知识
问题如何编制类似 C 语言的基本程序?要能编程须具备哪些结构? Transact-SQL语法规则 引用数据库对象的规则 Transact-SQL的语法元素
标识符:常规标识符、分隔标识符
练习练习11
问题:下面的标识符是否符合SQL Server的命名规则:$table@table#_var_1order detailsorder
常用函数
常用函数
聚合函数 字符串函数日期函数 系统函数数学函数 元数据函数安全函数 游标函数配置函数 排名函数
排名函数
排名函数
ROW_NUMBER():返回查询结果每一行的序号。
RANK():返回查询结果每一行的排名,排名有可能会间断。 DENSE_RANK:返回查询结果每一行的排名,排名没有任何间断。
常用函数(练习)
常用函数(练习)
思考:如何将一个数字转换为一个字符串?
如何截取字符串?如何根据一个人的出生年月,使用日期函数计算年龄?
如何对一个数进行取整?进行四舍五入?
常量常量
常量:字符串常量数值常量日期常量uniqueidentifier常量
注:引用数值常量不用单引号,引用日期、字符串常量时需要加单引号
变量变量
变量:在程序运行过程中值是变化的量局部变量(以 @ 开头;使用DECLARE语句声明)
【问题】DECLARE @var1 int,@var2 money
SELECT @var1=50,@var2=$29.95
SELECT @var1,@var2 全局变量(也称配置函数,是系统定义的变量,以 @@开头;用户只能使用)
例如: @@version @@rowcount
练习练习22
问题: 编写程序计算两个整数之和
运算符
运算符
算术运算符( + 、-、 * 、 / 、% )
比较运算符( = 、 > 、 < 、 >= 、<= 、 <> 、 != 、 !< 、 !>)
逻辑运算符( NOT 、 OR 、 AND 、IN 、 LIKE 、 BETWEEN 、 EXISTS)
字符串连接运算符(+) 赋值运算符( = ) 位运算符( & 、 | 、 ^ 、 ~ )
常用系统存储过程
存储过程分为:系统存储过程用户定义的存储过程
常用存储过程练习:显示 Xk 数据库有哪些数据库对象USE Xk
GO
SP_HELP
GO
批处理
批处理
批处理的特点一次发给数据库服务器的所有的SQL 语句,由 GO 作为结束标志。
编译成一个可执行单元——执行计划
执行时,每次执行计划中的一条语句
特别注意:如果在一个批处理中,某条语句存在语法错误, SQL Server将不执行批处理中的任何语句。【例 】
流控语句
流控语句
【问题】如何用 SQL语句编程实现:求 1+2+3+4+…+100=?编程思想:代码:分析: WHILE、 BEGIN…END、IF…ELSE…、 GOTO的使用用法
练习练习33
编写程序,计算 n! ( n=10 ),并将结果显示出来
流控语句
流控语句
WAITFOR语句:1. WAITFOR DELAY ‘time’——
延迟一段时间2. WAITFOR TIME ‘time’——
等待到一个时刻
流控语句
流控语句
CASE语句(开关语句)【例】 P115 例 3.32
【练习】在 Xk数据库中显示班级编码、班级名称和系部名称(当系部编码为 01时,显示系部名称为“计算机系”;当系部编码为 02时,显示系部名称为“建筑系”;当系部编码为 03时,显示系部名称为“旅游系”),要求使用 CASE语句
本章总结
本章总结
重点掌握:SQL Server中标识符的命名规则
学会使用局部变量和全局变量学会使用一些常用的函数流控语句
学会编写简单的 SQL程序
课后任务
思考与练习:117页 1-6题