第9章 transact-sql程序设计

上传人:今*** 文档编号:106671925 上传时间:2019-10-15 格式:PPT 页数:104 大小:1.29MB
返回 下载 相关 举报
第9章 transact-sql程序设计_第1页
第1页 / 共104页
第9章 transact-sql程序设计_第2页
第2页 / 共104页
第9章 transact-sql程序设计_第3页
第3页 / 共104页
第9章 transact-sql程序设计_第4页
第4页 / 共104页
第9章 transact-sql程序设计_第5页
第5页 / 共104页
点击查看更多>>
资源描述

《第9章 transact-sql程序设计》由会员分享,可在线阅读,更多相关《第9章 transact-sql程序设计(104页珍藏版)》请在金锄头文库上搜索。

1、第9章 Transact-SQL程序设计,数据库技术与应用-SQL Server 2008 ,9.1 数据与表达 式 9.2 函数 9.3 程序控制流 语句 9.4 游标管理与 应用 .,9.1 数据与表达式,1. Transact-SQL语言,SQL Server 2008数据库管理系统的编程语言为Transact-SQL语言,这是一种结构化查询语言,具有非常强大的数据库查询功能,是对标准结构化查询语言SQL的实现和扩展。 Transact-SQL增强了SQL语言的功能,又保持与标准SQL语言的兼容性。,9.1 数据与表达 式 9.2 函数 9.3 程序控制流 语句 9.4 游标管理与 应用

2、,9.1 数据与表达式,9.1.1 用户定义数据类型,SQL Server有4种基本数据类型:字符和二进制数据、日期/时间数据、逻辑数据和数值数据。SQL Server也支持用户定义的数据类型,但这只是使用户能够限定已有的数据类型,方便用户对数据的操作,而不是定义具有新的存储和检索特点的新类型。 SQL Server允许在系统数据类型的基础上建立用户定义的数据类型。用户定义数据类型可以用在CREATE DATABASE和ALTER DATABASE语句中定义数据表列,并且可以将默认和规则关联于用户定义数据类型,为用户定义数据类型的列提供默认值和完整性约束。 创建用户定义数据类型时,必须提供3个

3、参数:名称、作为新数据类型基础的系统数据类型和NULL值属性(数据类型是否允许NULL值)。,9.1 数据与表达 式 9.2 函数 9.3 程序控制流 语句 9.4 游标管理与 应用,9.1 数据与表达式,9.1.1 用户定义数据类型,在SQL Server中,提供了两种方式来创建用户定义数据类型:系统存储过程和SQL Server管理平台。 1. 使用系统存储过程来创建用户定义数据类型 命令格式如下: sp_addtype typename= type, phystype = system_data_type , nulltype = null_type , owner = owner_na

4、me ,9.1 数据与表达 式 9.2 函数 9.3 程序控制流 语句 9.4 游标管理与 应用,9.1 数据与表达式,9.1.1 用户定义数据类型,2.使用SQL Server管理平台创建用户定义数据类型 在SQL Server管理平台中,为Sales数据库创建一个不允许NULL值的test_add用户定义数据类型,操作步骤如下: (1)选择Sales数据库并展开,然后选择“可编程性”节点并展开,选择“类型”并展开,在“用户定义数据类型”节点上单击鼠标右键,在出现的快捷菜单中选择“新建用户定义数据类型”命令。弹出如图9-1所示的“新建用户定义数据类型”窗口。 (2)在“用户定义的数据类型属性

5、”对话框中的名称文本框内输入test_add,在“数据类型”下拉列表框中,选择char,在“长度”文本框中输入10, 选中“允许空值”复选框。 (3)单击“确定”按钮完成创建用户自定义数据类型。,9.1 数据与表达 式 9.2 函数 9.3 程序控制流 语句 9.4 游标管理与 应用,9.1 数据与表达式,9.1.1 用户定义数据类型,2.使用SQL Server管理平台创建用户定义数据类型,9.1 数据与表达 式 9.2 函数 9.3 程序控制流 语句 9.4 游标管理与 应用,9.1 数据与表达式,9.1.2 常量与变量,在程序运行中保持常值的数据,即程序本身不能改变其值的数据,称为常量,

