SQLServer数据库系统概述.ppt
第八章第八章 SQL Server 数据库系统概述数据库系统概述开始开始下一页下一页nSQL ServerSQL Server的发展历程及特点的发展历程及特点nSQL ServerSQL Server的安装与启动的安装与启动nSQL ServerSQL Server管理工具简介管理工具简介nSQL ServerSQL Server的系统结构的系统结构nTransact SQLTransact SQL语言简介语言简介nSQL ServerSQL Server的主要数据类型的主要数据类型nSQL ServerSQL Server函数函数nSQL ServerSQL Server的标识符及命名规则的标识符及命名规则1应应 用用程程 序序逻辑逻辑数据库数据库大型机大型机客户端客户端终端字符终端字符按键信息按键信息大型主机执行大型主机执行RDBMS和应用和应用程序程序2020世纪世纪60-7060-70年代的系统结构年代的系统结构 计算机应用系统的发展(计算机应用系统的发展(1)大型机相当于今大型机相当于今大型机相当于今大型机相当于今天的服务器天的服务器天的服务器天的服务器集中集中式式2数据库数据库应应 用用程程 序序逻辑逻辑工作站工作站1应应 用用程程 序序逻辑逻辑工作站工作站1应应 用用程程 序序逻辑逻辑工作站工作站1应应 用用程程 序序逻辑逻辑工作站工作站1网络文件服务器网络文件服务器文件请求文件请求文件文件应用程应用程序在客序在客户工作户工作站上运站上运行行 只提供只提供资源资源(数据)(数据)的集中的集中管理和管理和访问途访问途径径 计算机应用系统的发展计算机应用系统的发展(2)2020世纪世纪8080年代的系统结构年代的系统结构 文件文件/服务器服务器3数据库数据库应应 用用 程程序逻辑序逻辑工作站工作站1应应 用用 程程序逻辑序逻辑工作站工作站1应应 用用 程程序逻辑序逻辑工作站工作站1应应 用用 程程序逻辑序逻辑工作站工作站1网络服务器网络服务器请求请求结果结果应应 用用 程程序逻辑序逻辑客户客户/服务器服务器计算机应用系统的发展(计算机应用系统的发展(3)目前,主要是目前,主要是C/SC/S、B/SB/S模式模式4SELECT*FROMstudentWHERE学号学号=“992126”提交的提交的SQL接收的结果接收的结果带带有有60000条条记记录录的的数数据据库库表表格格文文件件student查查 询询 在在服服 务务 器器端执行端执行SQL请求请求返回一条记录返回一条记录客户工作站客户工作站服务器服务器工作站接收的只工作站接收的只是查询的结果是查询的结果查询语查询语句将在句将在服务器服务器中执行中执行客户客户/服务器结构特服务器结构特点点前端用户需要后台服务器的服前端用户需要后台服务器的服务时仅仅发出请求,服务器接务时仅仅发出请求,服务器接受该请求后执行相应的功能,受该请求后执行相应的功能,并把满足条件的那部分数据反并把满足条件的那部分数据反馈给前台客户端馈给前台客户端本本结结构构核核心心大型机的绝对功能和集中管理以及微型大型机的绝对功能和集中管理以及微型计算机的低费用和更好的平衡处理能力计算机的低费用和更好的平衡处理能力“协同处理协同处理”即通过客户端即通过客户端和服务器端的最佳分式合作,和服务器端的最佳分式合作,使整个系统达到最高的效率使整个系统达到最高的效率客户客户端程端程序和序和数据数据专用专用服务服务器功器功能和能和数据数据用户用户共享共享它是一个开放它是一个开放的体系结构的体系结构5数据库服务器的平台与客户端无关(无论数据库服务器的平台与客户端无关(无论是软件平台还是硬件平台)。数据库服务器上是软件平台还是硬件平台)。数据库服务器上的数据库管理系统集中负责管理数据库服务器的数据库管理系统集中负责管理数据库服务器上的数据和资源,它向客户端提供一个开放的上的数据和资源,它向客户端提供一个开放的使用环境,客户端的用户通过数据库接口和使用环境,客户端的用户通过数据库接口和SQLSQL语言访问数据库。语言访问数据库。也就是说,不管客户端采用的是什么样的也就是说,不管客户端采用的是什么样的硬件平台和软件环境,它只要能够通过网络协硬件平台和软件环境,它只要能够通过网络协议和数据库接口程序连接到服务器就可以对数议和数据库接口程序连接到服务器就可以对数据库进行访问。据库进行访问。客户客户/服务器结构特服务器结构特点点67一、一、SQL ServerSQL Server的发展历程及特点的发展历程及特点n SQL Server是由Microsoft开发和推广的关系数据库管理系统(DBMS),它最初是由Microsoft、Sybase和Ashton-Tate三家公司共同开发的,并于1988年推出了第一个OS/2版本。SQL Server近年来不断更新版本,1996年,Microsoft 推出了版本;1998年,版本和用户见面;SQL Server 2000是Microsoft公司于2000年推出的最新版本。上一页上一页下一页下一页81真正的客户机/服务器体系结构。2图形化用户界面,使系统管理和数据库管理更加直观、简单。3丰富的编程接口工具,为用户进行程序设计提供了更大的选择余地。4SQL Server与Windows NT完全集成,利用了NT的许多功能,如发送和接受消息,管理登录安 全 性 等。SQL Server也 可 以 很 好 地 与Microsoft BackOffice产品集成。SQL ServerSQL Server的主要特点的主要特点9n5 具 有 很 好 的 伸 缩 性,可 跨 越 从 运 行Windows 95/98的膝上型电脑到运行Windows 2000的大型多处理器等多种平台使用。n6对Web技术的支持,使用户能够很容易地将数据库中的数据发布到Web页面上。n7SQL Server提供数据仓库功能,这个功能只在Oracle和其他更昂贵的DBMS中才有。10nSQL Server 2000常见的版本 n企业版(Enterprise Edition)n标准版(Standard Edition)n个人版(Personal Edition)n开发者版(Developer Edition)二、二、SQL ServerSQL Server的安装与启动的安装与启动11安装、运行安装、运行SQL Server 2000的硬件需求的硬件需求(1)计算机Inter及其兼容计算机,Pentium 166Mhz或者更高处理器或DEC Alpha和其兼容系统。(2)内存(RAM)企业版最少64MB内存,其他版本最少需要32MB内存,建议使用更多的内存。(3)硬盘空间完 全 安 装(Full)需 要 180MB的 空 间,典 型 安 装(Typical)需要170MB的空间,最小安装(Minimum)需要65MB的空间。12安装、运行安装、运行SQL Server 2000的软件需求的软件需求 nSQL Server 2000企 业 版 必 须 运 行 于 安 装 或 者Windows2000 Advanced Server以及更高版本的操作系统下。nSQL Server 2000标准版必须运行于安装、Windows 2000 Server以及更高版本的操作系统下。nSQL Server 2000 个人版可在多种操作系统下运行,如可运行于Windows 9x,或Windows 2000的服务器版或工作站版的操作系统下。nSQL Server 2000 开发者版可运行于上述Windows 9x以外的所有操作系统下。13 SQL Server 2000的安装与的安装与启动启动 SQL Server 2000的安装过程与其它的安装过程与其它Microsoft Windows系列产品类似。系列产品类似。用户可根用户可根据向导提示,选择需要的选项一步一步地完成。据向导提示,选择需要的选项一步一步地完成。SQL Server 2000安装完成后,在安装完成后,在Windows的的程序项中会出现程序项中会出现Microsoft SQL Server程序组,程序组,运行运行SQL Server数据库服务器数据库服务器。14数数据据库库服服务务器器管管理理工工具具数数据据库库企业管理器企业管理器查询分析器查询分析器服务管理器服务管理器导入和导出数据导入和导出数据服务器端网络实用工具服务器端网络实用工具客户端网络实用工具客户端网络实用工具事件探查器事件探查器在在IIS中配置中配置SQLXML支持支持AnalysisServices工具工具EnglishQuery工具工具系统数据库系统数据库用户数据库用户数据库数据表数据表索引索引视图视图存储过程存储过程 学习学习SQL Server 2000需要掌握的内容需要掌握的内容15第八章第八章 SQL Server 数据库系统概述数据库系统概述开始开始下一页下一页nSQL ServerSQL Server的发展历程及特点的发展历程及特点nSQL ServerSQL Server的安装与启动的安装与启动nSQL ServerSQL Server管理工具简介管理工具简介nSQL ServerSQL Server的系统结构的系统结构nTransact SQLTransact SQL语言简介语言简介nSQL ServerSQL Server的主要数据类型的主要数据类型nSQL ServerSQL Server函数函数nSQL ServerSQL Server的标识符及命名规则的标识符及命名规则16三、三、SQL ServerSQL Server管理工具简介管理工具简介nSQL ServerSQL Server企业管理器企业管理器是是SQL ServerSQL Server的一个最重要的一个最重要的工具,它通过图形化的用户界面(的工具,它通过图形化的用户界面(GUIGUI)来)来设置设置和管理服务器和管理服务器,易于使用。,易于使用。n查询分析器查询分析器不但能够完成与企业管理器相同的工作,不但能够完成与企业管理器相同的工作,它还为数据库应用程序开发人员提供了一个它还为数据库应用程序开发人员提供了一个简单易简单易用的用的SQLSQL交互窗口交互窗口,用户通过它可以交互地设计、,用户通过它可以交互地设计、测试、运行测试、运行Transact SQLTransact SQL语句。语句。n了解其它管理工具的功能。了解其它管理工具的功能。17 企业管理器企业管理器n企业管理器是基于一种新的被称为微软管理控制台(Microsoft Management Console)的公共服务器管理环境,它是SQL Server中最重要的一个管理工具。企业管理器不仅能够配置系统环境和管理SQL Server,而且由于它能够以层叠列表的形式来显示所有的SQL Server对象,因而所有SQL Server对象的建立与管理都可以通过它来完成。18SQLServer企业管理器(企业管理器(EnterpriseManager)界面)界面19利用企业管理器可以完成的操作有利用企业管理器可以完成的操作有 n管理SQL Server 服务器;建立与管理数据库;建立与管理表、视图、存储过程、触发程序、角色、规则、默认值等数据库对象,以及用户定义的数据类型;备份数据库和事务日志、恢复数据库;复制数据库;设置任务调度;设置警报;提供跨服务器的拖放控制操作;管理用户帐户;建立Transact-SQL命令语句以及管理和控制SQL Mail。201.3.2 服务管理器(服务管理器(Service Manager)nSQL Server 服务管理器是在服务器端实际工作时最有用的实用程序,其界面如图1-21所示。服务管理器用来启动、暂停、继续和停止数据库服务器的实时服务,其提供的服务包括:SQL Server、SQL Server Agent、MSDTC(Microsoft Distributed Transaction Coordinator,微软分布式事务协调器)。21图图1-21SQLServer服务管理器(服务管理器(ServiceManager)界面)界面22查询分析器(查询分析器(Query Analyzer)nSQL Server 2000新的图形化查询分析器用于输入和执行Transaction-SQL语句,并且迅速查看这些语句的结果,以分析和处理数据库中的数据。这是一个非常实用的工具,对掌握SQL语言,深入理解SQL Server的管理工作有很大帮助。SQLServer数据库数据库查询查询分分析析器器SQL23客户端网络实用工具(客户端网络实用工具(Client Network Utility)n用来配置客户端的网络连接、管理和测定客户端的网络库等。服务器网络实用工具(服务器网络实用工具(Server Network Utility)n用来配置服务器端网络连接和设置相关参数等。24客户端网络实用工具(客户端网络实用工具(Client Network Utility)25导入和导出数据(导入和导出数据(Imput and Export Data)n导入和导出数据采用DTC 导入/导出向导来完成。此向导包含了所有的DTS(Data Transformation Services)工具,提供了在OLE DB数据源之间复制数据的最简捷的方法。SQLServer数据库数据库DTS服务服务数据数据数据数据数据数据数据数据其他类型其他类型数据库数据库26联机帮助文档(联机帮助文档(Books Online)nSQL Server 2000提供了大量的联机文档,它具有索引和全文搜索能力,可根据关键词来快速查找用户所需信息。27四、四、SQL ServerSQL Server的系统结构的系统结构存储结构存储结构主主数数据据库库文文件件次次数据数据库文库文件件事务事务曰志曰志文件文件28系统数据库系统数据库SQL SrverSQL Srver的数据库组成的数据库组成系统级系统级信息信息临时数据库,临时数据库,属于全局资源,属于全局资源,没有权限限制。没有权限限制。复制、作业复制、作业调度和管理调度和管理报警等报警等建立新建立新数据库数据库的模板的模板下一页下一页29SQL Server 系统数据库简介系统数据库简介 SQL Server 2000有6个系统数据库 1.Master数据库是SQL Server系统最重要的数据库,它记录了SQL Server系统的所有系统信息。这些系统信息包括所有的登录信息、系统设置信息、SQL Server的初始化信息和其它系统数据库及用户数据库的相关信息。2.Model数据库是所有用户数据库和Tempdb数据库的模板数据库,它含有Master数据库所有系统表的子集,这些系统数据库是每个用户定义数据库需要的。303.Msdb数据库是代理服务数据库,为其警报、任务调度和记录操作员的操作提供存储空间。4.Tempdb是一个临时数据库,它为所有的临时表、临时存储过程及其它临时操作提供存储空间。5.Pubs和Northwind数据库是两个实例数据库,它们可以作为SQL Server的学习工具。31系统表系统表n在逻辑层次上,数据库是由表、视图、存储过在逻辑层次上,数据库是由表、视图、存储过程等一系列数据对象组成的。每当创建数据库程等一系列数据对象组成的。每当创建数据库时,时,SQL Server都会自动创建一些数据对象都会自动创建一些数据对象,其中比较重要的是系统表。其中比较重要的是系统表。n不要求背系统表,只要求知道:系统表是自动不要求背系统表,只要求知道:系统表是自动生成的,不能手工修改。生成的,不能手工修改。32几个最重要的系统表几个最重要的系统表 1.Sysobjects表SQL Server 的主系统表sysobjects出现在每个数据库中,它对每个数据库对象含有一行记录。2.Syscolumns表系统表syscolumns出现在master数据库和每个用户自定义的数据库中,它对基表或者视图的每个列和存储过程中的每个参数含有一行记录。3.Sysindexes表系统表sysindexes出现在master数据库和每个用户自定义的数据库中,它对每个索引和没有聚簇索引的每个表含有一行记录,它还对包括文本/图像数据的每个表含有一行记录。334.Sysusers表系统表sysusers出现在master数据库和每个用户自定义的数据库中,它对整个数据库中的每个Windows NT用户、Windows NT用户组、SQL Server 用户或者SQL Server 角色含有一行记录。5.Sysdatabases表系统表sysdatabases对SQL Server 系统上的每个系统数据库和用户自定义的数据库含有一行记录,它只出现在master数据库中。346.Sysdepends表系统表Sysdepends对表、视图和存储过程之间的每个依赖关系含有一行记录,它出现在master数据库和每个用户自定义的数据库中。7.Sysconstraints表系统表sysconstraints对使用CREATE TABLE或者ALTER TABLE语句为数据库对象定义的每个完整性约束含有一行记录,它出现在master数据库和每个用户自定义的数据库中。35第八章第八章 SQL Server 数据库系统概述数据库系统概述开始开始下一页下一页nSQL ServerSQL Server的发展历程及特点的发展历程及特点nSQL ServerSQL Server的安装与启动的安装与启动nSQL ServerSQL Server管理工具简介管理工具简介nSQL ServerSQL Server的系统结构的系统结构nTransact SQLTransact SQL语言简介语言简介nSQL ServerSQL Server的主要数据类型的主要数据类型nSQL ServerSQL Server函数函数nSQL ServerSQL Server的标识符及命名规则的标识符及命名规则36五、五、Transact SQLTransact SQL语言简介语言简介n n标准标准标准标准SQLSQLSQLSQL语言是作为查询和执行语言使用的,不是功能语言是作为查询和执行语言使用的,不是功能语言是作为查询和执行语言使用的,不是功能语言是作为查询和执行语言使用的,不是功能全面的编程语言。全面的编程语言。全面的编程语言。全面的编程语言。n nTransact-SQLTransact-SQLTransact-SQLTransact-SQL是是是是SQL ServerSQL ServerSQL ServerSQL Server对标准对标准对标准对标准SQLSQLSQLSQL的扩展的扩展的扩展的扩展n n扩展的主要功能是:扩展的主要功能是:扩展的主要功能是:扩展的主要功能是:n n加入了程序控制结构,如加入了程序控制结构,如加入了程序控制结构,如加入了程序控制结构,如IF-ELSEIF-ELSEIF-ELSEIF-ELSE、WHILEWHILEWHILEWHILE等等等等n n加入了局部变量、全局变量加入了局部变量、全局变量加入了局部变量、全局变量加入了局部变量、全局变量n nSQL ServerSQL ServerSQL ServerSQL Server不区分大小写,但书写规范是:不区分大小写,但书写规范是:不区分大小写,但书写规范是:不区分大小写,但书写规范是:n n保留关键字大写保留关键字大写保留关键字大写保留关键字大写37 TSQL的主要功能:1、具有标准的、具有标准的SQL语言所有功能语言所有功能2、扩展功能有:加入程序控制和局部变量和全、扩展功能有:加入程序控制和局部变量和全局变量一些功能。局变量一些功能。可以编写简单的程序。可以编写简单的程序。38Transact-SQL语言主要组成部分语言主要组成部分 数据定义语言(DDL,Data Definition Language)数 据 操 纵 语 言(DML,Data Manipularion Language)数据控制语言(DCL,Data Control Language)系统存储过程(System Stored Procedure)一些附加的语言元素39一些附加的语言元素:如注释符号与变量及运算符:(1)、注释:有两种:一种为ANSI标准注释符:-,适用于单行另一种为多行注释符:/*/(2)、变量:语言中必不可少的组成部分。A:局部变量:用户自定的,仅在程序内部使用,引用时要在其名称前加上,而且必须用DECLARE定义后才可使用。设置完值为空,可用SELECT或SET语句定值。40例例1:use 教师库教师库DECLARE MY CHAR(10)SET MY=张红张红 -或者为或者为select MY=张红张红SELECT*from 教师表教师表 where 教师姓名教师姓名=MY例例2:USE PUBSGODECLARE STATE CHAR(2)SET STATE=CHINASELECT STATEB:全局变量:系统提供的。任何程序都可调用。以标记符:全局变量:系统提供的。任何程序都可调用。以标记符开头,名称不要与局部变量相同,在服务器级定义。开头,名称不要与局部变量相同,在服务器级定义。41例1:Select getdate()as todays date and time,/*显示当前日期和时间为止试图登录服务器的次数。*/connectionsasloginattempts例2:select version as 当前版本信息例3:print version-与例2有什么区别?42运算符运算符(1)算术运算符:(2)字符串运算符:(3)位运算符:对二进制计算(4)赋值运算符:只有一个;等号(5)比较运算符:P34(6)逻辑运算符:NOT,AND,OR与其他不同的是,前后不用两点43例:定义一个变量,int型,定值为2*(3+4),显示出来。DeclaredddintSetddd=2*(3+4)Selectddd44Transact SQLTransact SQL批处理及执行过程简介批处理及执行过程简介n批处理批处理是指从客户机传递到服务器上的一组完整的数据是指从客户机传递到服务器上的一组完整的数据和和SQLSQL语句。语句。n使用使用GOGO关键字标识批处理的开始和结束。关键字标识批处理的开始和结束。前后台方式下前后台方式下Transact SQLTransact SQL语句的执行过程示例语句的执行过程示例45T-SQL的批处理及执行过程1、批处理:成批处理命令或语句。从客户机传递到服务器的一组完整的数据和SQL语句,可以只有一条SQL语句,或者多条。用GO指令标识批处理结束。即一个批处理一次发给服务器一组SQL语句。46n例:use 教学库nselect*from 教师表;nselect 教师姓名,职称,系名 from 教师表,系表 where 教师ngon2、客户端执行过程:n以批处理形式向服务器递交语句。47服务器端的执行过程服务器端的执行过程48六、六、SQL ServerSQL Server的主要数据类型的主要数据类型n在在SQL ServerSQL Server中,中,数据类型数据类型通常是指通常是指字段列、存字段列、存储过程和局部变量的数据特征储过程和局部变量的数据特征。nVarcharVarchar与与charchar的区别(的区别(长度可变或固定长度可变或固定)n二进制数据类型二进制数据类型(图片图片WordWord文件等文件等)n双字符类型类型双字符类型类型(nchar,nvarchar,ntext)(nchar,nvarchar,ntext)nTimestampTimestamp数据类型数据类型(不是日期,也不是时间数(不是日期,也不是时间数据,而是据,而是SQL ServerSQL Server根据事件的发生次序自动生根据事件的发生次序自动生成的一种成的一种二进制数据二进制数据,还可以代替传统的数据库还可以代替传统的数据库加锁技术加锁技术)。)。49数值数据类型、整数型:(1)bigint(2)int(3)smallint(4)tinyint、精确数值型、浮点型、货币数值型50二、字符型、char类型、varchar类型、text类型三、日期时间型、datetime、samlldatetime51四、二进制数据类型、binary、varbinary、image五、位型bit:只存储及逻辑型六、特殊数据类型、双字节数据类型:ncharnvarcharntext实际上是一种unicode(统一的字符编码标准,采用双字节对字符编码)数据类型。、时间戳数据类型:timestamp52第八章第八章 SQL Server 数据库系统概述数据库系统概述开始开始下一页下一页nSQL ServerSQL Server函数函数nSQL ServerSQL Server的标识符及命名规则的标识符及命名规则53七、七、SQL ServerSQL Server函数函数数学函数数学函数字符串函数字符串函数日期函数日期函数系统函数系统函数统计函数统计函数(重点重点)其他常用函数其他常用函数54函数格式:函数名()一、一、数学函数数学函数 用于对数字表达式进行数学运算并返回结果。一般只对数值型数据类型操作。55二、二、字符串函数字符串函数 一般对字符型表达式操作。但也有例外。如一般对字符型表达式操作。但也有例外。如 分类:见P:221页。表8-8例P:220例8-2例:select 商品代号,len(商品代号)from 商品表1例:select left(教师姓名,1),count(*)from 教师表 group by left(教师姓名,1)例:select lower(substring(商品代号,1,3)as lower,upper(substring(商品代号,1,3)as upperFROMspk156例:declare strr varchar(60)setstrr=efghijkselectabcd:+ltrim(strr)abcd:efghijkQ:若最后一行改为select abcd:+strr,输出结果abcd:efghijk57例3:declare strr varchar(60)setstrr=aBCDCDefghijkselectleft(strr,6)aBCDCD例4:use pubsselectcharindex(wonderful,notes,5)fromtitleswheretitle_id=TC32184758例5:declare na char(6)setna=01select*from教师表 where 教师ID=reverse(na)例6:select stuff(abcdef33,2,4,ijklmn)aijklmnf33(用后面的字符取代第一个字符第二个位置开始的四个字符)59练习1:1、设变量ATC为1234(后有三个空格),变量BTC为 5678(前有三个空格),写出程序清单,要求显示出的结果为:12345678declareATCchar(7)declareBTCchar(7)setATC=1234setBTC=5678selectrtrim(ATC)+ltrim(BTC)2、如1中的变量,要求显示的结果为87654321,写出程序清单。selectreverse(rtrim(ATC)+ltrim(BTC)603、如1中的变量,要求显示的结果为1256784,写出程序清单。selectstuff(rtrim(ATC),3,1,ltrim(BTC)4、定义变量QWE为ABCD,AWE为EFGH,要求显示结果为abcdefgh,写出程序清单。declareATCchar(4)declareBTCchar(4)setATC=ABCDsetBTC=EFGHselectlower(ATC+BTC)或者selectlower(ATC)+lower(BTC)615、如4中的变量,要求显示结果为ABgh,写出程序清单declareATCchar(4)declareBTCchar(4)setATC=ABCDsetBTC=EFGHselectleft(ATC,2)+lower(right(BTC,2)62日期和时间函数日期和时间函数分类:见P:222页。表8-9例8-3例1:usepubsselectdatediff(day,pubdate,getdate()asno_of_daysfromtitles将dayn改为year或month都可以,当然意义与结果就不相同了。63例2:selectdatename(year,getdate()asYear_name(年)selectdatename(qq,getdate()asYear_name(季度)selectdatename(hh,getdate()asYear_name(小时)例3、selectdatename(hh,getdate()+:+datename(mi,getdate()asYear_name当前的时间64系统函数系统函数用于返回有关系统、用户、数据库和数据库对象的信息。例1、usemasterselectdbid,db_name(dbid)fromsysdatabasesorderbydbid-从系统表中返回当前服务器中所有的数据库编号与名字例2、selecthost_name()返回机器名65转换函数转换函数用于数据类型转换。一般情况下,SQLSERVER会自动处理某些数据类型的转换(隐性转换),但在某些情况下,转换不理想时,可用到转换函数。只有两个:CONVERT和CASTCAST:强制转换CONVERT:充许转换表达式和日期类型。课本P:224,例8-5例1:usepubsselecttitle,ytd_salesfromtitleswhereCAST(ytd_salesaschar(20)like15%andtype=trad_cooklike:模式匹配操作符,只对字符串起作用,%的作用与DOS的*相似。66例2:usepubsselecttitlefromtitleswheretitlelikeC%例3、selectgetdate()selectUSA=convert(char,getdate(),101)selectANSI=convert(char,getdate(),102)selectISO=convert(char,getdate(),112)67聚合函数及其他常用函数:聚合函数及其他常用函数:可能返回整个或几个列或一个列的汇总数据。例:select*fromxscjbselectsum(ywen+sxue+yyu+tyu+zzhi)fromxscjbwherexming=xt例:usepubsselectAVG(advance),sum(ytd_sales)fromtitleswheretype=business681、ISDATE(表达式)2、ISNULL(表达式1,表达式2)例:查看教师任课表中课程名称,系ID及没有安排任课教师的给出提示usexsselect课程名称,系ID,ISNULL(教师ID,无任课教师)from教师任课表3、NULIF(表达式1,表达式2)4、ISNUMERIC(表达式)5、COALESCE(表达式1,表达式2)69练习二1、输出当前时间中的年月日,并按美式排列。输出当前时间中的年月日,并按美式排列。selectconvert(char,getdate(),101)2、求出日期求出日期2000-01-10与与2001-01-12相差多少天?相差多少天?selectdatediff(day,2000-01-10,2001-01-24)3、显示用户登录数据库的用户名。显示用户登录数据库的用户名。selectsuser_name()4、求出学生名为求出学生名为“李明李明”的学生的总分与平均分。(设的学生的总分与平均分。(设有有ywen,sxue,yyu三科)三科)use中文中文select*fromxscjbselectSUM(ywen+sxue+yyu+tyu+zzhi)wherexming=xt70八、八、SQL ServerSQL Server的标识符及命名规则的标识符及命名规则nSQL ServerSQL Server服务器、数据库以及表、视图、列、索引、服务器、数据库以及表、视图、列、索引、触发器、存储过程、规则、默认值等数据库对象都可以触发器、存储过程、规则、默认值等数据库对象都可以拥有一个标识符。拥有一个标识符。nSQL ServerSQL Server规定了规定了两种类型两种类型的标识符,即的标识符,即常规标识符和常规标识符和界定标识符界定标识符。n界定标识符:界定标识符:使用了双引号或方括号等起界定作用的符号的标识使用了双引号或方括号等起界定作用的符号的标识符。符。n常规标识符:常规标识符:严格遵守标识符命名规则,不使用界定符进行限定。严格遵守标识符命名规则,不使用界定符进行限定。n对象全名:服务器名、数据库名、拥有者名和对象名四对象全名:服务器名、数据库名、拥有者名和对象名四个部分组成。(前三部分可以省略)个部分组成。(前三部分可以省略)71标识符格式规则1、首位必须是字母或汉字等。其他可以是下划线、数字或其他符号如,2、不能是T-SQL语言的保留字(关键字)、空格标识符分类:1、常规标识符严格遵守标识符命名规则用字母开头,可以有数字、下划线、汉字等字符,但一般不能有空格。2、界定标识符在命名时不遵守命名规则时,可以使用“”或起界定作用的符号界定标识符。当正常命名时,可以加也可以不加界定标识符。如:CREATETABLE教师(教师IDchar(10)NOTNULL,教师姓名nvarchar(50)NULL,出生年月smalldatetimeNULL)以上是在查询分析器中自动生成的SQL脚本,其中就是界定标识符。72对象命名规则对象命名规则:SQL的数据库对象名可以由的数据库对象名可以由1-128个字符组成,不区分个字符组成,不区分大小。当建立一个对象后,对象的全名将由四部分组大小。当建立一个对象后,对象的全名将由四部分组成:服务器名。数据库名。拥有者名。对象名。这四成:服务器名。数据库名。拥有者名。对象名。这四个名字不允许完全相同。使用时可以使用默认值。个名字不允许完全相同。使用时可以使用默认值。73