SQLServer2005案例教程数计系2/159目录第1章SQLServer2005使用基础第2章数据库创建与管理第3章表的设计与实现第4章操作数据库数据第5章检索数据库数据第6章索引与视图第7章Transact-SQL编程第8章管理事务和锁第9章存储过程和触发器第10章安全性管理3/159第1章SQLServer2005使用基础1.1数据库技术概述1.2SQLServer2005概述1.3SQLServer2005主要组件1.4SQLServer服务器管理4/1591.1数据库技术概述1.1.1数据库数据库是为特定目的而组织和表示的信息、表以及其他对象的集合。数据库中的数据是结构化的,没有不必要的冗余,并为多种应用提供服务;数据的存储独立于使用数据的应用程序;对数据库插入新数据,修改和检索原有数据都能够按一种可控制的方式进行;数据库可以用于搜索、排序以及重新组合数据等目的。数据库中的数据分为系统数据和用户数据两类。数据库可以包含各种类型的对象。第1章目录5/1591.1数据库技术概述1.1.2关系型数据库数据库支持的数据模型主要分为3种类型,即层次模型、网状模型和关系模型。目前以关系模型应用最为广泛。支持关系模型的数据库通常也称为关系型数据库。关系型数据库在表中以数据行和数据列的形式存储信息,并通过使用一个表的指定列中的数据在另一个表中查找其他数据来执行搜索。在关系型数据库中,数据是以行和列的形式存储的,这些行和列组成了表,一组表和其他对象一起组成了数据库。在关系型数据库中,数据分别存储在不同的表中。每个表包含某个特定主题的数据。表中的一列通常也称为字段,每个字段用于存储某种特性的数据。表中的一行通常也称为一条记录,每条记录包含表中一项的相关信息。第1章目录6/1591.1数据库技术概述1.1.3数据库管理系统数据库管理系统是对数据库进行管理的系统软件,它提供了用户与数据库之间的软件界面,可以用于创建、管理和维护数据库。数据库管理系统通常具有以下功能。数据库定义功能。数据库操作功能。数据控制功能。数据安全控制数据完整性控制数据库恢复数据库并发控制第1章目录7/1591.2SQLServer2005概述1.2.1SQLServer2005的版本SQLServer2005企业版(32位和64位)SQLServer2005标准版(32位和64位)SQLServer2005工作组版(仅适用于32位)SQLServer2005开发人员版(32位和64位)SQLServer2005免费版(仅适用于32位)1.2.2SQLServer2005的新增功能NotificationServices增强功能ReportingServices增强功能新增的ServiceBroker数据库引擎增强功能数据访问接口方面的增强功能AnalysisServices的增强功能IntegrationServices的增强功能复制增强工具和实用工具增强功能第1章目录8/1591.2SQLServer2005概述1.2.3SQLServer2005的安装使用SQLServer2005安装向导可以来安装所有SQLServer组件:包括数据库引擎、分析服务、报表服务、集成服务、管理工具以及文档和教程。选择要安装的组件设置实例名称和服务帐户设置身份验证模式和设置排序规则设置报表服务器安装选项1.2.4验证SQLServer安装“开始”菜单中的MicrosoftSQLServer2005程序组SQLServer系统数据库和示例数据库SQLServer服务的相关信息第1章目录9/1591.3SQLServer2005主要组件1.3.1SQLServer服务器组件数据库引擎分析服务报表服务集成服务1.3.2SQLServerManagementStudio集成环境,用于访问、配置、控制、管理和开发SQLServer的所有组件。常用窗口已注册的服务器,对象资源管理器,查询编辑器,查询结果,模板资源管理器,属性窗口,解决方案资源管理器SQLServerManagementStudio常用功能。第1章目录10/1591.3SQLServer2005主要组件1.3.3SQLServer配置管理器SQLServer配置管理器用于管理与SQLServer相关联的服务、配置SQLServer使用的网络协议以及从SQLServer客户端计算机管理网络连接配置。SQLServer配置管理器是一个Microsoft管理控制台管理单元,可以从“开始”菜单进行访问,也可以将其添加到其他任何Microsoft管理控制台显示中。1.3.4SQLServerProfilerSQLServerProfiler是用于从服务器捕获SQLServer2005事件的工具。事件保存在一个跟踪文件中,可在以后对该文件进行分析,也可以在试图诊断某个问题时,用它来重播某一系列的步骤。1.3.5数据库引擎优化顾问数据库引擎优化顾问用于分析在一个或多个数据库中运行的工作负荷的性能效果。工作负荷是对要优化的数据库执行的一组Transact-SQL语句。分析数据库的工作负荷效果后,数据库引擎优化顾问会提供在SQLServer数据库中添加、删除或修改物理设计结构的建议。第1章目录11/1591.3SQLServer2005主要组件1.3.6BusinessIntelligenceDevelopmentStudioBusinessIntelligenceDevelopmentStudio是包含了专用于SQLServer商业智能的其他项目类型的MicrosoftVisualStudio2005也是用于开发商业解决方案的主要环境,其中包括AnalysisServices、IntegrationServices和ReportingServices项目。1.3.7命令提示实用工具SQLServer2005还提供了一组命令提示实用工具。例如bcp实用工具、dta实用工具。第1章目录12/1591.4SQLServer服务器管理1.4.1管理服务器注册服务器基于服务器创建查询将对象资源管理器连接到服务器编辑服务器的注册信息导出已注册的服务器信息导出更改服务器的状态删除服务器的注册信息1.4.2管理服务器组创建服务器组编辑服务器组的属性服务器组中注册新服务器将注册服务器移动到服务器组中向服务器组中导入注册服务器删除服务器组第1章目录13/159第2章数据库创建与管理2.1数据库概述2.2创建数据库2.3修改数据库2.4备份和还原数据库14/1592.1数据库概述第2章目录2.1.1数据库基本概念SQLServer数据库由表的集合组成。表上有几种类型的控制,例如约束、触发器、默认值和自定义用户数据类型,用于保证数据的有效性。一个SQLServer实例可以支持多个数据库。每个数据库可以存储来自其他数据库的相关数据或不相关数据。在SQLServer中,数据库分为两种类型:系统数据库和用户数据库。2.1.2文件与文件组1.数据库文件主要数据库文件、次要数据库文件和事务日志文件。2.文件组每个数据库有一个主要文件组。如果在数据库中创建对象时没有指定对象所属的文件组,对象将被分配给默认文件组。使用文件和文件组时需要考虑的因素。15/1592.1数据库概述第2章目录2.1.3事务日志事务日志用于记录所有事务以及每个事务对数据库所做的修改。事务日志是数据库的重要组件,如果系统出现故障,则可能需要使用事务日志将数据库恢复到一致状态。事务日志支持的操作。SQLServer数据库引擎事务日志的特征。2.1.4系统数据库mastermsdbmodelResourcetempdbdistribution16/1592.1数据库概述第2章目录2.1.5数据库状态和文件状态1.数据库状态ONLINEOFFLINERESTORINGRECOVERINGRECOVERYPENDINGSUSPECTEMERGENCY2.文件状态ONLINEOFFLINERESTORINGRECOVERYPENDING17/1592.2创建数据库第2章目录2.2.1使用SSMS创建数据库创建数据库,就是确定数据库的名称、所有者、大小、增长方式以及存储该数据库的文件和文件组等信息的过程。在一个SQLServer实例中,最多可以创建32767个数据库。创建数据库时,model数据库中的所有用户定义对象都将复制到所有新创建的数据库中。使用SQLServerManagementStudio创建数据库。2.2.2使用SQL语句创建数据库CREATEDATABASE语法格式Transact-SQL语法约定CREATEDATABASE中的组成部分【案例2.1】使用CREATEDATABASE语句创建数据库18/1592.3修改数据库第2章目录2.3.1设置数据库选项自动选项AUTO_CLOSEAUTO_CREATE_STATISTICSAUTO_UPDATE_STATISTICSAUTO_SHRINK游标选项CURSOR_CLOSE_ON_COMMITCURSOR_DEFAULT数据库可用性选项OFFLINE|ONLINE|EMERGENCYREAD_ONLY|READ_WRITESINGLE_USER|RESTRICTED_USER|MULTI_USER日期相关性优化选项DATE_CORRELATION_OPTIMIZATION外部访问选项参数化选项恢复选项ServiceBroker选项快照隔离选项SQL选项设置数据库选项ALTERDATABASEsp_configure【案例2.3】将MyDB数据库的恢复模式由完全模式更改为简单模式。19/1592.3修改数据库第2章目录2.3.2扩展数据库默认情况下,SQLServer根据创建数据库时指定的增长参数自动扩展数据库。通过为现有数据库文件分配更多的空间或在创建新文件,还可以通过手动方式来扩展数据库。如果现有的文件已满,则可能需要扩展数据或事务日志的空间。如果数据库已经用完分配给它的空间且不能自动增长,则会出现错误。增加数据库的大小使用SQLServerManagementStudioALTERDATABASE语句【案例2.4】20/1592.3修改数据库第2章目录2.3.3收缩数据库1.自动收缩数据库2.使用DBCCSHRINKDATABASE收缩数据库3.使用DBCCSHRINKFILE收缩数据库4.使用SQLServerManagementStudio收缩文件2.3.4扩展事务日志当一个数据库增长或数据库修改活动增加时,可能需要对事务日志进行扩展。如果事务日志使用完了空间,SQLServer便不能记录事务,在这种情况下不允许对数据进行修改。事务日志进行扩展使用SQLServerManagementStudioALTERDATABASE语句【案例2.5】21/1592.3修改数据库第2章目录2.3.5创建文件组文件组是在数据库中对文件进行分组的一种管理机制。文件组不能独立于数据库文件创建。在首次创建数据库或者以后将更多文件添加到数据库时,可以创建文件组。但是,一旦将文件添加到数据库,就不可能再将这些文件移到其他文件组。一个文件不能是多个文件组的成员。文件组只能包含数据文件。事务日志文件不能是文件组的一部分。创建文件组使用SQLServerManagementStudio对象资源管理器ALTERDATABASE语句【案例2.6】22/1592.3修改数据库第2章目录2.3.6分离和附加数据库1.分离数据库使用对象资源管理器使用sp_detach_db2.附加数据库使用对象资源管理器使用CREATEDATABASE语句【案例2.7】2.3.7重命名数据库使用对象资源