教育专题:第7章sql2000管理

上传人:痛*** 文档编号:244076147 上传时间:2024-10-02 格式:PPT 页数:179 大小:397KB
返回 下载 相关 举报
教育专题:第7章sql2000管理_第1页
第1页 / 共179页
教育专题:第7章sql2000管理_第2页
第2页 / 共179页
教育专题:第7章sql2000管理_第3页
第3页 / 共179页
点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,返回,第7章,SQL Server 2000,数据库管理系统,1,关于,SQL Server,SQL Server,是一个,关系数据库,管理系统。,它最初是由,Microsoft,、,Sybase,和,Ashton-Tate,三家公司联合开发的,于,1988,年推出了第一个,OS/2,版本。,后来,,Ashton-Tate,公司退出了,SQL Server,的开发。,而在,Windows NT,推出后,,Microsoft,与,Sybase,在,SQL Server,的开发上就分道扬镳了:,Microsoft,将,SQL Server,移植到,Windows NT,系统上,专注于开发推广,SQL Server,的,Windows NT,版本;,Sybase,则较专注于,SQL Server,在,UNIX,操作系统上的应用。,我们介绍的是,Microsoft SQL Server,。,2,SQL Server,2000,是,Microsoft,公司推出的,SQL Server,数据库管理系统的最新版本。,该版本继承了,SQL Server 7.0,版本的优点,同时又比它增加了许多更先进的功能:,具有,使用方便,、,可伸缩性好,与相关软件,集成程度高,等优点。,可跨越从运行,Microsoft Windows,98,的膝上型电脑到运行,Microsoft Windows,2000,的大型多处理器的服务器等多种平台使用。,SQL Server 2000,包括4个常见版本:,3,(1)企业版(,Enterprise Edition),支持所有的,SQL Server 2000,特性,可作为大型,Web,站点、企业,OLTP(,联机事务处理)以及数据仓库系统等的产品数据库服务器。,(2)标准版(,Standard Edition),用于小型的工作组或部门。,(3)个人版(,Personal Edition),用于单机系统或客户机。,(4)开发者版(,Developer Edition),用于程序员开发应用程序,这些程序需要,SQL Server 2000,作为数据存储设备。,此外,,SQL Server 2000,还有,Desktop Engine,(,桌面引擎)和,Windows CE,版,用户可以根据实际情况选择所要安装的,SQL Server 2000,版本。,4,7.1,SQL Server 2000,的新特性,7.1.1数据库增强,1. 支持扩展标示语言,XML(Extensible Markup Language),SQL Server 2000,对,XML,的支持表现在以下几个方面:,可以通过,URL(Uniform Resource Locator),访问,SQL Server,支持,XML-Data,模式,可检索编写,XML,数据,SQL Server 2000 OLE DB,增加了对,XML,文档的支持,2. 新的数据类型,SQL Server 2000,中增加了3 种新的数据类型:,BIGINT,、,SQL_VARIANT,和,TABLE,。,3.,数据行中的,Text,类型数据,SQL Server 2000,中可以将,TEXT,和,IMAGE,类型的数据直接存放到表的数据行中,而不是存放到不同的数据页中,这就减少了用于存储,TEXT,和,IMAGE,类型的空间并相应减少了磁盘处理这类数据的,I/O,数量。,5,4. 用户自定义函数,SQL Server 2000,扩展了,Transact-SQL,语言的可编程性,用户可以创建自己的,Transact-SQL,函数。用户自定义函数可以返回一个数量值或表。,5. 索引增强,可以在,计算列,上创建索引,这是一个很大的改进。,6. 全文检索增强,全文检索中增加了改变跟踪和图形过滤的功能,其中,图形过滤功能允许对存储在,IMAGE,类型列中的文档数据进行查询和创建索引。,7. 索引化视图,索引化视图允许在,视图上,创建索引,这就大大提高了需要频繁进行连接查询的程序的性能。,8. 分布式查询增强,SQL Server 2000,引入了,OPENROWSET(),的函数,它可以指定在分布式查询中的一个特定的连接信息,分布式查询优化器的功能有了进一步的提高,授予了,OLE DB,数据源更多的,SQL,操作权。,9. 触发器类型,创建触发器时可以通过,FOR,子句来指定触发器类型为,INSTEAD OF,型或,AFTER,型,不同类型的触发器执行的时机不同。,6,10. 级联参考完整性约束,级联参考完整性约束可以控制在删除或更新有外键约束的数据时所采取的操作,这种控制是通过在,CREATE TABLE,或,ALTER TABLE,命令中的,REFERENCES,子句中加入,ON DELETE,或,ON UPDATE,子句来实现的。,11.,Collation,增进,SQL Server 2000,用,Collation,来替代,Code pages,和,Sort Orders,,它比以前的版本提供了更多对,Collation,的支持,并引入了一个基于,Windows Collations,的新的,Collation,集合,可以指定数据库级或列级的,Collation。,7,7.1.2联合数据库服务器,SQL Server 2000,支持分布式的分区视图,可以跨越多个服务器水平地分割表。,1. 多个,SQL Server,实例,SQL Server 2000,支持在同一计算机上同时运行多个关系数据库实例,每个实例有其独立的系统和用户数据库集合,应用程序采用与连接不同计算机上的,SQL Server,实例大致相同的方式连接同一计算机上的各个实例。,2.,Failover,群集增强,对,Failover,群集的管理有了较大的改善,可以方便地安装、配置和管理一个,SQL Server 2000,的,Failover,群集。,3. 网络库(,Net-Library),增强,简化了客户机配置并支持同一计算机上的多实例连接。,4.,Kerberos,和安全授权,SQL Server 2000,使用,Kerberos,来支持客户机和服务器之间相互的身份验证,使用,Kerberos,和授权来支持复合认证以及,SQL Server,注册。,8,5. 备份(,Backup),和还原(,Restore),增强,SQL Server 2000,引入了一个更容易理解的模型来指定备份和还原的选项,同时还支持使用事务日志标识来还原工作到指定点或进行数据库的部分还原。,6. 对公用操作的可伸缩性增强,增强的公用操作包括快速差异备份并行的数据库一致性校验和并行扫描。,7. 复制增强,SQL Server 2000,改进并增强了合并复制、快照复制和事务复制等功能,并在复制中增加了可变化的订阅功能,因而实施、监视和管理复制变得更加容易。,8. 数据转换服务增强,(1)支持键和约束。,(2),DTS,支持键和约束可以使用数据导入导出向导从源表向目标表移动主键、外键和约束。,9,(3)新的定制任务,SQL Server 2000 DTS Designer,和,DTS,对象模型提供了新的自定义任务功能从而可以创建执行任务的包或设置基于实时环境属性的变量,包括从或向,Internet,以及,FTP,站点导入数据、发送数据、以异步方式运行包、创建互相发送消息的包、创建执行其它包的包以及在同一事务中包含多个包执行。,(4)将,DTS,包保存在,VB,文件中,将,DTS,包保存到,Microsoft Visual Basic,文件中,可以允许将通过,DTS,导入向导、,DTS,导出向导或,DTS Designer,创建的包与,Visual Basic,程序结合在一起或被需要引用,DTS,对象模型组件的,Visual Basic,开发者用作原型。,9.,SQL Server Analysis Services,SQL Server 7.0,中的,OLAP(Online Analytical Processing),服务转变为,SQL Server 2000,中的分析服务(,Analysis Services),,分析服务还包括了新的数据挖掘功能。,10.,SQL Server Meta Data Services,SQL Server 7.0,中的贮藏室(,Repository),部分在,SQL Server 2000,中转化为元数据服务(,Meta Data Services)。,10,7.2,SQL Server 2000,的主要组件,SQL Server 2000,提供了一整套的,管理工具,和,实用程序,,使用这些工具和程序,可以设置和管理,SQL Server,进行数据库管理和备份,并保证数据的安全和一致。,下面,对这些组件做一个简单的介绍。,1企业管理器(,Enterprise Manager),企业管理器是,SQL Server,中最重要的管理工具,在使用,SQL Server,的过程中大部分的时间都是和它打交道。,通过企业管理器可以管理所有的数据库系统工作和服务器工作,也可以调用其它的管理开发工具。,2查询分析器(,Query Analyzer),查询分析器用于执行,Transaction-SQL,命令等,SQL,脚本程序,以查询分析或处理数据库中的数据,这是一个非常实用的工具,对掌握,SQL,语言、理解,SQL Server,的工作有很大帮助。,使用查询分析器的熟练程度是衡量一个,SQL Server,用户水平的标准。,11,3服务管理器(,Service Manager),服务管理器用于启动、暂停或停止,SQL Server,的4种服务:、,DTC(Distributed Transaction Coordinator,分布式事务协调器),MSSQL Server OLAP service,SQL Server,SQL Server Agent,4,客户端网络实用工具(,Client Network Utility),客户端网络实用工具用于配置客户端的连接、测定网络库的版本信息以及设定本地数据库的相关选项。,5服务器网络实用工具(,Server Network Utility),服务器网络实用工具用于配置服务器端的连接、测定网络库的版本信息。,6导入和导出数据(,Import and Export Data),导入和导出数据采用,DTS Import/Export,向导来完成,此向导包含了所有的,DTS(Data Transformation Services,数据转换服务)工具提供了在,OLE DB,数据源之间复制数据的最简捷的方法。,12,7在,IIS,中配置,SQL XML,支持(,Configure SQL XML Support in IIS),IIS(Internet Information Services,因特网信息服务),此工具可以在运行,IIS,的计算机上定义、注册虚拟目录,并在虚拟目录和,SQL Server,实例之间创建关联。,8事件探查器(,Profiler),事件探查器的功能是监视,SQL Server,数据库系统引擎事件,主要用于监听,SQL Server,系统的运行性能。,9联机丛书(,Books Online),SQL Server 2000,提供了大量的联机文档,用户可以便捷地查询到许多很有价值的信息。,一个优秀的,SQL Server,管理员必然是使用联机文档的高手。,另外,在安装,SQL Server 2000,的同时,安装了,SQL Server,的升级向导,在“开始”菜单的“程序”项中,将鼠标移到“,Microsoft SQL Server,版本切换”上即可看到,SQL Server,升级向导。,SQL Server,升级向导用于将一个6.5 版本的,SQL Server,的设置和数据库复制升级到本机上安装的,SQL Server 2000,中。,13,7.3,Transact-SQL,程序设计,在,Transact-SQL,语言中标准的,SQL,语句畅通无阻。,Transact-SQL,也有类似于,SQL,语言的分类不过做了许多扩充。,在第3章中,我们曾介绍了标准,SQL,语言的语法及其基本使用方法,在此只介绍,Transact-SQL,语言中的其它部分。,7.3.1变量,7.3.2流程控制命令,7.3.3其它命令,7.3.4常用函数,14,7.3.1,变量,Transact-SQL,中可以使用两种变量:,局部变量,和,全局变量,。,1局部变量,局部变量是用户可自定义的变量,它的作用范围仅在程序内部。,在程序中通常用来储存从表中查询到的数据,或当作程序执行过程中暂存变量使用。,局部变量必须以,开头,而且必须先用,DECLARE,命令说明后才可使用。其说明形式如下:,DECLARE ,变量名,变量类型,,变量名变量类型,在,Transact-SQL,中不能像在一般的程序语言中一样使用“,变量=变量值,”来给变量赋值,必须使用,SELECT,或,SET,命令来设定变量的值。其语法如下:,SELECT ,局部变量= 变量值,SET ,局部变量量= 变量值,【例】,声明一个长度为 8 个字符的变量,id,,并赋值。,declare id char(8),select id =10010001,15,2全局变量,全局变量是,SQL Server,系统内部使用,的变量,其作用范围并不局限于某一程序,而是任何程序均可随时调用。,全局变量通常存储一些,SQL Server,的配置设定值和效能统计数据。用户可在程序中用全局变量来测试系统的设定值或,Transact-SQL,命令执行后的状态值。,全局变量不是由用户的程序定义的,它们是在服务器级定义的,只能使用预先说明及定义的全局变量。,引用全局变量时必须以“,”开头。,局部变量的名称不能与全局变量的名称相同,否则会在应用中出错。,3注释符,在,Transact-SQL,中可使用两类注释符:,1,ANSI,标准的注释符“,-,”用于,单行,注释。,2与,C,语言相同的程序注释符号,即“,/*/,”,/* 用于注释文字的开头,*/用于注释文字的结尾,可在程序中标识,多行,文字为注释。,16,7.3.2,流程控制命令,Transact-SQL,语言使用的流程控制命令与常见的程序设计语言类似,主要有以下几种控制命令。,7.3.2.1,BEGINEND,其语法如下:,BEGIN,END,BEGINEND,用来设定一个,程序块,,将在,BEGINEND,内的所有程序视为一个单元执行。,BEGINEND,经常在,条件语句,(如,IFELSE),中使用。,在,BEGINEND,中可,嵌套,另外的,BEGINEND,来定义另一程序块。,17,7.3.2.2,IF,ELSE,其语法如下:,IF ,ELSE ,条件表达式式,其中:,可以是各种表达式的组合,但表达式的值必须是逻辑值“真”或“假”。,ELSE,子句是可选的,最简单的,IF,语句没有,ELSE,子句部分。,IFELSE,用来判断当某一条件成立时执行某段程序,条件不成立时执行另一段程序。,如果不使用程序块,,IF,或,ELSE,只能执行一条命令。,IF ELSE,可以进行嵌套,在,Transact-SQL,中最多可嵌套32 级。,18,【例】,从,SC,数据表中求出学号为,S1,同学的平均成绩,如果此平均成绩大于或等于60分,则输出“,pass”,信息。,if,(,select,avg,(score),from,sc,where,sno,=S1,group by,sno,)=60,begin,print,pass,end,19,7.3.2.3,CASE,CASE,命令有两种语句格式:,格式1:,CASE ,WHEN ,THEN ,WHEN ,THEN ,ELSE ,END,该语句的执行过程是:,将,CASE,后面表达式的值与各,WHEN,子句中的表达式的值进行比较,,如果二者相等,则返回,THEN,后的表达式的值,然后跳出,CASE,语句,否则返回,ELSE,子句中的表达式的值。,ELSE,子句是可选项。当,CASE,语句中不包含,ELSE,子句时,如果所有比较失败时,,CASE,语句将返回,NULL。,20,【,例】,从学生表,S,中,选取,SNO,SEX,,如果,SEX,为“男”则输出“,M”,,如果为“女”输出“,F”。,SELECT SNO,SEX=,CASE,sex,WHEN ,男,THEN M,WHEN ,女,THEN F,END,FROM S,21,格式2:,CASE,WHEN ,THEN ,WHEN ,THEN ,ELSE ,END,该语句的执行过程是:,首先测试,WHEN,后的表达式的值,如果其值为真,则返回,THEN,后面的表达式的值,否则测试下一个,WHEN,子句中的表达式的值,如果所有,WHEN,子句后的表达式的值都为假,则返回,ELSE,后的表达式的值,如果在,CASE,语句中没有,ELSE,子句,则,CASE,表达式返回,NULL。,22,注:,CASE,命令可以嵌套到,SQL,命令中。,【例】,从,SC,表中查询所有同学选课成绩情况,凡成绩为空者输出“未考”、小于60分输出“不及格”、60分至70分输出“及格”、70分至90分输出“良好”、大于或等于90分时输出“优秀”。,SELECT SNO,CNO,SCORE=,CASE,WHEN SCORE IS NULL THEN ,未考,WHEN SCORE=60 AND SCORE=70 AND SCORE=90 THEN ,优秀,END,FROM SC,23,7.3.2.4,WHILECONTINUEBREAK,其语法如下:,WHILE ,BEGIN,BREAK,CONTINUE,命令行或程序块,END,WHILE,命令在设定的条件成立时,会重复执行命令行或程序块。,CONTINUE,命令可以让程序跳过,CONTINUE,命令之后的语句,回到,WHILE,循环的第一行,继续进行下一次循环。,BREAK,命令则让程序完全跳出循环,结束,WHILE,命令的执行。,WHILE,语句也可以嵌套。,24,如:,以下程序计算1100之间所有能被3整除的数的个数及总和。,DECLARE S SMALLINT,I SMALLINT,NUMS SMALLINT,SET S=0,SET I=1,SET NUMS=0,WHILE,(I=100),BEGIN,IF (I%3=0),BEGIN,SET S=S+I,SET NUMS=NUMS+1,END,SET I=I+1,END,PRINT S,PRINT NUMS,25,7.3.2.5,WAITFOR,其语法如下:,WAITFOR DELAY |,TIME ,|,ERROREXIT | PROCESSEXIT | MIRROREXIT,WAITFOR,命令用来暂时停止程序执行,直到所设定的等待时间已过或所设定的时间已到才继续往下执行。,其中时间必须为,DATETIME,类型的数据,但不能包括日期。,各关键字含义如下:,1,DELAY:,用来设定等待的时间,最多可达24 小时,2,TIME:,用来设定等待结束的时间点,3,ERROREXIT:,直到处理非正常中断,4,PROCESSEXIT:,直到处理正常或非正常中断,5,MIRROREXI:,直到镜像设备失败,26,【例】,等待1 小时2 分零3 秒后才执行,SELECT,语句。,waitfor,delay,01:02:03,select * from employee,27,7.3.2.6,GOTO,语法如下:,GOTO,标识符,GOTO,命令用来改变程序执行的流程,使程序跳到标有标识符的指定的程序行再继续往下执行。,作为跳转目标的标识符可为数字与字符的组合。但必须以“,:,”结尾。,在,GOTO,命令行,标识符后不必跟“,:,”,28,如:,求12310的总和。,DECLARE S SMALLINT,I SMALLINT,SET I=1,SET S=0,BEG:,IF (I=表达式的最小整数,FLOOR,返回=表达式的最小整数,ROUND,取整数,小数的第一位上四舍五入,符号函数,ABS,返回表达式的绝对值,SIGN,测试参数的正负号,返回0、1或-1,,其它函数,PI,返回值为,即3.1415926535897936,RAND,求0-1间的随机浮点数,表7.1,Transact-SQL,的算术函数,43,7.3.4.3字符串函数,字符串函数对,二进制数据,、,字符串,和,表达式,执行不同的运算。,此类函数作用于,CHAR,、,VARCHAR,、,BINARY,和,VARBINARY,数据类型以及可以隐式转换为,CHAR,或,VARCHAR,的数据类型。,可以在,SELECT,语句的,SELECT,和,WHERE,子句以及表达式中使用字符串函数。,常用的字符串函数有:,1字符转换函数,(1),ASCII(),ASCII(),函数返回字符表达式最左端字符的,ASCII,码值。,在,ASCII,函数中,纯数字的字符串可不用“,”括起来,但含其它字符的字符串必须用“,”括起来使用,否则会出错。,44,(2),CHAR(),CHAR(),函数用于将,ASCII,码转换为字符。,如果没有输入0 255 之间的,ASCII,码值,,CHAR(),函数会返回一个,NULL,值。,(3),LOWER(),LOWER(),函数把字符串全部转换为,小写,。,(4),UPPER(),UPPER(),函数把字符串全部转换为,大写,。,(5),STR(),STR(),函数把,数值型,数据转换为,字符型,数据。,其语法如下:,STR( length ),自变量,length,和,decimal,必须是非负值。,length,指定返回的字符串的长度。,decimal,指定返回的小数位数。,如果没有指定长度,缺省的,length,值为10 ,,decimal,缺省值为0 。,小数位数大于,decimal,值时,,STR(),函数将其下一位四舍五入。,指定长度应大于或等于数字的符号位数+小数点前的位数+小数点位数+小数点后的位数。,如果,小数点前的位数超过了指定的长度,则返回指定长度的*。,45,2去空格函数,(1),LTRIM(),LTRIM(),函数把字符串,头部,的空格去掉。,(2),RTRIM(),RTRIM(),函数把字符串,尾部,的空格去掉。,在许多情况下,往往需要得到头部和尾部都没有空格字符的字符串,这时可将上两个函数嵌套使用。,46,3取子串函数,(1),LEFT(),LEFT(),函数返回部分字符串。其语法如下:,LEFT(,),LEFT(),函数返回的子串是从字符串最左边起到第,integer_expression,个字符的部分。,若,integer_expression,为负值,则返回,NULL,值。,(2),RIGHT(),RIGHT(),函数返回部分字符串。其语法如下:,RIGHT(,),RIGHT(),函数返回的子串是从字符串右边第,integer_expression,个字符起到最后一个字符的部分。,若,integer_expression,为负值,则返回,NULL,值。,(3),SUBSTRING,SUBSTRING(),函数返回部分字符串。其语法如下:,SUBSTRING ( , length),SUBSTRING(),函数返回的子串是从字符串左边第,starting_ position,个字符起,length,个字符的部分。,其中表达式可以是字符串或二进制串或含字段名的表达式。,SUBSTRING(),函数不能用于,TEXT,和,IMAGE,数据类型。,47,4字符串比较函数,(1),CHARINDEX(),CHARINDEX(),函数返回字符串中某个指定的子串出现的开始位置。其语法如下:,CHARINDEX (,),其中,,substring,_expression,是所要查找的字符表达式,,expression,可为字符串也可为列名表达式。,如果没有发现子串,则返回0 值。,此函数不能用于,TEXT,和,IMAGE,数据类型。,(2),PATINDEX(),PATINDEX(),函数返回字符串中某个指定的子串出现的开始位置。其语法如下:,PATINDEX (,),其中子串表达式前后必须有百分号“%” ,否则返回值为0。,与,CHARINDEX(),函数不同的是,,PATINDEX(),函数的子串中可以使用通配符,且此函数可用于,CHAR、VARCHAR,和,TEXT,数据类型。,48,(3),SOUNDEX(),SOUNDEX(),函数返回一个四位字符码。其语法如下:,SOUNDEX (),SOUNDEX(),函数将,character _expression,转换为4 个字符的声音码。,其中第一个码为原字符串的第一个字符,第二到第四个字符则为数字,是该字符串的声音字母所对应的数字,但是忽略了除首字母外的串中的所有元音字母。,SOUNDEX(),函数可用来查找声音相似的字符串。,但,SOUNDEX(),函数对数字和汉字均只返回0 值。,49,(4),DIFFERENCE(),DIFFERENCE(),函数返回由,SOUNDEX,函数返回的两个字符表达式的值的差异。其语法如下:,DIFFERENCE (,),值的差异是用0、1、2、3、4 来表示的,含义如下:,0 两个,SOUNDEX(),函数返回值的第一个字符不同,1 两个,SOUNDEX(),函数返回值的第一个字符相同,2 两个,SOUNDEX(),函数返回值的第一、二个字符相同,3 两个,SOUNDEX(),函数返回值的第一、二、三个字符相同,4 两个,SOUNDEX(),函数返回值完全相同,50,5字符串操作函数,(1),QUOTENAME(),QUOTENAME(),函数返回被特定字符括起来的字符串。其语法如下:,QUOTENAME (,quote_ character),其中,,quote_ character,标明括字符串所用的字符,如“”、“(”、“”等,缺省值为“ ”。,(2),REPLICATE(),REPLICATE(),函数返回一个重复,character_expression,指定次数的字符串。其语法如下:,REPLICATE (character_expression,integer_expression),如果,integer_expression,值为负值,则,REPLICATE,函数返回,NULL,串。,(3),REVERSE(),REVERSE(),函数将指定的字符串的字符排列顺序颠倒。其语法如下:,REVERSE (,),其中,,character_expression,可以是字符串常数或一个列的值。,51,(4),REPLACE(),REPLACE(),函数返回被替换了指定子串的字符串。其语法如下:,REPLACE (,),REPLACE(),函数用,string_expression3,替换在,string_expression1,中的子串,string_expression2。,(5)SPACE(),SPACE(),函数返回一个有指定长度的空白字符串。其语法如下:,SPACE (),如果,integer_expression,值为负值,则,SPACE,函数返回,NULL,串。,52,(6),STUFF(),STUFF(),函数用另一子串替换字符串指定位置长度的子串。其语法如下:,STUFF(,,),如果起始位置为负或长度值为负,或者起始位置大于,character_expression1,的长度,则,STUFF(),函数返回,NULL,值。,如果,length,长度大于,character_expression1,的长度,则,character_expression1,只保留首字符。,53,7.3.4.4数据类型转换函数,在一般情况下,,SQL Server,会自动完成数据类型的转换。,例如,,可以直接将字符数据类型或表达式与,DATATIME,数据类型或表达式比较;当表达式中用了,INTEGER、SMALLINT,或,TINYINT,时,,SQL Server,也可将,INTEGER,数据类型或表达式转换为,SMALLINT,数据类型或表达式,这称为,隐式转换,。,如果不能确定,SQL Server,是否能完成隐式转换或者使用了不能隐式转换的其它数据类型,就需要使用数据类型转换函数做显式转换了。,此类函数有两个:,1,CAST(),CAST(),函数语法如下:,CAST ( AS length ),54,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,类型存储。,试图转换到不同长度的数据类型,会截短转换值并在转换值后显示“+”,以标识发生了这种截断。,用,CONVERT(),函数的,style,选项能以不同的格式显示日期和时间。,style,是将,DATATIME,和,SMALLDATETIME,数据转换为字符串时所选用的由,SQL Server,系统提供的转换样式编号,不同的样式编号有不同的输出格式,如表7.2所示。,55,表7.2,DATATIME,和,SMALLDATETIME,类型数据的转换格式,style1 style2,标准 输出格式,0 或100 缺省,mon dd yyyy hh,:mi Am/Pm,1 101 USA mm/,dd,/,yy,2 102 ANSI,yy,.mm.,dd,3 103 UK/French,dd,/mm/,yy,4 104 German dd.mm.,yy,5 105 Italian,dd,-mm-,yy,6 106,dd mon yy,7 107,mon dd yy,8 108,hh,:mi:,ss,9 109,mon dd yyyy hh,:mi:,sss,Am/Pm,10 110 USA mm=,dd,-,yy,11 111 Japan,yy,/mm/,dd,12 112 ISO,yymmdd,13 113 Europe,dd mon yyyy hh,:mi:,ss,:,mmm,(24h),14 114,hh,:mi:,ss,:,mmm,(24h),20 120 ODBC1,yyyy,-mm-,dd hh,:mi:,ss,(24h),21 121 ODBC2,yyyy,-mm-,dd hh,:mi:,ss,:,mmm,(24h),56,7.3.4.5日期函数,日期函数用来操作,DATETIME,和,SMALLDATETIME,类型的数据,执行算术运算。,与其它函数一样,可以在,SELECT,语句的,SELECT,和,WHERE,子句以及表达式中使用日期函数。,1,DAY(),DAY(),函数返回,date_expression,中的日期值。,2,MONTH(),MONTH(),函数返回,date_expression,中的月份值。,与,DAY(),函数不同的是,,MONTH(),函数的参数为整数时,一律返回整数值1,即,SQL Server,认为其是1900 年1 月。,3,YEAR(),YEAR(),函数返回,date_expression,中的年份值。,在使用日期函数时,其日期值应在1753 年到9999 年之间,这是,SQL Server,系统所能识别的日期范围,否则会出现错误。,57,4,DATEADD(),DATEADD(),函数语法如下:,DATEADD( ),DATEADD(),函数返回指定日期,date,加上指定的额外日期间隔,number,产生的新日期。,参数“,datepart,”,在日期函数中经常被使用,它用来指定构成日期类型数据的各组件,如年、季、月、日、星期等。其取值如表7.3所示。,58,表7.3 日期函数中,datepart,参数的取值,datepart,缩写 取值,year,yy,,,yyyy,1753 9999,quarter,qq,,q 1 4,month mm,m 1 12,day of year,dy,,y 1 366,day,dd,,d 1 31,week wk,,ww,1 54,weekday,dw,1 7,hour,hh,0 23,minute mi,n 0 59,second,ss,,s 0 59,millisecond ms 0 999,59,5,DATEDIFF(),DATEDIFF(),函数语法如下:,DATEDIFF(,),DATEDIFF(),函数返回两个指定日期在,datepart,方面的不同之处,即,date2,超过,date1,的差距值,其结果值是一个带有正负号的整数值针。,对不同的,datepart,,DATEDIFF(),函数所允许的最大差距值不一样,如:,datepart,为,second,时,DATEDIFF,函数所允许的最大差距值为68 年;,datepart,为,millisecond,时,,DATEDIFF(),函数所允许的最大差距值为24 天20 小时30 分23 秒647 毫秒。,60,6,DATENAME()
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 管理文书 > 施工组织


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


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