资源描述:
《第9章 Transact-SQL程序设计.ppt》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、第9章Transact-SQL程序设计Transact-SQL语言Transact-SQL作为嵌入在SQLServer中的结构化查询语言,具有非常强大的数据库查询功能.Transact-SQL扩展了SQL的功能,引入了程序流程控制语句,具有丰富的语言元素和强大的程序设计能力.Transact-SQL语句执行的操作类似于其他程序设计语言,可以声明变量、使用流程控制语句、向用户显示信息以及执行其他许多功能.可以写出更为复杂的查询语句,或建立驻留在服务器上的基于代码的对象,如存储过程和触发器.Transact-SQL语言的特点Transact-SQL
2、是在标准SQL基础上添加了流程控制等要素后的、由SQLServer2000支持的语言.Transact-SQL是一门解释性的语言,所编写的程序由SQLServer2000服务器解释执行.Transact-SQL具备高级编程语言的基本要素,包括变量、常量、数据类型、流程控制和函数等.Transact-SQL程序是DBA执行复杂管理任务和开发SQLServer2000数据库应用系统的基础.本章内容9.1数据与表达式9.2函数9.3程序控制流语句9.4游标管理与应用9.1数据与表达式9.1数据与表达式SQLServer支持4种基本数据类型:字符和二进
3、制数据类型、日期/时间数据类型、逻辑数据类型、数值数据类型,用于各类数据值的存储、检索和解释.SQLServer也支持用户定义的数据类型,但这只是使用户能够限定已有的数据类型,方便用户对数据的操作,而不是定义具有新的存储和检索特点的新类型.SQLServer允许在系统数据类型的基础上建立用户定义的数据类型.用户定义数据类型可以在CREATETABLE和ALTERTABLE语句中定义数据表列,并且可以将默认和规则关联于用户定义数据类型,为用户定义数据类型的列提供默认值和完整性约束.9.1数据与表达式9.1.1用户定义数据类型创建用户定义数据类型时
4、,必须提供3个参数:名称、作为新数据类型基础的系统数据类型和NULL值属性(数据类型是否允许NULL值).当在几个表中必须存储同一种数据类型,并且为保证列有相同的数据类型、长度和可控性时,可以使用用户定义的数据类型.9.1数据与表达式9.1.1用户定义数据类型命令格式如下:sp_addtype[@typename=]type,[@phystype=]system_data_type[,[@nulltype=]'null_type'][,[@owner=]'owner_name']执行系统存储过程sp_addtype后,如果执行成功,则会返回数值
5、0;否则返回数值1.1.使用系统存储过程来创建用户定义数据类型9.1.1用户定义数据类型例:为Sales数据库创建一个不允许为NULL值的test_add用户定义数据类型.USESalesGOEXECsp_addtypetest_add,'Varchar(10)','NOTNULL'GO此后,test_add可用为数据列或变量的数据类型.2.使用企业管理器创建用户定义数据类型在企业管理器中,为Sales数据库创建一个不允许NULL值的test_add用户定义数据类型,操作步骤如下.9.1.1用户定义数据类型9.1数据与表达式9.1.2常量与变量
6、在程序运行中保持常值的数据,即程序本身不能改变其值的数据,称为常量,在程序中经常直接使用文字符号表示.相应地,在程序运行过程中可以改变其值的数据,称为变量.1.常量常量是表示特定数据值的符号,其格式取决于其数据类型,具有以下几种类型:(1)字符串和二进制常量字符串常量括在单引号内并包含字母、数字、字符(a-z、A-Z和0-9)以及特殊字符,如感叹号(!)、at符(@)和数字号(#).例如:'Cincinnati'、'O''Brien'、'ProcessXis50%complete.'为字符串常量.二进制常量具有前辍0x并且是十六进制数字字符串,
7、它们不使用引号.例如0xAE、0x12Ef、0x69048AEFDD010E、0x(空串)为二进制常量.(2)日期/时间常量datetime常量使用特定格式字符日期值表示,用单引号括起来.输入时,可以使用“/”、“.”、“-”作日期/时间常量的分隔符。系统默认mm/dd/yySQLServer中可使用SETDATEFORMAT命令来设定日期格式输入格式datetime值Smalldatetime值Sep3,20051:34:34.1222005-09-0301:34:34.1232005-09-0301:35:009/3/20051PM2005
8、-09-0313:00:00.0002005-09-0313:00:009.3.200513:002005-09-0313:00:00.0002005