6、在程序中经常直接使用文字符号表示。相应地,在程序运行过程中可以改变其值的数据,称为变量。,9.1 数据与表达 式 9.2 函数 9.3 程序控制流 语句 9.4 游标管理与 应用,9.1 数据与表达式,9.1.2 常量与变量,1.常量 常量是表示特定数据值的符号,其格式取决于其数据类型,具有以下几种类型:字符串常量和二进制常量、日期/时间常量、数值常量、逻辑数据常量。 (1)字符串和二进制常量 字符串常量括在单引号或双引号内,由字母(a-z、A-Z)、数字字符(0-9)以及特殊字符(如感叹号(!)、at 符()和数字号(#)等组成。若字符串中本身又有单引号字符,则单引号字符要用两个单引号来表示

7、。 例如:Cincinnati、OBrien、Process X is 50% complete.为字符串常量。,9.1 数据与表达 式 9.2 函数 9.3 程序控制流 语句 9.4 游标管理与 应用,9.1 数据与表达式,9.1.2 常量与变量,1.常量 (2)日期/时间常量 datetime常量使用特定格式的字符日期值表示,用单引号括起来。表9-1概括了几种常见的日期时间格式:,9.1 数据与表达 式 9.2 函数 9.3 程序控制流 语句 9.4 游标管理与 应用,9.1 数据与表达式,9.1.2 常量与变量,1.常量 (3)数值常量 数值常量包括整型常量、浮点常量、货币常量、uniq

8、ueidentifier常量。 整型常量由没有用引号括起来且不含小数点的一串数字表示。例如,1894、2014、-1635、+121等均为整型常量。 浮点常量主要采用科学记数法表示,例如,101.5E5、0.5E-2为浮点常量。 精确数值常量由没有用引号括起来且包含小数点的一串数字表示。例如,1894.1204、2.0、+1984.0321、-2013.528为精确数值常量,也称为定点常量。 货币常量是以“$”为前缀的一个整型或实型常量数据,不使用引号。例如,$12.5、$542023.14为货币常量。 uniqueidentifier常量是表示全局唯一标识符GUID值的字符串。可以使用字符或

9、二进制字符串格式指定。,9.1 数据与表达 式 9.2 函数 9.3 程序控制流 语句 9.4 游标管理与 应用,9.1 数据与表达式,9.1.2 常量与变量,1.常量 (4)逻辑数据常量 逻辑数据常量使用数字0或1表示,并且不使用引号。非0的数字当作1处理。 (5)空值 在数据列定义之后,还需确定该列是否允许空值(NULL)。允许空值意味着用户在向表中插入数据时可以忽略该列值。空值可以表示整型、实型、字符型数据。,9.1 数据与表达 式 9.2 函数 9.3 程序控制流 语句 9.4 游标管理与 应用,9.1 数据与表达式,9.1.2 常量与变量,2.变量 变量用于临时存放数据,变量中的数据

10、随着程序的运行而变化。变量由变量名和变量值组成,类型与常量相同,但变量名不允许与函数名或命令名相同。 变量的命名使用常规标识符,即以字母、下划线(_)、at符号()、数字符号(#)开头,后续字母、数字、at符号、美元符号($)、下划线的字符序列。不允许嵌入空格或其他特殊字符。,9.1 数据与表达 式 9.2 函数 9.3 程序控制流 语句 9.4 游标管理与 应用,9.1 数据与表达式,9.1.2 常量与变量,2.变量 SQL Server 2008将变量分为全局变量和局部变量两类,其中全局变量由系统定义并维护,通过在名称前面加“”符号区别于局部变量,局部变量的首字母为单个“”。 (1)局部变

11、量 局部变量是指作用域局限在一定范围内的变量,相对于全局变量,局部变量需要先声明后使用。,9.1 数据与表达 式 9.2 函数 9.3 程序控制流 语句 9.4 游标管理与 应用,9.1 数据与表达式,9.1.2 常量与变量,2.变量 创建局部变量使用DECLARE语句,局部变量的定义仅存在于声明它的批处理、存储过程或触发器中,处理结束后,存储在局部变量中的信息将丢失。 DECLARE语句的语法格式如下: DECLARE local_variable data_type ,n 变量名最大长度为30个字符。一条DECLARE语句可以定义多个变量,各变量之间使用逗号隔开。 例如: DECLARE

12、name varchar(30),type int,9.1 数据与表达 式 9.2 函数 9.3 程序控制流 语句 9.4 游标管理与 应用,9.1 数据与表达式,9.1.2 常量与变量,局部变量的赋值:可以通过SELECT、UPDATE和SET语句进行。,9.1 数据与表达 式 9.2 函数 9.3 程序控制流 语句 9.4 游标管理与 应用,9.1 数据与表达式,9.1.2 常量与变量,在一条语句中可以同时对几个变量进行赋值,9.1 数据与表达 式 9.2 函数 9.3 程序控制流 语句 9.4 游标管理与 应用,例如: DECLARE LastName char(8),Firstname

13、 char(8),BirthDate datetime SELECT LastName=Smith,Firstname=David,BirthDate=1985-2-20 SELECT LastName,Firstname,BirthDate 局部变量没有被赋值前,其值是NULL,若要在程序中引 用它,必须先赋值。,9.1 数据与表达式,9.1.2 常量与变量,9.1 数据与表达 式 9.2 函数 9.3 程序控制流 语句 9.4 游标管理与 应用,【例9-1】 使用SELECT语句从customer表中检索出顾客编号为“C0002”的行,再将顾客的名字赋给变量customer。,DECLAR

14、E customer varchar(40),curdate datetime SELECT customer=customer_name,curdate=getdate() FROM customer WHERE customer_id=C0002,9.1 数据与表达式,9.1.2 常量与变量,利用UPDATE为局部变量赋值,9.1 数据与表达 式 9.2 函数 9.3 程序控制流 语句 9.4 游标管理与 应用,【例9-2】 将sell_order表中的transporter_id列值为“T001”、goods_id列值为“G00003”的order_num列的值赋给局部变量order_n

15、um。 DECLARE order_num float UPDATE sell_order SET order_num=order_num*2 WHERE transporter_id=T001 AND goods_id=G00003,9.1 数据与表达式,9.1.2 常量与变量,9.1 数据与表达 式 9.2 函数 9.3 程序控制流 语句 9.4 游标管理与 应用,9.1 数据与表达式,9.1.2 常量与变量,2.变量 (2)全局变量 全局变量通常被服务器用来跟踪服务器范围和特定会话期间的信息,不能显式地被赋值或声明。 全局变量不能由用户定义,也不能被应用程序用来在处理器之间交叉传递信息。

16、,9.1 数据与表达 式 9.2 函数 9.3 程序控制流 语句 9.4 游标管理与 应用,9.1 数据与表达式,9.1.2 常量与变量,2.变量 (2)全局变量 表9-2列出了SQL Server中常用的全局变量。,9.1 数据与表达 式 9.2 函数 9.3 程序控制流 语句 9.4 游标管理与 应用,9.1 数据与表达式,9.1.3 运算符与表达式,运算符用来执行数据列之间的数学运算或比较操作。Transact-SQL运算符可以分为算术运算符、位运算符、逻辑运算符、比较运算符、连接运算符等。 表达式是符号与运算符的组合。简单的表达式可以是一个常量、变量、列、运算符或函数,复杂表达式是由运算符连接一个或多个简单表达式。,9.1 数据与表达 式 9.2 函数 9.3 程序控制流 语句 9.4 游标管理与 应用,9.1 数据与表达式,9.1.3 运算符与表达式,1.算术运算符与表达式 算术运算符用于数值型列或

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号