版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、1 sql server 2000sql server 2000 数据库管理系统数据库管理系统 2 关于关于 sql server sql server sql server sql server 是一个是一个关系数据库关系数据库管理系统。管理系统。 它最初是由它最初是由microsoftmicrosoft、sybasesybase和和ashton-tateashton-tate三三 家公司联合开发的,于家公司联合开发的,于19881988年推出了第一个年推出了第一个os/2os/2版版 本。本。 后来,后来,ashton-tateashton-tate公司退出了公司退出了sql server
2、sql server的开发。的开发。 而在而在windows ntwindows nt推出后,推出后,microsoftmicrosoft与与sybasesybase在在 sql serversql server的开发上就分道扬镳了:的开发上就分道扬镳了: vmicrosoftmicrosoft将将sql server sql server 移植到移植到windows ntwindows nt系统上,系统上, 专注于开发推广专注于开发推广sql serversql server的的windows ntwindows nt版本;版本; vsybase sybase 则较专注于则较专注于sql s
3、erversql server在在unixunix操作系统上的操作系统上的 应用。应用。 我们介绍的是我们介绍的是microsoft sql servermicrosoft sql server 。 3 sql serversql server 2000 2000是是microsoftmicrosoft公司推出的公司推出的sql sql serverserver数据库管理系统的一个重要版本。数据库管理系统的一个重要版本。 该版本继承了该版本继承了sql server 4.0sql server 4.0版本的优点,同版本的优点,同 时又比它增加了许多更先进的功能:时又比它增加了许多更先进的功能:
4、 v具有具有使用方便使用方便、可伸缩性好可伸缩性好与相关软件与相关软件集成程度高集成程度高 等优点。等优点。 v可跨越从运行可跨越从运行microsoft windows microsoft windows 9898的膝上型电脑的膝上型电脑 到运行到运行microsoft windows microsoft windows 20002000的大型多处理器的服的大型多处理器的服 务器等多种平台使用。务器等多种平台使用。 sql server 2000sql server 2000包括包括4 4个常见版本:个常见版本: 4 (1 1)企业版()企业版(enterprise editionenter
5、prise edition) q 支持所有的sql server 2000 特性,可作为大型web 站点、 企业oltp(联机事务处理)以及数据仓库系统等的产品数据 库服务器。 (2 2)标准版()标准版(standard editionstandard edition) q 用于小型的工作组或部门。 (3 3)个人版()个人版(personal editionpersonal edition) q 用于单机系统或客户机。 (4 4)开发者版()开发者版(developer editiondeveloper edition) q 用于程序员开发应用程序,这些程序需要sql server 200
6、0 作为数据存储设备。 v此外,此外,sql server 2000 sql server 2000 还有还有desktop enginedesktop engine(桌(桌 面引擎)和面引擎)和windows cewindows ce 版,用户可以根据实际情况选版,用户可以根据实际情况选 择所要安装的择所要安装的sql server 2000 sql server 2000 版本。版本。 5 4.14.1sql server 2000sql server 2000的新特性的新特性 .1数据库增强数据库增强 1. 1. 支持扩展标示语言支持扩展标示语言xmlxml(extens
7、ible markup languageextensible markup language) sql server 2000 sql server 2000 对对xml xml 的支持表现在以下几个方面:的支持表现在以下几个方面: q可以通过url(uniform resource locator)访问sql server q支持xml-data 模式 q可检索编写xml 数据 qsql server 2000 ole db 增加了对xml 文档的支持 2. 2. 新的数据类型新的数据类型 qsql server 2000 中增加了3 种新的数据类型:bigint、 sql_variant和
8、table。 3. 3. 数据行中的数据行中的texttext类型数据类型数据 q sql server 2000 中可以将text 和image 类型的数据直接存放到 表的数据行中,而不是存放到不同的数据页中,这就减少了用于存 储text 和image 类型的空间并相应减少了磁盘处理这类数据的i/o 数量。 6 4. 4. 用户自定义函数用户自定义函数 q sql server 2000 扩展了transact-sql语言的可编程性,用户可 以创建自己的transact-sql函数。用户自定义函数可以返回一个数 量值或表。 5. 5. 索引增强索引增强 q 可以在计算列上创建索引,这是一个很
9、大的改进。 6. 6. 全文检索增强全文检索增强 q 全文检索中增加了改变跟踪和图形过滤的功能,其中,图形过滤 功能允许对存储在image类型列中的文档数据进行查询和创建索引。 7. 7. 索引化视图索引化视图 q 索引化视图允许在视图上创建索引,这就大大提高了需要频繁进 行连接查询的程序的性能。 8. 8. 分布式查询增强分布式查询增强 q sql server 2000 引入了openrowset()的函数,它可以指定在分 布式查询中的一个特定的连接信息,分布式查询优化器的功能有了 进一步的提高,授予了ole db 数据源更多的sql 操作权。 9. 9. 触发器类型触发器类型 q 创建触
10、发器时可以通过for 子句来指定触发器类型为instead of 型或after 型,不同类型的触发器执行的时机不同。 7 10. 10. 级联参考完整性约束级联参考完整性约束 q 级联参考完整性约束可以控制在删除或更新有外键约束的 数据时所采取的操作,这种控制是通过在create table 或 alter table 命令中的references 子句中加入on delete 或 on update 子句来实现的。 11. collation 11. collation 增进增进 q sql server 2000 用collation 来替代code pages 和sort orders
11、,它比以前的版本提供了更多对collation 的支持, 并引入了一个基于windows collations 的新的collation集 合,可以指定数据库级或列级的collation。 8 .2联合数据库服务器联合数据库服务器 sql server 2000 sql server 2000 支持分布式的分区视图,可支持分布式的分区视图,可 以跨越多个服务器水平地分割表。以跨越多个服务器水平地分割表。 1. 1. 多个多个sql server sql server 实例实例 q sql server 2000 支持在同一计算机上同时运行多个关系 数据库实例,每个实例有其独立的
12、系统和用户数据库集合, 应用程序采用与连接不同计算机上的sql server 实例大致相 同的方式连接同一计算机上的各个实例。 2. failover 2. failover 群集增强群集增强 q 对failover 群集的管理有了较大的改善,可以方便地安装、 配置和管理一个sql server 2000的failover 群集。 3. 3. 网络库(网络库(net-librarynet-library)增强)增强 q 简化了客户机配置并支持同一计算机上的多实例连接。 4. kerberos 4. kerberos 和安全授权和安全授权 q sql server 2000 使用kerberos
13、 来支持客户机和服务器之 间相互的身份验证,使用kerberos 和授权来支持复合认证以 及sql server 注册。 9 5. 5. 备份(备份(backupbackup)和还原()和还原(restorerestore)增强)增强 q sql server 2000 引入了一个更容易理解的模型来指定备 份和还原的选项,同时还支持使用事务日志标识来还原工作 到指定点或进行数据库的部分还原。 6. 6. 对公用操作的可伸缩性增强对公用操作的可伸缩性增强 q 增强的公用操作包括快速差异备份并行的数据库一致性校 验和并行扫描。 7. 7. 复制增强复制增强 q sql server 2000 改进
14、并增强了合并复制、快照复制和事 务复制等功能,并在复制中增加了可变化的订阅功能,因而 实施、监视和管理复制变得更加容易。 8. 8. 数据转换服务增强数据转换服务增强 (1 1)支持键和约束。)支持键和约束。 (2 2)dts dts 支持键和约束可以使用数据导入导出向导支持键和约束可以使用数据导入导出向导 从源表向目标表移动主键、外键和约束。从源表向目标表移动主键、外键和约束。 10 (3 3)新的定制任务)新的定制任务 q sql server 2000 dts designer 和dts 对象模型提供了新的自定 义任务功能从而可以创建执行任务的包或设置基于实时环境属性的 变量,包括从或向
15、internet 以及ftp 站点导入数据、发送数据、以 异步方式运行包、创建互相发送消息的包、创建执行其它包的包以 及在同一事务中包含多个包执行。 (4 4)将)将dts dts 包保存在包保存在vb vb 文件中文件中 q 将dts 包保存到microsoft visual basic 文件中,可以允许将 通过dts 导入向导、dts导出向导或dts designer 创建的包与 visual basic 程序结合在一起或被需要引用dts 对象模型组件的 visual basic 开发者用作原型。 9. sql server analysis services9. sql server a
16、nalysis services q sql server 4.0 中的olap(online analytical processing)服 务转变为sql server 2000 中的分析服务(analysis services), 分析服务还包括了新的数据挖掘功能。 10. sql server meta data services10. sql server meta data services q sql server 4.0 中的贮藏室(repository)部分在sql server 2000 中转化为元数据服务(meta data services)。 11 4.24.2sql
17、 server 2000sql server 2000的主要组件的主要组件 sql server 2000 sql server 2000 提供了一整套的提供了一整套的管理工具管理工具和和实用程序实用程序,使,使 用这些工具和程序,可以设置和管理用这些工具和程序,可以设置和管理sql server sql server 进行数据库进行数据库 管理和备份,并保证数据的安全和一致。管理和备份,并保证数据的安全和一致。 下面,对这些组件做一个简单的介绍。下面,对这些组件做一个简单的介绍。 1企业管理器(企业管理器(enterprise manager) q企业管理器是sql server 中最重要的
18、管理工具,在使用sql server的过程中大部分的时间都是和它打交道。 q通过企业管理器可以管理所有的数据库系统工作和服务器工作,也 可以调用其它的管理开发工具。 2查询分析器(查询分析器(query analyzer) q查询分析器用于执行transaction-sql 命令等sql 脚本程序,以查 询分析或处理数据库中的数据,这是一个非常实用的工具,对掌握 sql 语言、理解sql server 的工作有很大帮助。 q使用查询分析器的熟练程度是衡量一个sql server 用户水平的标 准。 12 3服务管理器(服务管理器(service manager) q服务管理器用于启动、暂停或停
19、止sql server 的4种服务:、 dtc(distributed transaction coordinator 分布式事务协调器) mssql server olap service sql server sql server agent 4客户端网络实用工具(客户端网络实用工具(client network utility) q客户端网络实用工具用于配置客户端的连接、测定网络库的 版本信息以及设定本地数据库的相关选项。 5服务器网络实用工具(服务器网络实用工具(server network utility) q服务器网络实用工具用于配置服务器端的连接、测定网络库 的版本信息。 6导入
20、和导出数据(导入和导出数据(import and export data) q导入和导出数据采用 dts import/export 向导来完成,此 向导包含了所有的dts(data transformation services 数 据转换服务)工具提供了在ole db数据源之间复制数据的最 简捷的方法。 13 7.在在iis中配置中配置sql xml支持(支持(configure sql xml support in iis) qiis(internet information services 因特网信息服务), 此工具可以在运行iis的计算机上定义、注册虚拟目录,并在 虚拟目录和sql
21、 server 实例之间创建关联。 8事件探查器(事件探查器(profiler) q事件探查器的功能是监视sql server 数据库系统引擎事件, 主要用于监听sql server 系统的运行性能。 9联机丛书(联机丛书(books online) qsql server 2000 提供了大量的联机文档,用户可以便捷地 查询到许多很有价值的信息。 q一个优秀的sql server 管理员必然是使用联机文档的高手。 v另外,在安装另外,在安装sql server 2000 sql server 2000 的同时,安装了的同时,安装了sql sql serverserver的升级向导的升级向导
22、q在“开始”菜单的“程序”项中,将鼠标移到“microsoft sql server版本切换”上即可看到sql server 升级向导。 qsql server 升级向导用于将一个6.5 版本的sql server 的 设置和数据库复制升级到本机上安装的sql server 2000 中。 14 4.34.3transact-sqltransact-sql程序设计程序设计 在在transact-sql transact-sql 语言中标准的语言中标准的sql sql 语句畅通语句畅通 无阻。无阻。 transact-sql transact-sql 也有类似于也有类似于sql sql 语言的分
23、类不语言的分类不 过做了许多扩充。过做了许多扩充。 在第在第3 3章中,我们曾介绍了标准章中,我们曾介绍了标准sqlsql语言的语法语言的语法 及其基本使用方法,在此只介绍及其基本使用方法,在此只介绍transact-sql transact-sql 语言中的其它部分。语言中的其它部分。 .1变量变量 .2流程控制命令流程控制命令 .3其它命令其它命令 .4常用函数常用函数 15 4.3.1变量变量 transact-sql transact-sql 中可以使用两种变量:中可以使用两种变量:局部变量局部变量和和全局变量全局变量。
24、1局部变量局部变量 v局部变量是用户可自定义的变量,它的作用范围仅在程序内部。局部变量是用户可自定义的变量,它的作用范围仅在程序内部。 v在程序中通常用来储存从表中查询到的数据,或当作程序执行在程序中通常用来储存从表中查询到的数据,或当作程序执行 过程中暂存变量使用。过程中暂存变量使用。 v局部变量必须以局部变量必须以 开头,而且必须先用开头,而且必须先用declaredeclare 命令说明后才命令说明后才 可使用。其说明形式如下:可使用。其说明形式如下: declare 变量名 变量类型,变量名变量类型 v在在transact-sql transact-sql 中不能像在一般的程序语言中一
25、样使用中不能像在一般的程序语言中一样使用“变变 量量= =变量值变量值”来给变量赋值,必须使用来给变量赋值,必须使用selectselect 或或set set 命令来设定命令来设定 变量的值。其语法如下:变量的值。其语法如下: select 局部变量= 变量值 set 局部变量量= 变量值 【例例】声明一个长度为声明一个长度为 8 8 个字符的变量个字符的变量idid,并赋值。,并赋值。 declare id char(8) select id =10010001 16 2全局变量全局变量 v全局变量是全局变量是sql server sql server 系统内部使用系统内部使用的变量,其作
26、用范围并的变量,其作用范围并 不局限于某一程序,而是任何程序均可随时调用。不局限于某一程序,而是任何程序均可随时调用。 v全局变量通常存储一些全局变量通常存储一些sql server sql server 的配置设定值和效能统计的配置设定值和效能统计 数据。用户可在程序中用全局变量来测试系统的设定值或数据。用户可在程序中用全局变量来测试系统的设定值或 transact-sql transact-sql 命令执行后的状态值。命令执行后的状态值。 v全局变量不是由用户的程序定义的,它们是在服务器级定义的,全局变量不是由用户的程序定义的,它们是在服务器级定义的, 只能使用预先说明及定义的全局变量。只
27、能使用预先说明及定义的全局变量。 v引用全局变量时必须以引用全局变量时必须以“”开头。开头。 v局部变量的名称不能与全局变量的名称相同,否则会在应用中局部变量的名称不能与全局变量的名称相同,否则会在应用中 出错。出错。 3注释符注释符 在在transact-sql transact-sql 中可使用两类注释符:中可使用两类注释符: 1 1ansi ansi 标准的注释符标准的注释符“-”用于用于单行单行注释。注释。 2 2与与c c 语言相同的程序注释符号,即语言相同的程序注释符号,即“/ /* * */ /”,/ /* * 用用 于注释文字的开头,于注释文字的开头,* */ /用于注释文字的
28、结尾,可在程序中标识用于注释文字的结尾,可在程序中标识多多 行行文字为注释。文字为注释。 17 4.3.2流程控制命令流程控制命令 transact-sql transact-sql 语言使用的流程控制命令与常见的程序语言使用的流程控制命令与常见的程序 设计语言类似,主要有以下几种控制命令。设计语言类似,主要有以下几种控制命令。 beginbeginendend 其语法如下:其语法如下: beginbegin endend beginbeginend end 用来设定一个用来设定一个程序块程序块,将在,将在beginbeginend end 内的所有程序视为一个单元
29、执行。内的所有程序视为一个单元执行。 beginbeginend end 经常在经常在条件语句条件语句(如(如ififelseelse)中使用。)中使用。 在在beginbeginend end 中可中可嵌套嵌套另外的另外的beginbeginend end 来定义另来定义另 一程序块。一程序块。 18 if if else else 其语法如下:其语法如下: if if else else 条件表达式式条件表达式式 其中其中: : v 可以是各种表达式的组合,但表达式的值可以是各种表达式的组合,但表达式的值 必须是逻辑值必须是逻辑值“真真”或或“假假”。 vels
30、e else 子句是可选的,最简单的子句是可选的,最简单的if if 语句没有语句没有else else 子句部子句部 分。分。 vififelse else 用来判断当某一条件成立时执行某段程序,条用来判断当某一条件成立时执行某段程序,条 件不成立时执行另一段程序。件不成立时执行另一段程序。 v如果不使用程序块,如果不使用程序块,if if 或或else else 只能执行一条命令。只能执行一条命令。 vif else if else 可以进行嵌套,在可以进行嵌套,在transact-sql transact-sql 中最多可嵌套中最多可嵌套 32 32 级。级。 19 【例例】从从scsc
31、数据表中求出学号为数据表中求出学号为s1s1同学的平均同学的平均 成绩,如果此平均成绩大于或等于成绩,如果此平均成绩大于或等于6060分,则输出分,则输出 “passpass”信息。信息。 if if ( (select avgselect avg(score) (score) fromfrom sc sc wherewhere sno=s1 sno=s1 group bygroup by sno)=60 sno)=60 beginbegin printprint pass pass endend 20 casecase case case 命令有两种语句格式:命令
32、有两种语句格式: 格式格式1 1: case case when when then then when when then then else else endend 该语句的执行过程是:该语句的执行过程是: v将将casecase后面表达式的值与各后面表达式的值与各whenwhen子句中的表达式的值进行比较,子句中的表达式的值进行比较, v如果二者相等,则返回如果二者相等,则返回thenthen后的表达式的值,然后跳出后的表达式的值,然后跳出casecase语语 句,否则返回句,否则返回elseelse子句中的表达式的值。子句中的表达式的值。 velseelse子句是可选项。当子句是可选项
33、。当casecase语句中不包含语句中不包含elseelse子句时,如果所子句时,如果所 有比较失败时,有比较失败时,casecase语句将返回语句将返回nullnull。 21 【例例】从学生表从学生表s s中,选取中,选取snosno,sexsex,如果,如果sexsex 为为“男男”则输出则输出“m m”,如果为,如果为“女女”输出输出“f f”。 select sno,select sno, sex= sex= casecase sex sex when when 男男 then m then m when when 女女 then f then f end end from sfro
34、m s 22 格式格式2 2: casecase when when then then when when then then else else endend 该语句的执行过程是:该语句的执行过程是: v首先测试首先测试whenwhen后的表达式的值后的表达式的值 v如果其值为真,则返回如果其值为真,则返回thenthen后面的表达式的值,否后面的表达式的值,否 则测试下一个则测试下一个whenwhen子句中的表达式的值子句中的表达式的值 v如果所有如果所有whenwhen子句后的表达式的值都为假,则返回子句后的表达式的值都为假,则返回 elseelse后的表达式的值后的表达式的值 v如果
35、在如果在casecase语句中没有语句中没有elseelse子句,则子句,则casecase表达式返表达式返 回回nullnull。 23 注:注:case case 命令可以嵌套到命令可以嵌套到sql sql 命令中。命令中。 【例例】从从scsc表中查询所有同学选课成绩情况,凡成绩为表中查询所有同学选课成绩情况,凡成绩为 空者输出空者输出“未考未考”、小于、小于6060分输出分输出“不及格不及格”、6060分至分至 7070分输出分输出“及格及格”、7070分至分至9090分输出分输出“良好良好”、大于或、大于或 等于等于9090分时输出分时输出“优秀优秀”。 select sno,cno
36、, select sno,cno, score= score= case case when score is null then when score is null then 未考未考 when score60 then when score=60 and score=60 and score=70 and score=70 and score=90 then when score=90 then 优秀优秀 end end from scfrom sc 24 whilewhilecontinuecontinuebreakbreak 其语法如下:其语法如下: wh
37、ile while beginbegin breakbreak continuecontinue 命令行或程序块命令行或程序块 endend while while 命令在设定的条件成立时,会重复执行命令行命令在设定的条件成立时,会重复执行命令行 或程序块。或程序块。 continue continue 命令可以让程序跳过命令可以让程序跳过continue continue 命令之后的命令之后的 语句,回到语句,回到while while 循环的第一行,继续进行下一次循环。循环的第一行,继续进行下一次循环。 break break 命令则让程序完全跳出循环,结束命令则让程序完全跳出循环,结束w
38、hile while 命令命令 的执行。的执行。 while while 语句也可以嵌套。语句也可以嵌套。 25 如:如:以下程序计算以下程序计算1 1100100之间所有能被之间所有能被3 3整除的数的个整除的数的个 数及总和。数及总和。 declare s smallint,i smallint,nums smallint declare s smallint,i smallint,nums smallint set s=0set s=0 set i=1set i=1 set nums=0set nums=0 whilewhile (i=100) (i=100) begin begin i
39、f (i%3=0) if (i%3=0) beginbegin set s=s+i set s=s+i set nums=nums+1 set nums=nums+1 endend set i=i+1 set i=i+1 end end print sprint s print numsprint nums 26 waitforwaitfor 其语法如下:其语法如下: waitfor delay waitfor delay | time | time | errorexit | processexit | mirrorexit| errorexit | proces
40、sexit | mirrorexit waitfor waitfor 命令用来暂时停止程序执行,直到所设定的命令用来暂时停止程序执行,直到所设定的 等待时间已过或所设定的时间已到才继续往下执行。等待时间已过或所设定的时间已到才继续往下执行。 其中其中时间时间必须为必须为datetimedatetime 类型的数据,但不能包类型的数据,但不能包 括日期。括日期。 各关键字含义如下:各关键字含义如下: 1 1delaydelay:用来设定等待的时间,最多可达用来设定等待的时间,最多可达24 24 小时小时 2 2timetime:用来设定等待结束的时间点用来设定等待结束的时间点 3 3errore
41、xiterrorexit:直到处理非正常中断直到处理非正常中断 4 4processexitprocessexit:直到处理正常或非正常中断直到处理正常或非正常中断 5 5mirroreximirrorexi: 直到镜像设备失败直到镜像设备失败 27 【例例】等待等待1 1 小时小时2 2 分零分零3 3 秒后才执行秒后才执行select select 语句。语句。 waitfor waitfor delaydelay 01:02:0301:02:03 select select * * from employee from employee 28 gotogoto
42、 语法如下:语法如下: goto goto 标识符标识符 goto goto 命令用来改变程序执行的流程,使程序命令用来改变程序执行的流程,使程序 跳到标有标识符的指定的程序行再继续往下执行。跳到标有标识符的指定的程序行再继续往下执行。 作为跳转目标的标识符可为数字与字符的组合。作为跳转目标的标识符可为数字与字符的组合。 但必须以但必须以“:”结尾。结尾。 在在goto goto 命令行,标识符后不必跟命令行,标识符后不必跟“:” 29 如:如:求求1 12 23 31010的总和。的总和。 declare s smallint,i smallintdeclare s smallint,i s
43、mallint set i=1set i=1 set s=0set s=0 beg:beg: if (i=10)if (i=表达式的最小整数 floor 返回=表达式的最小整数 round 取整数,小数的第一位上四舍五入 符号函数 abs 返回表达式的绝对值 sign 测试参数的正负号,返回0、1或-1, 其它函数 pi 返回值为,即3.1415926535897936 rand 求0-1间的随机浮点数 表表4.1 transact-sql 4.1 transact-sql 的算术函数 的算术函数 44 字符串函数字符串函数 字符串函数对字符串函数对二进制数据二进制
44、数据、字符串字符串和和表达式表达式执行不同的执行不同的 运算。运算。 此类函数作用于此类函数作用于charchar、varcharvarchar、binarybinary 和和varbinaryvarbinary 数据类型以及可以隐式转换为数据类型以及可以隐式转换为char char 或或varcharvarchar的数据类的数据类 型。型。 可以在可以在select select 语句的语句的select select 和和where where 子句以及表达子句以及表达 式中使用字符串函数。式中使用字符串函数。 常用的字符串函数有:常用的字符串函数有: 1 1字符转换函数字符转换函数 (1
45、 1)asciiascii()() q ascii()函数返回字符表达式最左端字符的ascii 码值。 v在在ascii ascii 函数中,纯数字的字符串可不用函数中,纯数字的字符串可不用“”括起来,但括起来,但 含其它字符的字符串必须用含其它字符的字符串必须用“”括起来使用,否则会出错。括起来使用,否则会出错。 45 (2 2)charchar()() q char()函数用于将ascii 码转换为字符。 q如果没有输入0 255 之间的ascii 码值,char()函数会返回一个null 值。 (3 3)lowerlower()() q lower()函数把字符串全部转换为小写。 (4
46、4)upperupper()() q upper()函数把字符串全部转换为大写。 (5 5)strstr()() q str()函数把数值型数据转换为字符型数据。 其语法如下:其语法如下: str( length ) q自变量length 和decimal 必须是非负值。 qlength 指定返回的字符串的长度。 qdecimal 指定返回的小数位数。 q如果没有指定长度,缺省的length 值为10 ,decimal 缺省值为0 。 q小数位数大于decimal 值时,str()函数将其下一位四舍五入。 q指定长度应大于或等于数字的符号位数+小数点前的位数+小数点位数+小数 点后的位数。 q
47、如果小数点前的位数超过了指定的长度,则返回指定 长度的*。 46 2 2去空格函数去空格函数 (1 1)ltrimltrim()() q ltrim()函数把字符串头部的空格去掉。 (2 2)rtrimrtrim()() q rtrim()函数把字符串尾部的空格去掉。 v在许多情况下,往往需要得到头部和尾部都没有空在许多情况下,往往需要得到头部和尾部都没有空 格字符的字符串,这时可将上两个函数嵌套使用。格字符的字符串,这时可将上两个函数嵌套使用。 47 3 3取子串函数取子串函数 (1 1)leftleft()() q left()函数返回部分字符串。其语法如下: leftleft(,) q
48、left()函数返回的子串是从字符串最左边起到第integer_expression 个字符的部分。 q若integer_expression 为负值,则返回null 值。 (2 2)rightright()() q right()函数返回部分字符串。其语法如下: rightright (,) q right()函数返回的子串是从字符串右边第integer_expression 个字符 起到最后一个字符的部分。 q若integer_expression 为负值,则返回null 值。 (3 3)substringsubstring qsubstring()函数返回部分字符串。其语法如下: sub
49、string ( , substring ( , length)length) q substring()函数返回的子串是从字符串左边第starting_ position 个 字符起length个字符的部分。 q其中表达式可以是字符串或二进制串或含字段名的表达式。 qsubstring()函数不能用于text 和image 数据类型。 48 4 4字符串比较函数字符串比较函数 (1 1)charindexcharindex()() q charindex()函数返回字符串中某个指定的子串出现的开始位置。 其语法如下: charindex charindex ( ,) q 其中,substri
50、ng _expression 是所要查找的字符表达式, qexpression 可为字符串也可为列名表达式。 q如果没有发现子串,则返回0 值。 q此函数不能用于text 和image 数据类型。 (2 2)patindexpatindex()() q patindex()函数返回字符串中某个指定的子串出现的开始位置。 其语法如下: patindex patindex ( ,column_ name) q 其中子串表达式前后必须有百分号“%” ,否则返回值为0。 q与charindex()函数不同的是,patindex()函数的子串中可以 使用通配符,且此函数可用于char、varchar和t
51、ext 数据类型。 49 (3 3)soundexsoundex()() q soundex()函数返回一个四位字符码。其语法如下: soundex soundex () q soundex()函数将character _expression 转换为4 个字 符的声音码。 q其中第一个码为原字符串的第一个字符,第二到第四个字符 则为数字,是该字符串的声音字母所对应的数字,但是忽略 了除首字母外的串中的所有元音字母。 qsoundex()函数可用来查找声音相似的字符串。 q但soundex()函数对数字和汉字均只返回0 值。 50 (4 4)differencedifference()() q
52、difference()函数返回由soundex 函数返回的两个字符表达式 的值的差异。其语法如下: difference difference (, ) q 值的差异是用0、1、2、3、4 来表示的,含义如下: 0 两个soundex()函数返回值的第一个字符不同 1 两个soundex()函数返回值的第一个字符相同 2 两个soundex()函数返回值的第一、二个字符相 同 3 两个soundex()函数返回值的第一、二、三个字 符相同 4 两个soundex()函数返回值完全相同 51 5 5字符串操作函数字符串操作函数 (1 1)quotenamequotename()() q quo
53、tename()函数返回被特定字符括起来的字符串。其语法如下: quotename quotename ( ,quote_ quote_ charactercharacter) q 其中,quote_ character 标明括字符串所用的字符,如“”、 “(”、“”等,缺省值为“ ”。 (2 2)replicatereplicate()() q replicate()函数返回一个重复character_expression 指定次 数的字符串。其语法如下: replicate replicate (character_expressioncharacter_expression,intege
54、r_expressioninteger_expression) q 如果integer_expression 值为负值,则replicate 函数返回null 串。 (3 3)reversereverse()() q reverse()函数将指定的字符串的字符排列顺序颠倒。其语法如 下: reverse reverse () q 其中,character_expression 可以是字符串常数或一个列的值。 52 (4 4)replacereplace()() qreplace()函数返回被替换了指定子串的字符串。其语法 如下: replace replace (, ,) qreplace()
55、函数用string_expression3 替换在 string_expression1 中的子串string_expression2。 (5 5)spacespace()() qspace()函数返回一个有指定长度的空白字符串。其语法 如下: space space () q如果integer_expression 值为负值,则space 函数返回 null 串。 53 (6 6)stuffstuff()() q stuff()函数用另一子串替换字符串指定位置长度的子串。 其语法如下: stuffstuff(, start_ position, ) q 如果起始位置为负或长度值为负,或者起始
56、位置大于 character_expression1 的长度,则stuff()函数返回null 值。 q如果length 长度大于character_expression1 的长度,则 character_expression1 只保留首字符。 54 数据类型转换函数数据类型转换函数 在一般情况下,在一般情况下,sql server sql server 会自动完成数据类型的转会自动完成数据类型的转 换。换。 例如,例如,可以直接将字符数据类型或表达式与可以直接将字符数据类型或表达式与datatime datatime 数据类型或表达式比较;当表达式中用了数据类型或
57、表达式比较;当表达式中用了integerinteger、 smallintsmallint或或tinyint tinyint 时,时,sql server sql server 也可将也可将integer integer 数数 据类型或表达式转换为据类型或表达式转换为smallintsmallint数据类型或表达式,这数据类型或表达式,这 称为称为隐式转换隐式转换。 如果不能确定如果不能确定sql server sql server 是否能完成隐式转换或者使是否能完成隐式转换或者使 用了不能隐式转换的其它数据类型,就需要使用数据类用了不能隐式转换的其它数据类型,就需要使用数据类 型转换函数做显
58、式转换了。型转换函数做显式转换了。 此类函数有两个:此类函数有两个: 1 1castcast()() q cast()函数语法如下: cast cast ( as length as length ) 55 2 2convertconvert()() q convert 函数语法如下: convert convert ( length length , ,stylestyle) q data_ type 为sql server 系统定义的数据类型,用户自定义的数据类型 不能在此使用。 qlength 用于指定数据的长度缺省值为30。 q把char 或varchar 类型转换为诸如int 或sa
59、mllint 这样的integer 类型, 结果必须是带正号(+)或负号(-)的数值。 qtext 类型到char 或varchar 类型的转换最多为8000 个字符,即char 或 varchar数据类型是最大长度。 qimage 类型存储的数据转换到binary 或varbinary 类型,最多为8000 个 字符。 q把整数值转换为money 或smallmoney 类型,按定义的国家的货币单位来处 理,如人民币、美元、英镑等。 qbit 类型的转换把非零值转换为1,并仍以bit 类型存储。 q试图转换到不同长度的数据类型,会截短转换值并在转换值后显示“+”, 以标识发生了这种截断。 q
60、用convert()函数的style 选项能以不同的格式显示日期和时间。 qstyle 是将datatime 和smalldatetime 数据转换为字符串时所选用的由 sql server 系统提供的转换样式编号,不同的样式编号有不同的输出格式, 如表4.2所示。 56 表表4.2 datatime 4.2 datatime 和和smalldatetime smalldatetime 类型数据的转换格式类型数据的转换格式 style1 style2 style1 style2 标准标准 输出格式输出格式 0 或100 缺省 mon dd yyyy hh:mi am/pm 1 101 usa
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 总经理聘用合同法律顾问
- 企业借款承诺书范文:正规商务版
- 小型农场流转合同范例
- 成本加奖金合同模板
- 广告策划劳务合同范例
- 招聘代理合同范例
- 塑木设备出售合同范例
- 改造工程出售合同范例
- 导游签合同范例
- 技术销售合同模板政府
- GB/T 3620.1-2016钛及钛合金牌号和化学成分
- GB/T 307.3-2017滚动轴承通用技术规则
- GB/T 20416-2006自然保护区生态旅游规划技术规程
- GB/T 20160-2006旋转电机绝缘电阻测试
- GB/T 17514-2017水处理剂阴离子和非离子型聚丙烯酰胺
- 第十七动物的采食量
- 二副面试问题与答案
- 女生生理卫生课-完整课件
- Friends《老友记》英文介绍(并茂)课件
- 2023学年完整版Unit7Willpeoplehaverobots教学反思
- 公安派出所建设标准
评论
0/150
提交评论