
第3章数帮库及其管理 数据军由包含数据的基本表和对象(如视图、引,存储过程和触发器等)组成。其主要 用途是处理数据管理活动产生的信息,例如。学生管理中的大量学生信息。需要有一个基于 数据技术的学生信息管理系统来提供应用支持.本章主要讲述SQLServer2O00中的系统数据 库,以及它们在SSeF中的使用和所提供的管理作用:最后讲述年何创建用户数据库和 有关数据军的管理。 31系统数据库 每个SqSv©r都包含两种类型的数据库:系统数据库和用户数据库,系统数据库存储 有关SQLServer的信息,SQLServer使用系统数据库米操作和管理系统,例如下面将要核介 绍的ster数据库,ode数据岸、msd山量据片和tep西数据库。面用户数据库是由用户 米建这,例如学生管理信息数据库,SQLServer可以包含有一个或多个用户数据库。 31,1 aster数据库 质名思文,国1ster(控制)数据库是SqL5 erver2000中的总控数据岸,它是最重要的系统 数据库,记录系统中所有系统极的信息,它对其他的数据库实施管理和控制的功能,同时该 数据库还保存了用于SQLServer管理的许多系统级别信息。翻str数据库记录所有的登录 帐户和系统配置设置:记录所有其它的数据库,其中包括数据库文件的位置:还记承 SQLServer的初始化信息,它始终有一个可用的最新ster数据库备份。 由上可知,在计算机上安装了一个SCLServer系统,那么系统首先会建立一个steT 数据库来记录系统的有关登录帐户,系统配置、数暴库文件等初始化信息:如果用户在这个 SL5rer系统里面建立一个用户数据库(如学生管理系统数据库),系统马上将用户数据库 的有关用户管理、文件配置.数据库属性等信息写入到astr数据库,系统正是根据留st©r 数据库里的信息米管理系统和其它数据库,因此如果n1T数据库信息被破坏,整个 SqL5 erver系统将受到影响。用户数据库将不能被使用. 31.2o1数据岸 加1数据库为用户新创建的数据库提供模板和单型。它色含了用户数据库中应该包含 的所有系统表的结构。当用户创建数据库时,系统会自动地把脚】数据库中的内容复制到 新建的用户数据库中 熟透licrosoftVord的人都会有这样的体会,当修政了文档的页面设置,并把该设置作 为欧认设置保存起米,那么在此之后新建的任何文档的格式都会欧认为该设置格式,也就是
第 3 章 数据库及其管理 数据库由包含数据的基本表和对象(如视图、索引、存储过程和触发器等)组成。其主要 用途是处理数据管理活动产生的信息。例如,学生管理中的大量学生信息,需要有一个基于 数据技术的学生信息管理系统来提供应用支持。本章主要讲述 SQLServer2000 中的系统数据 库,以及它们在 SQLServer 中的使用和所提供的管理作用;最后讲述如何创建用户数据库和 有关数据库的管理。 3.1 系统数据库 每个 SQLServer 都包含两种类型的数据库:系统数据库和用户数据库。系统数据库存储 有关 SQLServer 的信息,SQLServer 使用系统数据库来操作和管理系统,例如下面将要被介 绍的 master 数据库、model 数据库、msdb 数据库和 tempdb 数据库。而用户数据库是由用户 来建立,例如学生管理信息数据库。SQLServer 可以包含有一个或多个用户数据库。 3.1.1master 数据库 顾名思义,master(控制)数据库是 SQLServer2000 中的总控数据库,它是最重要的系统 数据库,记录系统中所有系统级的信息。它对其他的数据库实施管理和控制的功能,同时该 数据库还保存了用于 SQLServer 管理的许多系统级别信息。master 数据库记录所有的登录 帐户和系统配置设置;记录所有其它的数据库,其中包括数据库文件的位置;还记录 SQLServer 的初始化信息,它始终有一个可用的最新 master 数据库备份。 由上可知,在计算机上安装了一个 SQLServer 系统,那么系统首先会建立一个 master 数据库来记录系统的有关登录帐户、系统配置、数据库文件等初始化信息;如果用户在这个 SQLServer 系统里面建立一个用户数据库(如学生管理系统数据库),系统马上将用户数据库 的有关用户管理、文件配置、数据库属性等信息写入到 master 数据库。系统正是根据 master 数据库里的信息来管理系统和其它数据库。因此如果 master 数据库信息被破坏,整个 SQLServer 系统将受到影响,用户数据库将不能被使用。 3.1.2model 数据库 model 数据库为用户新创建的数据库提供模板和原型。它包含了用户数据库中应该包含 的所有系统表的结构。当用户创建数据库时,系统会自动地把 model 数据库中的内容复制到 新建的用户数据库中。 熟悉 MicrosoftWord 的人都会有这样的体会,当修改了文档的页面设置,并把该设置作 为默认设置保存起来,那么在此之后新建的任何文档的格式都会默认为该设置格式。也就是

