第7章 Transact-SQL程序设计 本章导读 Transact-SQL是内嵌在 SQL Server中的结构化查询语言,除了具备数据查询、 定义、操纵和控制功能外,还引入了程序设计的思想和过程控制结构,增 加了函数、系统存储过程,触发器等。灵活运用 Transact-SQL语言,可以 编写基于客户/服务器模式下的数据库应用程序。 知识要点: 程序设计基础知识 流程控制语句 内置函数 用户自定义函数 事务处理 71程序设计基础知识 7.2流程控制语句 73其它语句 74内置函数 75用户自定义函数
第7章 Transact-SQL程序设计 本章导读: Transact-SQL是内嵌在SQL Server中的结构化查询语言,除了具备数据查询、 定义、操纵和控制功能外,还引入了程序设计的思想和过程控制结构,增 加了函数、系统存储过程,触发器等。灵活运用Transact-SQL语言,可以 编写基于客户/服务器模式下的数据库应用程序。 知识要点: 程序设计基础知识 流程控制语句 内置函数 用户自定义函数 事务处理 7.1 程序设计基础知识 7.2 流程控制语句 7.3 其它语句 7.4 内置函数 7.5 用户自定义函数
7.1程序设计基础知识 程序设计的基础是处理数据,而数据在程序中最 常见的形式是常量、变量和表达式。 7.1.1常量 7.1.2变量 7.1.3表达式
7.1 程序设计基础知识 程序设计的基础是处理数据,而数据在程序中最 常见的形式是常量、变量和表达式。 7.1.1 常量 7.1.2 变量 7.1.3 表达式
7.1.1常量 常量也称字面值或标量值,是表示一个特定数据值的符号 量的格式取决于 它所表示的值的数据类型。 SQL Server中常量有如下几种形式 (1)字符串常量 字符串常量分为ASC字符串常量和 Unicode字符串常量。 ASC字符串常量 AsC川字符串常量:是指用定界符单引号(")括起来,由英文字母(a~z,A~Z) 和数字(0~9)以及特殊符号(!,@)等ASC字符组成的字符序列。如 中国,'合肥等。 如果在字符串中嵌入单引号("),可以使用两个连续的单引号(")表示嵌入的 个单引号(");而中间没有任何字符的两个连续的单引号(")表示空串。 Unicode字符串常量 Unicode字符串常量:则是以标识符(N)为前缀,再引导由定界符单引号(") 括起来的字符串。如N" china', Hefei'等。 Unicode字符串常量被解释为 Unicode数据。 Unicode数据中的每个字符用两个 字节存储,而ASC‖字符串中的每个字符则使用一个字节存储 注意: Unicode字符串的前缀N必须是大写字母。如:" database'是字符串常量, 而 Database是 Unicode常量
7.1.1 常量 常量也称字面值或标量值,是表示一个特定数据值的符号,常量的格式取决于 它所表示的值的数据类型。SQL Server中常量有如下几种形式: (1)字符串常量 字符串常量分为ASCII字符串常量和Unicode字符串常量。 ASCII字符串常量 ASCII字符串常量:是指用定界符单引号(')括起来,由英文字母(a~z,A~Z) 和数字(0~9)以及特殊符号(!,@)等ASCII字符组成的字符序列。如' 中国' , '合肥'等。 如果在字符串中嵌入单引号('),可以使用两个连续的单引号('')表示嵌入的 一个单引号(');而中间没有任何字符的两个连续的单引号('')表示空串。 Unicode字符串常量 Unicode字符串常量:则是以标识符(N)为前缀,再引导由定界符单引号(') 括起来的字符串。如N'china',N'hefei'等。 Unicode字符串常量被解释为Unicode数据。Unicode 数据中的每个字符用两个 字节存储,而ASCII字符串中的每个字符则使用一个字节存储。 注意:Unicode字符串的前缀N必须是大写字母。如:'database'是字符串常量, 而N'database'是Unicode常量
7.1.1常量 (2)整型常量 按照整型常量的不同表示方式,又分为b常量、 interger 常量和二进制常量。 二进制位常量(bit 由数字0或1表示,没有定界符。如果使用一个大于1 的数字,将被转换为1。 十进制常量( interger) 由正、负号和数字0~9组成,正号可以省略。例如: 2006、3、-2009。 二进制常量 使用0X作为前辍,后面跟随16进制数字字符串,没有定 界符。例如:0xcCE、0x12E9、0x(空二进制常量)
7.1.1 常量 (2)整型常量 按照整型常量的不同表示方式,又分为bit常量、interger 常量和二进制常量。 二进制位常量(bit) 由数字 0 或 1 表示,没有定界符。如果使用一个大于1 的数字,将被转换为1。 十进制常量(interger) 由正、负号和数字0~9组成,正号可以省略。例如: 2006、3、-2009。 二进制常量 使用0x作为前辍,后面跟随16进制数字字符串,没有定 界符。例如:0xcdE、0x12E9、0x(空二进制常量)
7.1.1常量 (3)日期间常量 日期/时间常量用定界符单引号(")括起来的特 定格式的字符。 SQL Server提供并识别多种 格式的日期/时间,使用 set dateformat mdydmylymd命令可以设置日期时间格式 常见的日期格式有: 字母日期格式:"Apr15,1998,15-Apr 1998 数字日期格式:'10/15/2004,"2004-10-15, 2009年3月22日 未分隔的日期格式:980415,04/15/98 常见的时间格式有:'14:30:24,"0424PM
7.1.1 常量 (3)日期/时间常量 日期/时间常量用定界符单引号(')括起来的特 定格式的字符。SQL Server提供并识别多种 格式的日期/时间,使用set dateformat mdy|dmy|ymd命令可以设置日期/时间格式。 常见的日期格式有: 字母日期格式:'April 15, 1998','15-April- 1998' 数字日期格式:'10/15/2004','2004-10-15', '2009年3月22日' 未分隔的日期格式:'980415','04/15/98' 常见的时间格式有:'14:30:24','04:24 PM