欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    关系数据库管理系统SQLServer.ppt

    • 资源ID:90630124       资源大小:346.65KB        全文页数:54页
    • 资源格式: PPT        下载积分:11.9金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要11.9金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    关系数据库管理系统SQLServer.ppt

    第七章第七章 SQL Server 2000 SQL Server 2000 语法基础语法基础 7.1SQL Server简介7.2SQLServer的数据类型7.3 T-SQL语言第7章SQLServer2000语法基础本章简单介绍了关系数据库管理系统SQLServer的数据类型,主要介绍了T-SQL语言的语法基础,包括标识符、语法规则、运算符、变量、函数、流程控制语句等,让读者对关系数据库管理系统SQLServer2000的查询语言-T-SQL语言有一个基本的了解,从而进一步利用数据库进行开发打好基础。7.1SQLServer简介SQLServer是使用客户机/服务器(C/S)体系结构的关系型数据库管理系统(RDBMS)。1988年推出了第一个OS/2版本,1992年,SQLServer移植到NT上后,Microsoft成了这个项目的主导者,1994年以后,Microsoft专注于开发、推广SQLServer的WindowsNT版本1996年,Microsoft公司推出了SQLServer6.5版本,1998年,推出了SQLServer7.0版本,2000年推出了SQLServer2000。SQLServer2000常见的版本有:企业版(EnterpriseEdition)、标准版(StandardEdition)、个人版(PersonalEdition)和开发人员版(DeveloperEdition)。企业版:一般作为数据库服务器使用。标准版:一般用于小型的工作组或部门。个人版:主要适用于移动用户。开发人员版:适用于应用程序开发。7.2SQLServer的数据类型 数据类型是数据的一种属性,表示数据所表示信息的类型。任何一种计算机语言都定义了自己的数据类型。当然,不同的程序语言都具有不同的特点,所定义的数据类型的各类和名称都或多或少有些不同。SQL Server 2000 提供了以下常见的数据类型:1二进制数据类型 二进制数据包括 Binary、Varbinary 和 Image。Binary 数据类型既可以是固定长度的(Binary),也可以是变长度的,Binary(n)是 n 位固定的二进制数据。其中,n 的取值范围是从 1 到 8000。其存储容量的大小是 n+4 个字节。Varbinary(n)是 n 位变长度的二进制数据。其中,n 的取值范围是从 1 到 8000。其存储容量的大小是 n+4个字节,不是n 个字节。在 Image 数据类型中存储的数据是以位字符串存储的,不是由 SQL Server 解释的,必须由应用程序来解释。例如,应用程序可以使用BMP、TIEF、GIF 和 JPEG 格式把数据存储在 Image 数据类型中。2字符数据类型 字符数据是由任何字母、符号和数字任意组合而成的数据,字符数据的类型包括 Char、Varchar 和 Text。Varchar 是变长字符数据,其长度不超过 8KB。Char 是定长字符数据,其长度最多为 8KB。超过 8KB 的ASCII 数据可以使用Text数据类型存储。例如,因为 Html 文档全部都是 ASCII 字符,并且在一般情况下长度超过 8KB,所以这些文档可以 Text 数据类型存储在SQL Server 中。3Unicode 数据类型 Unicode 数据类型包括 Nchar,Nvarchar 和Ntext。在 Microsoft SQL Server 中,传统的非 Unicode 数据类型允许使用由特定字符集定义的字符。在 SQL Server安装过程中,允许选择一种字符集。使用 Unicode 数据类型,列中可以存储任何由Unicode 标准定义的字符。在 Unicode 标准中,包括了以各种字符集定义的全部字符。使用Unicode数据类型,所占用的空间是使用非 Unicode 数据类型所占用的空间大小的两倍。在 SQL Server 中,Unicode 数据以 Nchar、Nvarchar 和 Ntext 数据类型存储。使用这种字符类型存储的列可以存储多个字符集中的字符。当列的长度变化时,应该使用Nvarchar 字符类型,这时最多可以存储 4000 个字符。当列的长度固定不变时,应该使用 Nchar 字符类型,同样,这时最多可以存储4000 个字符。当使用 Ntext 数据类型时,该列可以存储多于 4000 个字符。4日期和时间数据类型 日期和时间数据类型包括 Datetime 和 Smalldatetime两种类型,日期和时间数据类型由有效的日期和时间组成。例 如,有 效 的 日 期 和 时 间 数 据 包 括“4/01/98 12:15:00:00:00 PM”和“1:28:29:15:01AM 8/17/98”。前一个数据类型是日期在前,时间在后一个数据类型是霎时间在前,日期在后。在 Microsoft SQL Server中,日期和时间数据类型包括Datetime 和 Smalldatetime 两种类型时,所存储的日期范围是从 1753 年 1 月 1 日开始,到9999 年12 月 31 日结束(每一个值要求 8 个存储字节)。使用 Smalldatetime 数据类型时,所存储的日期范围是 1900年 1 月 1日 开始,到 2079 年 12 月 31 日结束(每一个值要求 4 个存储字节)。日期的格式可以设定。设置日期格式的命令如下:Set DateFormat format|format _var|其中,format|format_var 是日期的顺序。有效的参数包括 MDY、DMY、YMD、YDM、MYD 和 DYM。在默认情况下,日期格式为MDY。例如,当执行 Set DateFormat YMD 之后,日期的格式为年 月 日 形式;当执行 Set DateFormat DMY 之后,日期的格式为日 月 年 形式 5数字数据类型 数字数据只包含数字。数字数据类型包括正数和负数、小数(浮点数)和整数,整数由正整数和负整数组成,例如 39、25、0-2 和 33967。在 Micrsoft SQL Server 中,整数存储的数据类型是Int,Smallint和 Tinyint。Int 数据类型存储数据的范围大于 Smallint 数据类型存储数据的范围,而 Smallint 据类型存储数据的范围大于Tinyint 数据类型存储数据的范围。使用 Int 数据的存储数据的范围是从-2 147 483 648 到 2 147 483 647(每一个值要求4个字节存储空间)。使用 Smallint 数据类型时,存储数据的范围从-32 768 到 32 767(每一个值要求2个字节存储空间)。使用Tinyint 数据类型时,存储数据的范围是从0 到255(每一个值要求1个字节存储空间)。精确小数的数据在 SQL Server 中的数据类型是 Decimal 和 Numeric。这种数据所占的存储空间根据该数据的位数后的位数来确定。在SQL Server 中,近似小数数据的数据类型是 Float 和 Real。例如,三分之一这个分数记作.3333333,当使用近似数据类型时能准确表示。因此,从系统中检索到的数据可能与存储在该列中数据不完全一样。6货币数据表示正的或者负的货币数量。在 Microsoft SQL Server 中,货币数据的数据类型是Money 和 Smallmoney,Money数据类型要求 8 个存储字节,Smallmoney 数据类型要求 4 个存储字节。7特殊数据类型 特殊数据类型包括前面没有提过的数据类型。特殊的数据 类 型 有 3种,即 Timestamp、Bit 和 Uniqueidentifier。7.3T-SQL语言 在SQLServer中,使用的是T-SQL语言,T-SQL是ANSLSQL的加强版语言,它提供了标准的SQL命令,另外,还对ANSLSQL命令做了许多扩充,提供类似Basic、Pascal和C等第三代语言的基本功能,如变量说明、程序流程控制、语言功能函数等。但是,因为SQLServer与其他编程工具的定位点不同,所以这些命令的功能侧重于处理SQLServe中的数据,其他功能仍需要前端设计工具(如FoxPro、Delphi、PowerBuilder和VisralBasic等)来处理。因此,一般称SQLServe、Oracle和Informix等数据库系统为“数据库存引擎”。由于T-SQL的基础是ANSISQL,关于ANSLSQL语言我们已在第4章介绍过。因此,本节只是介绍一下T-SQL语言的基本语法知识。7.3.1 标识符 在数据库的兼容级别设置为80时,常规标识符遵守以下的命名规则:(1)标识符长度可以从1到128个字符,局部临时标识符的长度是不以超过116个字符的。(2)标识符的首字符必须为字母、“-”、#符号,其中字母可以是拉丁字符的大小写az和AZ,以及其他语言的字母符号。标识符中的和#具有特殊意义。当标识符为开头时,它表示局部变量或参数,以两个为开始符时,它表示一个全局变量。当标识符以#开始时,它表示一个临时数据库对象。()标识符第一个字符后面的字符可以为UnicodeStandard所定义的字符、数字、#或符号。()标识符内不能嵌入空格和特殊符号。()标识符不能与关键字同名,无论是大写还是小写版本。7.3.2 语法规则、运算符、变量 1注释 在SQL Server中,有两种类型的注释字符:(1)单行注释:使用两个连在一起的减号“-”作为注释符;(2)多行注释:使用“/*/”作为注释符。2.运算符 (1)算术运算符 算术运算符包括加(+)、减()、乘(*)、除(/)和取余(%)(2)赋值运算符 Transact-SQL中只有一个赋值运算符,即等号(=)(3)位运算符 位运算符包括按位与(&)、按位或(|)、按位异或()和求反()。位运算符用来对整型数据或者二进制数据(image数据类型除外)之间执行位操作。要求在位运算符左右两侧的操作数不能同时是二进制数据。(4)比较运算符 比较运算符包括:等于(=)、大于()、大于或等于(=)、小于()、小于或等于(=)、不等于(或!=)、不小于(!),其中!=、!、!不是ANSI标准的运算符。(5)逻辑运算符 逻 辑 运 算 符 包 括 与(AND)、或(OR)和 非(NOT)等运算符。逻辑运算返回布尔值,值为TRUE或FALSE。(6)字符串连接运算符(+)连接运算符“+”用于连接两个或两个以上的字符或二进制串、列名或者串和列的混合体,将一个串加入到另一个串的末尾。其语法如下:+(7)运算符的优先级 括号:();乘、除、求模运算符:*,/,%;加减运算符:,;比较运算符:=,=,=,!=,!,!;位运算符:,&,|;逻辑运算符:NOT;逻辑运算符:AND;逻辑运算符:OR。3变量 (1)全局变量 全局变量是SQL Server系统内部使用的变量,其作用范围并不局限于某一程序,而是任何程序均可随时调用全局变量通常存储一些SQL Server的配置设定值和效能统计数据。用户可在程序中用全局变量来测试系统的设定值或transact-SQL命令执行后的状态值。在使用全局变量时应该注意以下几点:全局变量不是由用户的程序定义的,它们是在服务器级定应义的。用户只能使用预先定义的全局变量。引用全局变量时,必须以标记符“”开头。全局变量对用户来说是只读的。局部变量的名称不能与全局变量的名称相同。(2)局部变量 局部变量是用户可自定义的变量,它的作用范围仅在程序内部。在程序中通常用来储存从表中查询到的数据,或当作程序执行过程中暂存变量使用。局部变量必须以“”开头,而且必须先用DECLARE命令说明后才可使用。其说明形式如下:DECLARE 变量名 变量类型 变量名 变量类型 其中变量类型可以是SQL Server 2000支持的所有数据类型,也可以是用户自定义的数据类型。在Transact-SQL中不能像在一般的程序语言中一样使用“变量=变量值”来给变量赋值。必须使用SELECT或SET命令来设定变量的值,其语法如下:SELECT局部变量=变量值 SET 局部变量=变量值 【例7.1】声明一个长度为10 个字符的变量“id”并赋值declareidchar(10)selectid=10010001 【注意】可以在Select命令查询数据时,在Select命令中直接将列值赋给变量。【例7.2】查询编号为“10010001”的员工和工资,将其分别赋予变量name和wage。use pangu declarename char(30)wage money selectname=e_name,wage=e_wage from employee where emp_id=10010001 selectname as e_name,wage as e_wage 运行结果如下:e_name e_wage-张三 8000.00007.3.3 函数1系统函数 系统函数用于获取有关计算机系统、用户、数据库和数据库对象的信息。系统函数可以让用户在得到信息后,使用条件语句,根据返回的信息进行不同的操作。与其它函数一样,可以在SELECT 语句的SELECT和WHERE子句以及表达式中使用系统函数。2字符串函数 字符串函数对二进制数据、字符串和表达式执行不同的运算。此类函数作用于CHAR、VARCHAR、BINARY、和VARBINARY 数据类型以及可以隐式转换为CHAR 或VARCHAR的数据类型。可以在SELECT 语句的SELECT 和WHERE 子句以及表达式中使用字符串函数。常用的字符串函数有:(1)字符转换函数 有以下几种字符转换函数:ASCII()ASCII()函数返回字符表达式最左端字符的ASCII 码值。ASCII()函数语法如下:ASCII()【例7.3】select ascii(123)as 123,ascii(123)as 123,ascii(abc)as abc 运行结果如下:123 “123”“abc”-49 49 97 【注意】在ASCII()函数中,纯数字的字符串可不用括起来,但含其它字符的字符串必须用括起来使用,否则会出错。CHAR()CHAR()函数用于将ASCII 码转换为字符。其语法如下:CHAR()如果没有输入0 255 之间的ASCII 码值,CHAR()函数会返回一个NULL 值。LOWER()LOWER()函数把字符串全部转换为小写,其语法如下:LOWER()【例7.4】select lower(Abc),lower(ABC)运行结果为:abc abc UPPER()UPPER()函数把字符串全部转换为大写,其语法如下:UPPER(character_expression)【例7.5】select upper(Abc),lower(abc)运行结果为:ABC abc STR()STR()函数把数值型数据转换为字符型数据,其语法如下:STR(,length,)自变量length 和decimal 必须是非负值,length 指定 返回的字符串的长度,decimal 指定返回的小数位数。如果没有指定长度,缺省的length 值为10,decimal 缺省值为0。小数位数大于decimal 值时,STR()函数将其下一位四舍五入。指定长度应大于或等于数字的符号位数+小数点前的位数+小数点位数+小数点后的位数。如果 小数点前的位数超过了指定的长度,则返回指定长度的“*”【例7.6】select str(123),str(123456,5),str(-123.456,8,3),str(123.456,5),str(123.456,8,2)运行结果如下:-123 *-123.456 123 123.46 (2)去空格函数 去空格函数有如下两种:LTRIM()LTRIM()函数把字符串头部的空格去掉,其语法如下:LTRIM()【例7.7】select ltrim(123)运行结果如下:-123 RTRIM()RTRIM()函数把字符串尾部的空格去掉,其语法如下:RTRIM()【例7.8】Select rtrim(123 )运行结果如下:-123 提示:在许多情况下,往往需要得到头部和尾部都没有空格字符的字符串,这时可将上两个函数嵌套使用。【例7.9】select rtrim(ltrim(abcd )运行结果如下:-abcd(3)取子串函数 取子串函数如下所示:LEFT()LEFT()函数返回部分字符串,其语法如下:LEFT(,)LEFT()函数返回的子串是从字符串最左边起到第 integer_expression 个字符的部分。若integer_expression 为负值,则返回NULL 值。【例7.10】select left(SQL server 2000,10)运行结果如下:-SQL server RIGHT()RIGHT()函数返回部分字符串,其语法如下:RIGHT(,)RIGHT()函数返回的子串是从字符串右边第integer_expression 个字符起到最后一个字符的部分。若integer_expression 为负值,则返回NULL 值。【例7.11】select right(SQL server 2000,4)运行结果如下:-2000 SUBSTRING()SUBSTRING()函数返回部分字符串,其语法如下:SUBSTRING(,length)SUBSTRING()函数返回的子串是从字符串左边第 starting_ position 个字符起length个字符的部分。其中表达式可以是字符串或二进制串或含字段名的表达式。SUBSTRING()函数不能用于TEXT 和IMAGE 数据类型。【例7.12】select substring(SQL server 2000,5,6)运行结果如下:-server(4)字符串比较函数 字符串比较函数如下所示:CHARINDEX()CHARINDEX()函数返回字符串中某个指定的子串出现的开始位置,其语法如下:CHARINDEX(,)其中substring _expression 是所要查找的字符表达式,expression 可为字符串也可为列名表达式。如果没有发现子串,则返回0 值。此函数不能用于TEXT 和IMAGE 数据类型。【例7.13】select charindex(def,abcdefgh)运行结果如下:-4 PATINDEX()PATINDEX()函数返回字符串中某个指定的子串出现 的 开始位置,其语法如下:PATINDEX(,)其中子串表达式前后必须有百分号“%”否则返回值为0。【例7.14】select patindex(%def%,abcdefgh),patindex(def,abcdefgh)运行结果如下:-4 0 与CHARINDEX()函数不同的是,PATINDEX()函数的子串中可以使用通配符,且此函数可用于CHAR、VARCHAR 和TEXT 数据类型。(5)字符串操作函数 字符串操作函数如下所示:QUOTENAME()QUOTENAME()函数返回被特定字符括起来的字符串,其语法如下:QUOTENAME(,quote_ character)其中quote_ character 标明括字符串所用的字符,如“”、“(”、“”等,缺省值为“”select quotename(123,quotename(123)运行结果如下:-123 123 REPLICATE()REPLICATE()函数返回一个重复character_expression 指定次数的字符串,其语法 如下:REPLICATE(character_expression integer_expression)如果integer_expression 值为负值,则REPLICATE()函数返回NULL 串。【例7.15】select replicate(123,3),replicate(123,-3)运行结果如下:-123123123 NULL REVERSE()REVERSE()函数将指定的字符串的字符排列顺序颠倒,其语法如下:REVERSE()其中character_expression 可以是字符串、常数或一个列的值。【例7.16】select reverse(456),reverse(abc)运行结果如下:-654 cba REPLACE()REPLACE()函数返回被替换了指定子串的字符串,其语法如下:REPLACE(,)REPLACE()函数用string_expression3 替换在string_expression1 中的子串string_expression2。【例7.17】select replace(abcdefg,def,123)运行结果如下:-abc123gSPACE()SPACE()函数返回一个有指定长度的空白字符串,其语法如下:SPACE()如果integer_expression 值为负值,则SPACE()函数返回NULL 串。【例7.18】select space(6),space(-3)运行结果如下:-NULL STUFF()STUF()函数用另一子串替换字符串指定位置、长度的子串,其语法如下:STUFF(,)如果起始位置为负或长度值为负,或者起始位置大于character_expression1 的长度,则STUFF()函数返回NULL 值。如果length 长度大于character_expression1 的长度,则character_expression1 只保留首字符。selectstuff(abc123gh,3,3,def),stuff(123,6,2,d),stuff(123,1,3,abc)运行结果如下:-abcdefghNULLabc3日期和时间函数 (1)日期函数 日期函数用来操作DATETIME 和SMALLDATETIME 类型的数据,执行算术运算。与其它函数一样,可以在SELECT 语句的SELECT 和WHERE 子句以及表达式中使用日期函数。其使用方法如下:日期函数参数,其中参数个数应不同的函数而不同。DAY()DAY()函数语法如下:DAY()DAY()函数返回date_expression 中的日期值。【例7.19】select day(1),day(34),day(5/7/2005)运行结果如下:-2 4 7 MONTH()MONTH()函数语法如下:MONTH()MONTH()函数返回date_expression 中的月份值。【例7.20】select month(5/7/2005),month(8)运行结果如下:-5 1 与DAY()函数不同的是,MONTH()函数的参数为整数时,一律返回整数值1,即SQL Server 认为其是1900 年1 月。YEAR()YEAR()函数语法如下:YEAR()YEAR()函数返回date_expression 中的年份值。【例7.21】select year(1),year(2),year(5/7/2005)运行结果如下:-1900 1900 2005 【注意】在使用日期函数时,其日期值应在1753年到9999年之间,这是SQL Server系统所能识别的日期范围,否则会出现错误。【例7.22】select year(1/1/1400)运行结果如下:-服务器:消息 242,级别 16,状态 3,行 14数学函数(1)三角函数 SIN(float_expression)返回以弧度表示的角的正弦 COS(float_expression)返回以弧度表示的角的余弦 TAN(float_expression)返回以弧度表示的角的正切 COT(float_expression)返回以弧度表示的角的余切(2)反三角函数 ASIN(float_expression)返回正弦是FLOAT 值的以弧度表示的角 ACOS(float_expression)返回余弦是FLOAT 值的以弧度表示的角 ATAN(float_expression)返回正切是FLOAT 值的以弧度表示的角 ATAN2(float_expression1,float_expression2)返回正切是float_expression1/float_expres-sion2的以弧度表示的角(3)角度转换弧度函数 DEGREES(numeric_expression)把弧度转换为角度返回与表达式相同的数据类型可为 INTEGER/MONEY/REAL/FLOAT 类型 RADIANS(numeric_expression)把角度转换为弧度返回与表达式相同的数据类型可为-INTEGER/MONEY/REAL/FLOAT 类型(4)幂函数 EXP(float_expression)返回表达式的指数值 LOG(float_expression)返回表达式的自然对数值 LOG10(float_expression)返回表达式的以10 为底的对数值 SQRT(float_expression)返回表达式的平方根(5)取近似值函数 CEILING(numeric_expression)返回=表达式的最小整数返回的数据类型与表达式相同可为 NTEGER/MONEY/REAL/FLOAT 类型 FLOOR(numeric_expression)返回=表达式的最小整数返回的数据类型与表达式相同可为-INTEGER/MONEY/REAL/FLOAT 类型 ROUND(numeric_expression)返回以integer_expression 为精度的四舍五入值返回的数据(6)符号函数 ABS(numeric_expression)返回表达式的绝对值返 回 的 数 据 类 型 与 表 达 式 相 同 可 为 -INTEGER/MONEY/REAL/FLOAT 类型 SIGN(numeric_expression)-测试参数的正负号返回0 零值1 正数或-1 负数返回的数据类型 与表达式相同可为INTEGER/MONEY/REAL/FLOAT 类型(7)其它函数 PI()返回值为 RAND(integer_expression)用 任 选 的integer_expression做种子值得出0-1 间的随机浮点数。5转换函数 在一般情况下,SQL Server 会自动完成数据类型的转换,例如,可以直接将字符数据类型或表达式与DATATIME 数据类型或表达式比较当表达式中用了INTEGER、SMALLINT或TINYINT 时,SQL Server 也可将INTEGER 数据类型或表达式转换为SMALLINT数据类型或表达式,这称为隐式转换。如果不能确定SQL Server 是否能完成隐式转换或者使用了不能隐式转换的其它数据类型,就需要使用数据类型转换函数做 显式转换了。此类函数有两个:(1)CAST()CAST()函数语法如下:CAST(AS length)(2)CONVERT()CONVERT()函数语法如下:CONVERT(length,style)【注意】data_type为SQL Server系统定义的数据类型,用户自定义的数据类型不能在此使用。length用于指定数据的长度,缺省值为30。把CHAR或VARCHAR类型转换为诸如INT或SAMLLINT这样的INTEGER类型、结果必须是带正号(+)或负号(-)的数值。TEXT类型到CHAR或VARCHAR类型转换最多为8000个字符,即CHAR或VARCHAR数据类型是最大长度。IMAGE类型存储的数据转换到BINARY或VARBINARY类型,最多为8000个字符。把整数值转换为MONEY或SMALLMONEY类型,按定义的国家的货币单位来处理,如人民币、美元、英镑等。BIT类型的转换把非零值转换为1,并仍以BIT类型存储。试图转换到不同长度的数据类型,会截短转换值并在转换值后显示“+”,以标识发生了这种截断。【例7.23】select cast(1234 as char),convert(int,5.26),convert(bit,123.45)运行结果如下:-1234 5 1 用CONVERT()函数的style 选项能以不同的格式显示日期和时间。style 是将DATATIME 和SMALLDATETIME 数据转换为字符串时所选用的由SQL Server 系统提供的转换样式编号,不同的样式编号有不同的输出格式。6用户自定义函数 在SQLServer2000中用户自定义函数是作为一个数据库对象来管理的,可以使用企业管理器(EnterpriseManager)或Transact-SQL命令来创建、修改、删除。用Transact-SQL命令创建用户自定义函数的语法格式如下:CREATE FUNCTION 函数名称 (形式参数名称 AS 数据类型)RETURNS 返回数据类型 BEGIN 函数内容 RETURN 表达式 END 调 用用户自定义函数的基本语法为:变量=用户名.函数名称(实际参数列表)【注意】在调用返回数值的用户自定义函数时,一定要在函数名称的前面加上用户名。7.3.4 流程控制语句 1IFELSE 其语法如下:IF ELSE 条件表达式 其中可以是各种表达式的组合,但表达式的值必须是逻辑值“真”或“假”。ELSE子句是可选的,最简单的IF语句没有ELSE子句部分。IFELSE用来判断当某一条件成立时执行某段程序,条件不成立时执行另一段程序。如果不使用程序块,IF或ELSE只能执行一条命令。IFELSE可以进行嵌套。【例7.24】declare a int,b int,c int select a=5,b=6,c=4 if ab print ab-打印字符串ab else if bc print bc else print cb 运行结果如下 bc 【注意】在Transact-SQL中最多可嵌套32级2BEGINEND 其语法如下:BEGIN END BEGINEND用来设定一个程序块,将在BEGINEND内的所有程序视为一个单元执行BEGINEND经常在条件语句,如IFELSE中使用。在BEGINEND中可嵌套另外的BEGINEND来定义另一程序块。3CASECASE 命令有两种语句格式:CASE WHEN THEN WHENTHEN ELSE END 或CASE WHEN THEN WHEN THEN ELSE ENDCASE命令可以嵌套到SQL命令中。【例7.25】在一个名为gzgl的数据库中,调整教职工的工资,职称为“教授1”的上调10%,职称为“副教授”的上调8%,职称为“讲师”的上调6%,其它上调4%。use gzgl update zcgzb set gzgs=case when zhicheng=教授 then gzgs*1.1 when zhicheng=副教授 then gzgs*1.08 when zhicheng=讲师 then gzgs*1.06 else gzgs*1.04 end【注意】执行CASE子句时,只运行第一个匹配的子句。4WHILECONTINUEBREAK 其语法如下:WHILE BEGIN BREAK CONTINUE 命令行或程序块 END WHILE 命令在设定的条件成立时会重复执行命令行或程序块。CONTINUE命令可以让程序跳过CONTINUE 命令之后的语句,回到WHILE 循环的第一行命令。BREAK 命令则让程序完全跳出循环,结束WHILE 命令的执行。WHILE 语句也可以嵌套。利用WHILECONTINUEBREAK语句对1到100进行求和 declare Count int,Sum int select Sum=0,Count=1 while Count=100 begin select Sum=Sum+Count select Count=Count+1 end print Sum go 运行结果如下 50505WAITFOR 其语法如下:WAITFOR DELAY|TIME|ERROREXIT|PROCESSEXIT|MIRROREXIT WAITFOR 命令用来暂时停止程序执行,直到所设定的等待时间已过或所设定的时间已到才继续往下执行。其中时间必须为DATETIME 类型的数据,如:11:15:27,但不能包括日期各关键字含义如下:DELAY 用来设定等待的时间最多可达24 小时;TIME 用来设定等待结束的时间点;ERROREXIT 直到处理非正常中断;PROCESSEXIT 直到处理正常或非正常中断;MIRROREXIT 直到镜像设备失败。【例7.26】等待2 小时3 分零5秒后才执行SELECT 语句 waitfor delay 02:03:05 select*from BookRecord【例7.27】等到下午5点55分才执行SELECT 语句 waitfor time 17:55:00 select*from BookRecord6GOTO 语法如下:GOTO 标识符 GOTO 命令用来改变程序执行的流程,使程序跳到标有标识符的指定的程序行再继续往下执行。作为跳转目标的标识符可为数字与字符的组合,但必须以“:”结尾,如12:或a_1:。在GOTO 命令行,标识符后不必跟“:”。【例7.28】利GOTEO语句实现分行打印字符1、2、3、4 declare i int select i=1 bh_1:print i select i=i+1 while i j return 1 else return-1 如果没有指定返回值,SQL Server 系统会根据程序执行的结果返回一个内定值。如果运行过程产生了多个错误,SQL Server系统将返回绝对值最大的数值;如果此时用户此时定义了返回值,则以返回用户定义的值。RETURN语句不能b返回NULL值。

    注意事项

    本文(关系数据库管理系统SQLServer.ppt)为本站会员(wuy****n92)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开