说,在把被修政过的页面授置作为默认授置保存的同时,也就修政了Microsoftord中基于 所有新建文档的NOL根板。同样,SC5ervr中的e1(模版)数据库就是系统为用户创 建新的数据库面制作的一个通用模板,用户在系统中新创建的所有数据库的内容,最初都是 与该模板数据库具有完全相同的内容: 31.3岛数据库 asdb数据库供SQLServer代理程序调度警报作业以及记录操作员时使用。当很多用户 在使用一个数据库时,经常会出现多个用户对同一数据的修改而造成数据不一致现象。或者 是用户对某线数据和对象的非法操作等。为了防止上述现象的发生,SLS知rver果面有一套 代理程序能够按照系统管理员的设定来监控上述现象的发生,否则及时向系统管理员发出警 报。那么当代理程序调度警报和作业、记录操作员的时候,系统要川到域实时产生许多相关 信息,这些信息一般存错在s山数据库里面。 31.4 tempdb数据岸 使用S风Srv©r系统时,经常产生一些临时表和格时数据库对象等,如用户在修改数据 库表中某一行数据时。在修政数据这一事务没有被提交的情况下,系饶里面就会有该数据的 新阳版本之分,往往修政后的数据表构成了临时表。所以系统要提供一个空间来储存这些临 时表和临时对象。tc即d数据库保存所有的临时表和临时存储过程。te即db数据库是全局 资氯,所有造接到系统的用户的临时表和存储过程都被存储在该数据库中。 teapdb数据库有个特性,它是情时的。ted数据库在SQLServer每次启动时都棱重 新创建,因此该数据库在系统启动时总是干净的,上一次的临时数据都被清除掉了。临时表 和存储过程在连接斯开时自动除去,而且当系统关闭后将没有任何连接处于活动状态,因此 te即db数据库中没有任何内容会从SQLServer的一个启动工f作保存到另一个启动工作之中. 默认情况下,在SOLServer在运行时t即h数据库会根据需要自动增长。不过,与其 它数据体不用,每次启动数据岸引擎时,它会重置为其初始大小: 此外,SQLServer2000还提供了两个样板数据库:bs和orthwind。.其中ubs数据 库记录了一个虚构的出版公可的数据信息,而Not1d数据库则保存了一个虚构的贸易公 可的数据信息。sdb、tempdb、pbs、orthwind这四个系统数据库和两个样板数据库是 在系统安装时所生成的 32创建用户数据库 在一个SqL5er系统中有多种方法可以创建用户数据库,一种是使用企业管理器建立 数据库,此方法直观简单,以图形化的方式完成数据库的创建和数据库属性的设置:另一种
说,在把被修改过的页面设置作为默认设置保存的同时,也就修改了 MicrosoftWord 中基于 所有新建文档的 NORMAL 模板。同样,SQLServer 中的 model(模板)数据库就是系统为用户创 建新的数据库而制作的一个通用模板,用户在系统中新创建的所有数据库的内容,最初都是 与该模板数据库具有完全相同的内容。 3.1.3msdb 数据库 msdb 数据库供 SQLServer 代理程序调度警报作业以及记录操作员时使用。当很多用户 在使用一个数据库时,经常会出现多个用户对同一数据的修改而造成数据不一致现象,或者 是用户对某些数据和对象的非法操作等。为了防止上述现象的发生,SQLServer 里面有一套 代理程序能够按照系统管理员的设定来监控上述现象的发生,否则及时向系统管理员发出警 报。那么当代理程序调度警报和作业、记录操作员的时候,系统要用到或实时产生许多相关 信息,这些信息一般存储在 msdb 数据库里面。 3.1.4tempdb 数据库 使用 SQLServer 系统时,经常产生一些临时表和临时数据库对象等,如用户在修改数据 库表中某一行数据时,在修改数据这一事务没有被提交的情况下,系统里面就会有该数据的 新旧版本之分,往往修改后的数据表构成了临时表。所以系统要提供一个空间来储存这些临 时表和临时对象。tempdb 数据库保存所有的临时表和临时存储过程。tempdb 数据库是全局 资源,所有连接到系统的用户的临时表和存储过程都被存储在该数据库中。 tempdb 数据库有个特性,它是临时的,tempdb 数据库在 SQLServer 每次启动时都被重 新创建,因此该数据库在系统启动时总是干净的,上一次的临时数据都被清除掉了。临时表 和存储过程在连接断开时自动除去,而且当系统关闭后将没有任何连接处于活动状态,因此 tempdb 数据库中没有任何内容会从 SQLServer 的一个启动工作保存到另一个启动工作之中。 默认情况下,在 SQLServer 在运行时 tempdb 数据库会根据需要自动增长。不过,与其 它数据库不同,每次启动数据库引擎时,它会重置为其初始大小。 此外,SQLServer2000 还提供了两个样板数据库:pubs 和 Northwind。其中 pubs 数据 库记录了一个虚构的出版公司的数据信息。而 Northwind 数据库则保存了一个虚构的贸易公 司的数据信息。msdb、tempdb、pubs、Northwind 这四个系统数据库和两个样板数据库都是 在系统安装时所生成的。 3.2 创建用户数据库 在一个 SQLServer 系统中有多种方法可以创建用户数据库,一种是使用企业管理器建立 数据库,此方法直观简单,以图形化的方式完成数据库的创建和数据库属性的设置;另一种

是在SQLServer董询分析器中使用Transac1-SQL命令创建数据库,此方法使用 Transact--S.命令创建数据库和设置数据库属性,它还可以将创建数据库的脚本保存下米。 在其它机器上运行以创建相同的数据库。此外,利用系统提供的创建数据库向导也可以创建 数据库。 创建用户数据库之前,经须先确定数据库的名称、数据库所有者、初始大小,数据库文 件增长方式,数据库文件的最大允许增长的大小,以及用于存储数据库的文件路径和届性等, 下而分别介绍两种创建数据岸的方法。 及2.1使用金业管理器创建川户数据库 首先,在企业管理器界面里展开SOLServer服务墨,右击“数据库”,然后单击“新建 数据库”命令。如图3-1所示。 接着,系统弹出“数据库属性”对话框,在“名称”输入框中键入创建的数据库名称: Student,然后单击确定按钮。如图3-2所示。此时系饶会以数据库名作为前缓创建主数据 库文件和事务日志文件,如:Student_Data.df和5 tudent_Log.1df。主数据库和事务日志 文件的初始大小与为四d】系统数据库指定的默认大小相月. 用户可以选择“数据文件”标签。对数据文件的默认属性进行修改,如图33所示,可 以通过设置数据文件的路径、文件的增长方式和文件增长限制等属性。用户还可以选择“事 务日志”标签。对数据库的事务日志文件的欧认属性进行修改。如图3-4所示。 创建完成用户数据华后,就可以在企业管理器的“控制台根目录”窗口中,展开S 服务墨“(Local)WindowsNT”下的“数据库”,用户就可以看到新建立的数据库。 32.2使用SqL.查询分析器创建用户数据库 使用S网L查询分析器创建数暴岸,其实就是在在询分析器的编辑窗口中使用 CREATEDATARASE等T-Sq.语句并运行这些T-SqL命令,米创建用户数据库,其语句格式如 下 CREATEDATABASEdatabase_nane C [[PRTMARY](NAME=logical_file_name. FILEXAME='os_file_name', [.SIZE-size] [MAXSIZE=(max_sixelUNI.IMTED) [FILEGSOTH=grom_increment])
是在 SQLServer 查询分 析器中 使用 Transact-SQL 命令 创建数 据库 ,此方 法使用 Transact-SQL 命令创建数据库和设置数据库属性,它还可以将创建数据库的脚本保存下来, 在其它机器上运行以创建相同的数据库。此外,利用系统提供的创建数据库向导也可以创建 数据库。 创建用户数据库之前,必须先确定数据库的名称、数据库所有者、初始大小、数据库文 件增长方式、数据库文件的最大允许增长的大小、以及用于存储数据库的文件路径和属性等。 下面分别介绍两种创建数据库的方法。 3.2.1 使用企业管理器创建用户数据库 首先,在企业管理器界面里展开 SQLServer 服务器,右击“数据库”,然后单击“新建 数据库”命令。如图 3-1 所示。 接着,系统弹出“数据库属性”对话框,在“名称”输入框中键入创建的数据库名称: Student,然后单击确定按钮。如图 3-2 所示。此时系统会以数据库名作为前缀创建主数据 库文件和事务日志文件,如:Student_Data.mdf 和 Student_Log.ldf。主数据库和事务日志 文件的初始大小与为 model 系统数据库指定的默认大小相同。 用户可以选择“数据文件”标签,对数据文件的默认属性进行修改,如图 3-3 所示,可 以通过设置数据文件的路径、文件的增长方式和文件增长限制等属性。用户还可以选择“事 务日志”标签,对数据库的事务日志文件的默认属性进行修改。如图 3-4 所示。 创建完成用户数据库后,就可以在企业管理器的“控制台根目录”窗口中,展开 SQL 服务器“(Local)WindowsNT”下的“数据库”,用户就可以看到新建立的数据库。 3.2.2 使用 SQL 查询分析器创建用户数据库 使用 SQL 查询分析器创建数据库,其实就是在查询分析器的编辑窗口中使用 CREATEDATABASE 等 T-SQL 语句并运行这些 T-SQL 命令,来创建用户数据库,其语句格式如 下: CREATEDATABASEdatabase_name ON {[PRIMARY](NAME=logical_file_name, FILENAME='os_file_name', [,SIZE=size] [,MAXSIZE={max_size|UNLIMTED}] [,FILEGROWTH=grow_increment])

]儿,-n】 LOGON {(NAME=logical_file_mame, FILEXAME='os_file_name' [SIZE-size] [MAXSIZE=(max_sizelUNLIVTED) [FILEGROWTH=grom_increrent]) ]n] 其中 database_.na:要建立的数据库名称 限IMT:该参数在主文件组中指定文件。主文件组中包含有所有数据库系统表,还包 含所有未指深给用户文件组的对象,主文件组的第一个logical_file_nae成为主文件,该 文件包含数据库的厦辑起点及其系统表。一个数据库只能有一个主文件。如果没有指定 限I灯,都么CREATEDATABASE语句中列出的第一个文件将成为主文件. 风:指定最式定义用来存销数据库数据部分的磁盘文件(数据文件)。 GN:指定建立数据库的日志文件: NE:指定数据成日志文件的文作名称。 FILENAME:指定文件的操作系统文件名和路径。os_file_nar中的路径必须指定为 SQLServer所安装鼎务器上的某个文件夹。 S1E:指定数据或日志文件的大小。用户可以以图为单位指定大小,也可以使用默认 单位郑来指定大小。当添加数据文件或日志文件时,其默认大小是1B, SIZ正:指定文件能够增长到的最大长度。默认单位为B,用户也可以以B来指定 该长度。如果没有指定长度的话,文件将一直增长直到磁盘满为止。要建立的数据库大小单 位为组. FILEGRO:指定文件的增长增量。该参数设置不能超过SIZE参数。指定值的默认 单位为组,用户也可以以B为单位进行指定,此外还可以使用百分比(),如果该参数设 有指定的话,默认值为10%。最小值为64B 【3-1】侧建一个名为student的用户数据库,其主文件大小为100WB,最大长度为50B, 文件大小增长率为1跳,日志文件大小为10B,文件增长增量为2B。 CREATEDATABASEstudent
}[,…n] LOGON {(NAME=logical_file_name, FILENAME='os_file_name' [,SIZE=size] [,MAXSIZE={max_size|UNLIMTED}] [,FILEGROWTH=grow_increment]) }[,…n] 其中: database_name:要建立的数据库名称 PRIMARY:该参数在主文件组中指定文件。主文件组中包含有所有数据库系统表,还包 含所有未指派给用户文件组的对象。主文件组的第一个 logical_file_name 成为主文件,该 文件包含数据库的逻辑起点及其系统表。一个数据库只能有一个主文件。如果没有指定 PRIMARY,那么 CREATEDATABASE 语句中列出的第一个文件将成为主文件。 ON:指定显式定义用来存储数据库数据部分的磁盘文件(数据文件)。 LOGON:指定建立数据库的日志文件。 NAME:指定数据或日志文件的文件名称。 FILENAME:指定文件的操作系统文件名和路径。os_file_name 中的路径必须指定为 SQLServer 所安装服务器上的某个文件夹。 SIZE:指定数据或日志文件的大小。用户可以以 MB 为单位指定大小,也可以使用默认 单位 KB 来指定大小。当添加数据文件或日志文件时,其默认大小是 1MB。 MAXSIZE:指定文件能够增长到的最大长度。默认单位为 KB,用户也可以以 MB 来指定 该长度。如果没有指定长度的话,文件将一直增长直到磁盘满为止。要建立的数据库大小单 位为 MB。 FILEGROWTH:指定文件的增长增量。该参数设置不能超过 MAXSIZE 参数。指定值的默认 单位为 MB,用户也可以以 KB 为单位进行指定,此外还可以使用百分比(%)。如果该参数没 有指定的话,默认值为 10%,最小值为 64KB 【3-1】创建一个名为 student 的用户数据库,其主文件大小为 100MB,最大长度为 50MB, 文件大小增长率为 15%,日志文件大小为 10MB,文件增长增量为 2MB。 CREATEDATABASEstudent

ONPRIMARY (NAME=student_data. FILENAME-'c:\ProgranFiles Vicrosof tSQLServer\SSQL\Data\student.odf', 51ZE-25 4512E=100, FILEGRONTH-15%) LOGON (NAME=student_log, FILENAME-'c:\ProgranFiles Vicrosof tSQLServer \SSQL\Data\s tudent.Idf', SIZE=10, MAXSIZE=20, FILEGROWTH-2) 如图35所示,在SqL.查询分析器的编辑窗口输入编辑上述T-Sg.语句并执行,即可创 建指定的数据库。 图3-5使用查询分析器创建量据库 说明:使用一条CREATEDATARASE语句即可创建数据库以及存储该数据库的文件, SQLServer是分两步实现CREATEDATABASE语句:首先,SQLServer使用odel数据岸的刚本 初始化数据库及其元数据:然后,SQLServ©r使川空页填充数据库的剩余忽分,每个新数基 库都从@de】数据库继承数据库选项设置。 32.3事务日志 在SQLServer2000中,数据库必须包含一个域多个数据文件和一个事务日志文作,并且 每个文件只能由一个数据库使用,如图3-5中的“学生管理.f”和“学生管理1df”两个 文件只能由“学生管理”这个数据华使用。 前面己经讲过数据库的数据文件主要记录要据库的启动信息并用来存储数据,而数据库 的事务日志文件里包含着用于恢复数据库的事务日志信息。SS0rvr使用各数据库的事务 日志来恢复事务。 事务(Transaction)是作为单个逻辑工作单元执行的一系列操作,如在数据库中创建一 张数据表,对数据表中的某一数据进行修政等操作都是一个事务。事务日志是数据库中已发 生的所有修政和执行每次修议的事务的一连串记录。事务日志记录每个事务的开始。它记录 了在每个事务期间,对数据的更改及辙消所做更改所需的足够信息。对于一些大的操作(如
ONPRIMARY (NAME=student_data, FILENAME='c:\ProgramFiles\MicrosoftSQLServer\MSSQL\Data\student.mdf', SIZE=25, MAXSIZE=100, FILEGROWTH=15%) LOGON (NAME=student_log, FILENAME='c:\ProgramFiles\MicrosoftSQLServer\MSSQL\Data\student.ldf', SIZE=10, MAXSIZE=20, FILEGROWTH=2) 如图 3-5 所示,在 SQL 查询分析器的编辑窗口输入编辑上述 T-SQL 语句并执行,即可创 建指定的数据库。 图 3-5 使用查询分析器创建数据库 说明:使用一条 CREATEDATABASE 语句即可创建数据库以及存储该数据库的文件。 SQLServer 是分两步实现 CREATEDATABASE 语句:首先,SQLServer 使用 model 数据库的副本 初始化数据库及其元数据;然后,SQLServer 使用空页填充数据库的剩余部分,每个新数据 库都从 model 数据库继承数据库选项设置。 3.2.3 事务日志 在 SQLServer2000 中,数据库必须包含一个或多个数据文件和一个事务日志文件,并且 每个文件只能由一个数据库使用,如图 3-5 中的“学生管理.mdf”和“学生管理.ldf”两个 文件只能由“学生管理”这个数据库使用。 前面已经讲过数据库的数据文件主要记录数据库的启动信息并用来存储数据,而数据库 的事务日志文件里包含着用于恢复数据库的事务日志信息。SQLServer 使用各数据库的事务 日志来恢复事务。 事务(Transaction)是作为单个逻辑工作单元执行的一系列操作,如在数据库中创建一 张数据表、对数据表中的某一数据进行修改等操作都是一个事务。事务日志是数据库中已发 生的所有修改和执行每次修改的事务的一连串记录。事务日志记录每个事务的开始,它记录 了在每个事务期间,对数据的更改及撤消所做更改所需的足够信息。对于一些大的操作(如

CREATEINDE0,事务日志则记录该操作发生的事实。随着数据库中发生被记录的操作,日志 会不斯地增长。 事务日志记录数据页的分配和释放,以及每个事务的是交或目滚。这允许SQLServer 采用下列方式应用(前亲)成收回(目滚)每个事务, 在应用事务日志时,事务将前滚。SgS©rver将每次修改后的陕象复制到数据库中,或 者重新运行语句(如CREATEINDE)。这些操作将按型其原始发生顺序进行应用。此过程结束 后,数据岸将处子与事务日志备份时相同的状态。 当收网来完成的事务时,事务将同滚。SQLServer将族复到此未完成事务之前的状态。 32,4查看数据库信息 对于已有的数据库,我们可以分别利用企业管理器和T-语句来查看量据岸信息, 1.用企业管理器查看数据库信息 打开SQLServer企业管理器,在“控制台根目录”窗口中,意中需要查看信息的数据库 “student”按鼠标右量,在弹出要单中选择“查看”某单,在弹出的子菜单中选择并单击 “任务板”莱单,如图36、3-7所示。 在“任务板”的“常规”遗项卡中。此时会列出数据库、备份和维护计划,以及空间配 置等信息。数据库本身的信息包括数据库的所有者、创建的日期、大小,可用空间、数据岸 选项与用户数:在推护方面,则会列出上一次执行数据库光全备份,差异备份,事务日志备 份的日期时向以及先前创建的各个隆护计划:至于空间配置则会将各个数据文件与日表文件 的己使用空间、可用空间、以及总空间请楚的显示出来。 2使用T-5L金令查看数据库信息 在T-Sq吾句格式中有许多查看数据库信息的语句。如可以使用存储过程sp_helpdb 来显示有关数据库和数据库参数的信息。图3-8显示了使用存储过程s印he1pb对数据库 student进行属性查询,图中显示了该数据库的所有者、状态,创建时间、文件尺寸,文件 增长属性等数据库信息。其命令为:sp_helpdh'student 图3-9显示了使用存储过程s印_即ceused查看数据库空间倍息。结果显示了数据库 student的基本信息和数据库的空间尺寸以及己使用空间和表分配空间等信息。 33管理数据库 数据库在使用过程中一些属性会发生变化,倒如空向尺寸、数据库性能等,用户需要以 自动或于工等方式对数据库述行增、副,改,数据库收缩。数据库属性选项的修改等有效的 管理
CREATEINDEX),事务日志则记录该操作发生的事实。随着数据库中发生被记录的操作,日志 会不断地增长。 事务日志记录数据页的分配和释放,以及每个事务的提交或回滚。这允许 SQLServer 采用下列方式应用(前滚)或收回(回滚)每个事务。 在应用事务日志时,事务将前滚。SQLServer 将每次修改后的映象复制到数据库中,或 者重新运行语句(如 CREATEINDEX)。这些操作将按照其原始发生顺序进行应用。此过程结束 后,数据库将处于与事务日志备份时相同的状态。 当收回未完成的事务时,事务将回滚。SQLServer 将恢复到此未完成事务之前的状态。 3.2.4 查看数据库信息 对于已有的数据库,我们可以分别利用企业管理器和 T-SQL 语句来查看数据库信息。 1.用企业管理器查看数据库信息 打开 SQLServer 企业管理器,在“控制台根目录”窗口中,选中需要查看信息的数据库 “student”按鼠标右键,在弹出菜单中选择“查看”菜单,在弹出的子菜单中选择并单击 “任务板”菜单,如图 3-6、3-7 所示。 在“任务板”的“常规”选项卡中,此时会列出数据库、备份和维护计划、以及空间配 置等信息。数据库本身的信息包括数据库的所有者、创建的日期、大小、可用空间、数据库 选项与用户数;在维护方面,则会列出上一次执行数据库完全备份、差异备份、事务日志备 份的日期时间以及先前创建的各个维护计划;至于空间配置则会将各个数据文件与日志文件 的已使用空间、可用空间、以及总空间清楚的显示出来。 2.使用 T-SQL 命令查看数据库信息 在 T-SQL 语句格式中有许多查看数据库信息的语句。如可以使用存储过程 sp_helpdb 来显示有关数据库和数据库参数的信息。图 3-8 显示了使用存储过程 sp_helpdb 对数据库 student 进行属性查询,图中显示了该数据库的所有者、状态、创建时间、文件尺寸、文件 增长属性等数据库信息。其命令为:sp_helpdb'student' 图 3-9 显示了使用存储过程 sp_spaceused 查看数据库空间信息。结果显示了数据库 student 的基本信息和数据库的空间尺寸以及已使用空间和未分配空间等信息。 3.3 管理数据库 数据库在使用过程中一些属性会发生变化,例如空间尺寸、数据库性能等,用户需要以 自动或手工等方式对数据库进行增、删、改,数据库收缩,数据库属性选项的修改等有效的 管理

331打开数据库 当用户登录SQLServer服务器,连接上SQLServer后,用户需要连接上SQLServer服务 器中的一个数据库,才能使用改该数据库中的数据,如果用户没有预先指定连接哪个数据库, SQLServer会自动替川户连上aster系统数据库。一般地,用户需要指定连接SQLServer 服务器中的哪个数据库,或者从一个数据库切换至另一个数据库,可以在查询分析器的查淘 子窗口利用s0命◆来打开或切换至不同的数据库。 打开或切换数据库的角令数据如下: USEdatabase_nane 其中;atabase_na国表示想打开域切换的数据库名称, 33,2增加和垢减数据库容量 当数据库的数据增长到要超过它的使用空间时,必须如大数据岸的容量。增加数据岸容 量就是给它提供颗外的设备空间。如果折派给某数据库过多的设备空间,可以通过缩减数据 库容量来减少设备空间的浪贵。增加和缩减数据库容量的方法一般有两种,即用T-SL命◆ 和利用企业管理器米增第数据岸容量。 1.在查询分析器中,用T-S观语句增缩数据库容量, 扩增数据库语句格式: AL.TERDMATARASEdatabase_nane WODIFYFILE (NAME=file_name, SIZE=nevsize ) 其中: datahase_nne:想扩充容量的数据库名将 fi1e_na:需要增如容量的数据库文件 sz:为数据库文件指定新的容量尺寸,该容量必须大于现有数据岸的空间: 【3-2】数据库student的数据库文件student.mdf的初始分配空何大小为GaB,璞在 想将其大小扩充到20WB,则具体语句如下 USEstudent C0 ULTERDATARASEstudent
3.3.1 打开数据库 当用户登录 SQLServer 服务器,连接上 SQLServer 后,用户需要连接上 SQLServer 服务 器中的一个数据库,才能使用改该数据库中的数据。如果用户没有预先指定连接哪个数据库, SQLServer 会自动替用户连上 master 系统数据库。一般地,用户需要指定连接 SQLServer 服务器中的哪个数据库,或者从一个数据库切换至另一个数据库,可以在查询分析器的查询 子窗口利用 use 命令来打开或切换至不同的数据库。 打开或切换数据库的命令数据如下: USEdatabase_name 其中:database_name 表示想打开或切换的数据库名称。 3.3.2 增加和缩减数据库容量 当数据库的数据增长到要超过它的使用空间时,必须加大数据库的容量。增加数据库容 量就是给它提供额外的设备空间。如果指派给某数据库过多的设备空间,可以通过缩减数据 库容量来减少设备空间的浪费。增加和缩减数据库容量的方法一般有两种,即用 T-SQL 命令 和利用企业管理器来增缩数据库容量。 1.在查询分析器中,用 T-SQL 语句增缩数据库容量。 扩增数据库语句格式: ALTERDATABASEdatabase_name MODIFYFILE (NAME=file_name, SIZE=newsize ) 其中: database_name:想扩充容量的数据库名称 file_name:需要增加容量的数据库文件 newsize:为数据库文件指定新的容量尺寸,该容量必须大于现有数据库的空间。 【3-2】数据库 student 的数据库文件 student.mdf 的初始分配空间大小为 10MB,现在 想将其大小扩充到 20MB,则具体语句如下: USEstudent GO ALTERDATABASEstudent

MODIFYFILE (NAME='c:\ProgranFiles icrosoftSQLServer\SSQL\Data\student.ndt', S1ZE-206 缩减数据库一般通过执行D0 CSHRINKDATABASE命令来完成,其语句格式知下: DECCSHRINKDATARASE (datahase_nane[,new_size[,'MASTERONERRIDE']] 其中: database_nane:把缩减的数据库名称 siz:缩减数据库后剩余多少容量,假如不指定,那么数据岸将缩减至最小的容量。 【3-3】将student数据库的空间至最小容量: USEstudent 00 DECCSHRINKDATARASE('student') 2用企业管理器米增缩数据库容量 如果需要增加数暴库容量,如图3一0所示的“数据岸属性”对话框中,通过选择“数 据文件”或“事务日志”标签,在属性页中对对应数据库文件的“分配的空何”进行重新指 定,如图311所示,单击确定按钮后即可扩充数据库容量,注意:重新指定的数据岸分配 空间您须大于现有空间,者则SQLServer会报错, 如果需要缩减数据库容量,可以在企业管理器的窗口里选择student数据库,按右键透 择“所有任务”菜单下的子菜单“收馏数据库”,如图3-12所示, 在弹出的“收缩数据库”对话框中,选择默认设置。单击“确定”按钮。数据库将收缩 至最小。如图3-13所示。如果单击“牧缩数据库”对话框中的“文件”按组,可以选择指 定第小后数据库文件的大小,如图3-14所示。当然此时指定的数据库文件收第后的尺寸大 小必须比现有数据库文件尺寸小,否则SQLServer会报错: 怎3,3查看目前数据库速项设定及修政 设定数据岸选项可以控制最据库是否为单用户使用慎式或b0er慎式,北数据岸是 否仅可读取数据等,可以设置此数据库是香自动关闭、自动收缩和数据库的兼容缓别等选项, 如果想查看目前数据库选项,如图3-15所示,在企业管理器的窗口里单击数据库 student的属性菜单,然后在弹出的student属性对话框中单击“选项”标签。在这里可以 查看和修改数据库选项设定
MODIFYFILE (NAME='c:\ProgramFiles\MicrosoftSQLServer\MSSQL\Data\student.mdf', SIZE=20MB ) 缩减数据库一般通过执行 DBCCSHRINKDATABASE 命令来完成,其语句格式如下: DBCCSHRINKDATABASE(database_name[,new_size[,'MASTEROVERRIDE']]) 其中: database_name:想缩减的数据库名称 new_size:缩减数据库后剩余多少容量,假如不指定,那么数据库将缩减至最小的容量。 【3-3】将 student 数据库的空间至最小容量: USEstudent GO DBCCSHRINKDATABASE('student') 2.用企业管理器来增缩数据库容量 如果需要增加数据库容量,如图 3-10 所示的“数据库属性”对话框中,通过选择“数 据文件”或“事务日志”标签,在属性页中对对应数据库文件的“分配的空间”进行重新指 定,如图 3-11 所示,单击确定按钮后即可扩充数据库容量,注意:重新指定的数据库分配 空间必须大于现有空间,否则 SQLServer 会报错。 如果需要缩减数据库容量,可以在企业管理器的窗口里选择 student 数据库,按右键选 择“所有任务”菜单下的子菜单“收缩数据库”,如图 3-12 所示。 在弹出的“收缩数据库”对话框中,选择默认设置,单击“确定”按钮,数据库将收缩 至最小。如图 3-13 所示。如果单击“收缩数据库”对话框中的“文件”按钮,可以选择指 定缩小后数据库文件的大小,如图 3-14 所示。当然此时指定的数据库文件收缩后的尺寸大 小必须比现有数据库文件尺寸小,否则 SQLServer 会报错。 3.3.3 查看目前数据库选项设定及修改 设定数据库选项可以控制数据库是否为单用户使用模式或 db_owner 模式,此数据库是 否仅可读取数据等,可以设置此数据库是否自动关闭、自动收缩和数据库的兼容级别等选项。 如果想查看目前数据库选项,如图 3-15 所示,在企业管理器的窗口里单击数据库 student 的属性菜单,然后在弹出的 student 属性对话框中单击“选项”标签,在这里可以 查看和修改数据库选项设定

也可以在查询分析器里使用T-S命令来查看和更改数据库选项。一般使用sD_t10ns 存储过程米查看数据库选项。其语句格式如下: EXECsp_dboption'master' 在查询分析器里使用替参数的存储过程sP_dboption可以修政数据库的遮项设定值。 【3-4】将数据库student设为只读状态的语句格式如下: EXECsp_dboption'student','readonly',True 执行结果如图3-16所示。 33.4数据库更名 通常情况下,在一个应用程序的开发过程中,有时往往需要改变数据库的名称,但是在 SgL5 erver中更改数据岸名称并不像在indows中那样简单,要改变名称的那个数据岸很可 能正被其他用户使用,所以要变更数据库名称的操作经须在单用户模式下方可进行,然后使 用系统存储过程s得_rena山来更改数据库的名移, 【3-5】将数据库student更名为pupil,.可按下列步骤进行慢作: (将student数据库设置为单用户模式 打开金业管理器窗口,单击服务器,展开“数据库”项,右健单击su细t数据库,选 择“属性”选项,打开“student属性”对话属,单击“选项”选项。,选中“存取”项目 中的“单用户”复选熙。单击“确定”按扭。 (2们执行sp_renanedb存锦过程进行更名操作 打开“S如查面分析墨”窗口,输入如下语句: EXECsp_renanedb'student','pupil' 然后,单击“执行查询”(绿色箭头)图标或按5健,执行该S语句。 (国重复第1步操作,取消选中“单用户”复选框。 这样,把数据库student更名为pupil的操作就完成了。 另外,还可以直接使用SL查询分析器进行操作,首先打开“S查询分析器”窗口, 输入下列语句: EXECsp_dboption'pupil','singleuser','ture' EXECsp_renanedb'pupil','student' EXECsp_dboption'student','singleuser','false' 然后,单击工具栏上的“执行查询”(绿色箭头)图标成按5键。执行该S观,语句。更 名操作就完成了
也可以在查询分析器里使用 T-SQL 命令来查看和更改数据库选项。一般使用 sp_options 存储过程来查看数据库选项,其语句格式如下: EXECsp_dboption'master' 在查询分析器里使用带参数的存储过程 sp_dboption 可以修改数据库的选项设定值。 【3-4】将数据库 student 设为只读状态的语句格式如下: EXECsp_dboption'student','readonly',True 执行结果如图 3-16 所示。 3.3.4 数据库更名 通常情况下,在一个应用程序的开发过程中,有时往往需要改变数据库的名称,但是在 SQLServer 中更改数据库名称并不像在 Windows 中那样简单,要改变名称的那个数据库很可 能正被其他用户使用,所以要变更数据库名称的操作必须在单用户模式下方可进行,然后使 用系统存储过程 sp_renamedb 来更改数据库的名称。 【3-5】将数据库 student 更名为 pupil,可按下列步骤进行操作: ⑴将 student 数据库设置为单用户模式 打开企业管理器窗口,单击服务器,展开“数据库”项,右键单击 student 数据库,选 择“属性”选项,打开“student 属性”对话框,单击“选项”选项卡,选中“存取”项目 中的“单用户”复选框。单击“确定”按钮。 ⑵执行 sp_renamedb 存储过程进行更名操作 打开“SQL 查询分析器”窗口,输入如下语句: EXECsp_renamedb'student','pupil' 然后,单击“执行查询”(绿色箭头)图标或按 F5 键,执行该 SQL 语句。 ⑶重复第 1 步操作,取消选中“单用户”复选框。 这样,把数据库 student 更名为 pupil 的操作就完成了。 另外,还可以直接使用 SQL 查询分析器进行操作,首先打开“SQL 查询分析器”窗口, 输入下列语句: EXECsp_dboption'pupil','singleuser','ture' EXECsp_renamedb'pupil','student' EXECsp_dboption'student','singleuser','false' 然后,单击工具栏上的“执行查询”(绿色箭头)图标或按 F5 键,执行该 SQL 语句,更 名操作就完成了

33.5刷除数据库 刷除数据库比较简单,但是应该注意的是,如果剩除某个正在使用的数据库时,则无法 对该数据库进行到障。可以使用DROPDATABASE语句格式来刷除某个数据库。 【3-6】刷除名为student的数据库, DOPDATARASEstudent 执行完毕后,SSvT将返回该数据库的数据文件和日志文件均按制除的信息。 另外,他可以在企业管理器中用鼠标右健选择所要刷除的数据焊名字,单击弹出子菜单 上的“刷除”菜单即可完成数据库的副除操作。如图317所示。 实习训练 1.实测目的 ()了解系统数据库的作用. (2学会使用企业管理器创建用户数据库, (构学会使用查询分析器创建用户数据库。 ()学会压增和扩充数据岸。 (学会查看和修改数据库达项。 的学会给数据库改名和副除数据库。 2实训的知识准备 在S5ervr2000中,既可以使用企业管理器米创建数据军,也可以在查询分析墨中编 写SL语句代码,来创建数据库。创建时首先要明确,能够创建数据库的用户必须是系统管 理员或是被授权使用CREATEDATARASE语句的用户:其次创建数据岸必须要确定数暴岸名称 的定文,包括数据文件和日志文件的逐辑名称,物理名称:数据库初始大小,增长方式,最 大尺寸, 3实训内容和步调 ()分别使用企业管理器和查询分析器创建一个数据库。数据库名称为student,主数据 文件的逻拥名称为student_data,操作系统文件的名称为D:ssgl\,data\student_ndf,大 小为20wB,最大为50B。以25群的速度增长,数据库的日志文件逻辑名称为student_1c: 操作系统文件的名称为d:ssgl'\data\student1df,大小为3帽。最大为10WB,以1B的 速度增长 ①用向导方式创建数据库 开始→程序→icrosoftSQLserver→企业管理墨→工具→向导→数据库→创建数那库
3.3.5 删除数据库 删除数据库比较简单,但是应该注意的是,如果删除某个正在使用的数据库时,则无法 对该数据库进行删除。可以使用 DROPDATABASE 语句格式来删除某个数据库。 【3-6】删除名为 student 的数据库。 DROPDATABASEstudent 执行完毕后,SQLServer 将返回该数据库的数据文件和日志文件均被删除的信息。 另外,也可以在企业管理器中用鼠标右键选择所要删除的数据库名字,单击弹出子菜单 上的“删除”菜单即可完成数据库的删除操作。如图 3-17 所示。 实习训练 1.实训目的 ⑴了解系统数据库的作用。 ⑵学会使用企业管理器创建用户数据库。 ⑶学会使用查询分析器创建用户数据库。 ⑷学会压缩和扩充数据库。 ⑸学会查看和修改数据库选项。 ⑹学会给数据库改名和删除数据库。 2.实训的知识准备 在 SQLServer2000 中,既可以使用企业管理器来创建数据库,也可以在查询分析器中编 写 SQL 语句代码,来创建数据库。创建时首先要明确,能够创建数据库的用户必须是系统管 理员或是被授权使用 CREATEDATABASE 语句的用户;其次创建数据库必须要确定数据库名称 的定义,包括数据文件和日志文件的逻辑名称、物理名称;数据库初始大小、增长方式、最 大尺寸。 3.实训内容和步骤 ⑴分别使用企业管理器和查询分析器创建一个数据库。数据库名称为 student,主数据 文件的逻辑名称为 student_data,操作系统文件的名称为 D:\mssql\data\student_mdf,大 小为 20MB,最大为 50MB,以 25%的速度增长。数据库的日志文件逻辑名称为 student_log, 操作系统文件的名称为 d:\mssql\data\student_ldf,大小为 3MB,最大为 10MB,以 1MB 的 速度增长。 ①用向导方式创建数据库 开始→程序→microsoftSQLserver→企业管理器→工具→向导→数据库→创建数据库