53
第3第 第第第第第第第第第第第

第 3 章 用户数据库的创建与操作

  • Upload
    sven

  • View
    165

  • Download
    0

Embed Size (px)

DESCRIPTION

第 3 章 用户数据库的创建与操作. 3.1 SQL Server 数据库的存储结构. 3.2 创建 SQL Server 数据库. 3.3 查看、设置、修改数据库选项. 3.4 数据库与 SQL Server 系统的分离与删除. - PowerPoint PPT Presentation

Citation preview

第 3 章

用户数据库的创建与操作

3.3 查看、设置、修改数据库选项

3.4 数据库与 SQL Server 系统的分离与删除

3.1 SQL Server 数据库的存储结构

3.2 创建 SQL Server 数据库

学习目的与要求

对数据信息的存储、管理、加工等各种操作都是在数据库中进行的,因此数据库的创建是学习和使用数据库的基础。而数据库的创建、查看、设置、修改等各种操作又是创建数据库的基本方法。通过本章学习,读者应熟悉数据库及其文件的存储结构和存储方式,掌握数据库的创建方法,独立创建《 电 脑 器 材 销 售 管 理 》 应 用 系 统 的diannaoxs 数据库。

3.1 SQL Server 数据库的存储结构

在 SQL Server 中,数据库是作为一个整体集中管理的,因此每个数据库必须有一个惟一的“数据库名”以对其进行标识。数据库命名必须符合 SQL Server 标识符的构成规则:  由字母、汉字、数字、下划线组成;  不能以数字开头,不能是关键字;  最长不超过 128 个字符。 在企业管理器中展开控制台根目录“服务器 / 数据库 ” , 选 择 “ 数 据 库 ” 节 点 , 可 以 看 到SQLServer2000 系统中已有的数据库。如图 3-1所示。 其中: master 、 tempdb 、 mode 、 msdb是 4 个系统数据库, pubs 和 northwind 是 SQL Server 系统的 2 个示例数据库; DATA 是用户自己创建的数据库。

在 SQL Server 中,数据库是作为一个整体集中管理的,因此每个数据库必须有一个惟一的“数据库名”以对其进行标识。数据库命名必须符合 SQL Server 标识符的构成规则:  由字母、汉字、数字、下划线组成;  不能以数字开头,不能是关键字;  最长不超过 128 个字符。 在企业管理器中展开控制台根目录“服务器 / 数据库 ” , 选 择 “ 数 据 库 ” 节 点 , 可 以 看 到SQLServer2000 系统中已有的数据库。如图 3-1所示。 其中: master 、 tempdb 、 mode 、 msdb是 4 个系统数据库, pubs 和 northwind 是 SQL Server 系统的 2 个示例数据库; DATA 是用户自己创建的数据库。

3.1.1 、 SQL Server 数据库

主数据文件( Primary file ):存放数据和启动信息。每个数据库都必须有且只能有一个主数据文件,其扩展名为 .MDF 。

1. 数据库文件

辅助数据文件( Secondary file ):存放数据。一个数据库可以没有也可以有多个辅助数据文件,其扩展名为 .NDF 。

事务日志文件( Transaction Log ):存放对数据库的操作、修改信息。每个数据库必须有一个也可以有多个日志文件,其扩展名为 .LDF 。

3.1.2 、数据库文件的分类

默认状态下,主数据文件、辅助数据文 件、事务日志文件均存 放在 C:\Program Files\Microsoft SQL Server\MSSQL\Data\的 系统目录下,用户 可以自己指定其 他路径而不会 影响对数 据库的操 作。

一个数据库主数据文件只能有一个。

2. 文件组

一个文件、文件组、事务日志文件只能被一个数据库使用。

一个数据文件只能属于一个文件组。

SQL Server 数据 库还允许将多个数据库文件组成一个文件组进行整体管理。比如可以设置三个数据文件data1.mdf 、 data2.ndf 、 data3.ndf 并分别创建在三个磁盘上,也可以创建两个文件组group1 、 group2 ,将data1.mdf 、 data2.ndf 加入group1 ,而将 data3.ndf 加入group2 。 如果使用了文件组,则创建数据表时必须指定该表存放在哪个组中。例如指定了某个数据表属于 group1 组,则向该表中添加数据时,系统 会按比例将该表的数据分别 存入 data1.mdf 、 data2.ndf 文 件。

SQL Server的数据 库文件和 文件组必须遵 循以下规则:

事务日志文件不属于文件组。

AA表( Table )

BB 视图( View )

CC触发器( Triggers ) DD存储过程( Stored procedures )

SQL Server 2000 的数据库中的数据及信息在逻辑上组成一系列对象,用户打开某个数据库时,所看到的是逻辑对象,而不是存放在磁盘上

的物理数据文件。

AA默认值( Defaults )

BB规则( Constraints )

CC用户自定义数据类型( User-defined data types )

DD用户自定义函数( User-defined functions )

CC索引( Indexes )

全文目录 CC

约束 CC

3.2 创建 SQL Server 数据库

企业管理器CREATE

DATABASE 语句 向导

3.2.1 、用企业管理器创建数据库

【例 3-1】用企业管理器创建一个名为 DATA的数据库:该数据库包含一个主数据文件 DATA1.mdf(存放在 C 盘DATA文件夹)、一个辅助数据文件 DATA2.ndf(存放在 D 盘 DATA文件夹)和一个事务日志文件 DATALOG.ldf(存放在 D 盘 DATA文件夹),文件中数据的增长量按文件大小的 10%自动增长不受限制。

【例 3-1】用企业管理器创建一个名为 DATA的数据库:该数据库包含一个主数据文件 DATA1.mdf(存放在 C 盘DATA文件夹)、一个辅助数据文件 DATA2.ndf(存放在 D 盘 DATA文件夹)和一个事务日志文件 DATALOG.ldf(存放在 D 盘 DATA文件夹),文件中数据的增长量按文件大小的 10%自动增长不受限制。

用企业管理器创建 DATA 数据库的步骤

1. 确认 C 盘和 D 盘的 DATA 文件夹已经存在,如不存在则先创建文件夹。

2. 选择“开始→程序→ Microsoft SQL Server→ 企业管理器”进入 SQL Server企业管理器。

3. 在控制台根目录中依次展开“ Microsoft SQL Server” →“SQL Server 组”选中并展开要使用 的服务器,比如 USER-1D3F7DB41B ( Windows NT )或 local ( Windows NT ),鼠标右键单击“数据库”节点→选择“新建数据库”(或从“操作”菜单中选择“新建数据库”)。如图 3-3 所示。

4. 弹出的“数据库属性”对话框 中有“常规”“数据文件”“事 务日志”三个选项卡

图 3-3

4.(1)“ 常规”选项卡设置数据库名称:可在“名称”栏中输入数据库名称 DATA 。

如图 3-4 所示

如图 3-5 所示

4.(2)“ 数据文件”选项卡设置数据文件:可设置主数据文件DATA1.mdf 和辅助数据文件DATA2.ndf 。

  文件名:也叫逻辑文件名,主数据文件名在第一行,系统默认文件名为:数据库 名 _Data ( 本 例 为 DATA_Data ) , 可 修 改 为 : “ DATA1” , 默 认 后缀 .mdf 不需要书写。   位置:包括文件存放的路径和文件名,也叫物理文件名,系统默认为 C:\Program Files\Microsoft SQL Server\MSSQL \data\DATA_Data.MDF ,可修改为:“ C:\DATA\DATA1.MDF” 。  初始大小:即该文件创建时所占磁盘的初始容量(单位 MB ),默认为最小值1MB 。  文件组:主数据文件属于默认的 Primary 文件组不可更改(可修改系统设置),辅助数据文件可以使用默认 Primary 文件组,也可自行设置文件组。  文件属性可选择“文件自动增长”:设置文件数据增加时所占磁盘容量是按固定兆字节数还是按文件容量的百分比增长,可设置文件最大容量数或不受限制。 增加辅助数据文件 DATA2 ,位置为 D:\DATA\DATA2.NDF ,初始大小 1MB ,与主数据文件同属于默认 Primary 文件组。

对每个数据文件需设置以下内容

( 3 )“事务日志”选项卡设置事务日志文件:逻辑文件名 DATALOG ,默认后缀 .LDF 、指定位置 D:\DATA\DATALOG.LDF 、初始大小1MB 、增长方式取默认值。

如图 3-6 所示

5 、数据库属性设置完成后,单击“确定”按钮,DATA 数据库创建完毕。5 、数据库属性设置完成后,单击“确定”按钮,DATA 数据库创建完毕。

注意: 创建的数据库时,系统会自 动创建大约 20 个附加的系统表。其中有: Sysobjects 表:数据库内创建的每个对象作为表中的 一行记录。 Syscolumns 表:基表或视图的每个 列、存储过程的每个参数作为一行 记录。

“[ ]” 中的内容表示可以省略,省略时系统取默认值。

SQL Server 的编程语言是 Transact-SQL ,简称 T-SQL 。 T-SQL 的语句书写时不区分大小写,一般系统保留字大写,用户

自定义的名称可用小写。

“{ }[ , … n ]” 表示花括号中的内容可以重复书写 n 次,必须用逗号隔开。

“|” 表示相邻前后两项只能任取一项。

一条语句可以分成多行书写,但多条语句不允许写在一行。

3.2.2 、用 CREATE DATABASE 语句创建数据库

T-SQL 语法说明

T-SQL 创建数据库语句 CREATE DATABASE 的语法格式

CREATE DATABASE 数据库名 [ ON [PRIMARY] { ( [NAME= 数据文件的逻辑名称 ,] FILENAME=‘ 数据文件的物理名称 ’ , [SIZE= 数据文件的初始大小 [ MB( 默认 ) | KB ] , ] [MAXSIZE={ 数据文件的最大容量 [ MB | KB ] | UNLIMITED( 不受限制 ) } ,] [FILEGROWTH= 数据文件的增长量 [ MB | KB | % ] ] ) } [ , …n ] [ FILEGROUP 文件组名 { ( [NAME= 数据文件的逻辑名称 ,] FILENAME=‘ 数据文件的物理名称 ’ , [SIZE= 数据文件的初始大小 [ MB | KB ] ,] [MAXSIZE={ 数据文件的最大容量 [ MB | KB ] | UNLIMITED } ,] [FILEGROWTH= 数据文件的增长量 [ MB | KB | % ] ] ) } [ , …n ] ]

CREATE DATABASE 数据库名 [ ON [PRIMARY] { ( [NAME= 数据文件的逻辑名称 ,] FILENAME=‘ 数据文件的物理名称 ’ , [SIZE= 数据文件的初始大小 [ MB( 默认 ) | KB ] , ] [MAXSIZE={ 数据文件的最大容量 [ MB | KB ] | UNLIMITED( 不受限制 ) } ,] [FILEGROWTH= 数据文件的增长量 [ MB | KB | % ] ] ) } [ , …n ] [ FILEGROUP 文件组名 { ( [NAME= 数据文件的逻辑名称 ,] FILENAME=‘ 数据文件的物理名称 ’ , [SIZE= 数据文件的初始大小 [ MB | KB ] ,] [MAXSIZE={ 数据文件的最大容量 [ MB | KB ] | UNLIMITED } ,] [FILEGROWTH= 数据文件的增长量 [ MB | KB | % ] ] ) } [ , …n ] ]

T-SQL 创建数据库语句 CREATE DATABASE 的语法格式

LOG ON { ( [NAME= 事务日志文件的逻辑名称 ,] FILENAME=‘ 事务日志文件的物理名称 ’ , [SIZE= 事务日志文件的初始大小 [MB | KB ] ,] [MAXSIZE={ 事务日志文件的最大容量 [ MB | KB ] | UNLIMITED } ,] [FILEGROWTH= 事务日志文件的增长量 [ MB | KB | % ]] ) } [ , …n ] ]说明:  ON 表示需根据后面的参数创建该数据库。  LOG ON 子句用于根据后面的参数创建该数据库的事务日志文件。 PRIMARY 指定后面定义的数据文件属于主文件组 PRIMARY ,也可以加入用户自己创建的文件组。  NAME=‘ 数据文件的逻辑名称’:是该文件在系统中使用的标识名称,相当于别名。  FILENAME=‘ 数据文件的物理名称’:指定文件的实际名称,包括路径和后缀。  UNLIMITED 表示在磁盘容量允许情况下不受限制。  文件容量默认单位为 MB 字节,也可以使用 KB 单位。

LOG ON { ( [NAME= 事务日志文件的逻辑名称 ,] FILENAME=‘ 事务日志文件的物理名称 ’ , [SIZE= 事务日志文件的初始大小 [MB | KB ] ,] [MAXSIZE={ 事务日志文件的最大容量 [ MB | KB ] | UNLIMITED } ,] [FILEGROWTH= 事务日志文件的增长量 [ MB | KB | % ]] ) } [ , …n ] ]说明:  ON 表示需根据后面的参数创建该数据库。  LOG ON 子句用于根据后面的参数创建该数据库的事务日志文件。 PRIMARY 指定后面定义的数据文件属于主文件组 PRIMARY ,也可以加入用户自己创建的文件组。  NAME=‘ 数据文件的逻辑名称’:是该文件在系统中使用的标识名称,相当于别名。  FILENAME=‘ 数据文件的物理名称’:指定文件的实际名称,包括路径和后缀。  UNLIMITED 表示在磁盘容量允许情况下不受限制。  文件容量默认单位为 MB 字节,也可以使用 KB 单位。

( 1 )选择“开始→程序→ Microsoft SQL Server→查询分析器”进入查询分析器,随即弹出“连接到SQL Server” 对话框。如图所示。

( 3 )单击“确定”,进入“ SQL Server 查询分析器”,输入代码:CREATE DATABASE students

( 2 )在“连接到SQL Server” 对话框中输入(或选择)数据库的服务器名称,输入“ .”可表示本地服务器;在“连接使用”中选择一种身份验证方式。一般选择“ Windows身份验证”,如果选择“ SQL Server身份验证”,则必须输入相应的账户和密码。

【例 3-2】用 T-SQL语句默认设置创建一个学生信息数据库 studentsT-SQL 语 句 : CREATE DATABASE students

( 4 )单击工具栏“运行”按钮或按F5 键运行 SQL语句,即可完成指定数据库的创建,运行结果如图所示。

一个事务日志文件逻辑名‘ teacherlog’ 物理名 ‘ D:\DATA\teacherlog.ldf ’ ,初始容量500KB ,最大容量不受限制,每次增长量为 500KB 。

两个数据文件不单独创建文件组,即使用默认的 PRIMARY 组;

一个辅助数据文件逻辑名‘ teacherdata2 ’物理名‘ D:\DATA\tdata2.ndf ’,初始容量2MB ,最大容量 15MB ,每次增长量为 2MB 。

一个主数据文件逻辑名‘ teacherdata1 ’ ,物理名‘ C:\DATA\tdata1.mdf ’,初始容量1MB ,最大容量 10MB ,每次增长量为 15% 。

【例 3-3】用 T-SQL语句在 C:\DATA\与 D:\DATA\文件夹中创建一个教师信息数据库teacher,该数据库包含:

先确认 C:\DATA\ 与 D:\DATA\ 文件夹已创建,在查询分析器中输入代码: CREATE DATABASE teacher ON ( NAME = teacherdata1 , FILENAME = 'C:\DATA\tdata1.mdf' , SIZE = 1 MB , -- 默认字节单位 MB 可以省略 MAXSIZE= 10 , -- 文件最大容量 10 MB FILEGROWTH = 15% -- 增长量为文件容量 15% ) , ( NAME = teacherdata2 , FILENAME = 'D:\DATA\tdata2.mdf' , SIZE = 2 , MAXSIZE= 15 , FILEGROWTH = 2 -- 增长量为 2 MB ) LOG ON /* 创建事务日志文件 */ ( NAME = teacherlog , FILENAME = 'D:\DATA\teacherlog.LDF', SIZE = 500 KB , /* 初始容量, KB 单位不能省略 */ MAXSIZE = UNLIMITED , /* 日志文件最大容量不受限制 */ FILEGROWTH = 500 KB /* 增长量 KB 不能省略 */ )

先确认 C:\DATA\ 与 D:\DATA\ 文件夹已创建,在查询分析器中输入代码: CREATE DATABASE teacher ON ( NAME = teacherdata1 , FILENAME = 'C:\DATA\tdata1.mdf' , SIZE = 1 MB , -- 默认字节单位 MB 可以省略 MAXSIZE= 10 , -- 文件最大容量 10 MB FILEGROWTH = 15% -- 增长量为文件容量 15% ) , ( NAME = teacherdata2 , FILENAME = 'D:\DATA\tdata2.mdf' , SIZE = 2 , MAXSIZE= 15 , FILEGROWTH = 2 -- 增长量为 2 MB ) LOG ON /* 创建事务日志文件 */ ( NAME = teacherlog , FILENAME = 'D:\DATA\teacherlog.LDF', SIZE = 500 KB , /* 初始容量, KB 单位不能省略 */ MAXSIZE = UNLIMITED , /* 日志文件最大容量不受限制 */ FILEGROWTH = 500 KB /* 增长量 KB 不能省略 */ )

1

在企业管理器中选择“工具”菜单,在出现的子菜单中选择“向导”命令,出现如图 3-10 所示的“选择向导”对话框。

2

在“选择向导”对话框中选择“创建数据库向导”,然后单击“确定”按钮,弹出“创建数据库向导”对话框,然后按照向导的提示即可完成数据库的创建。

3.2.3 、用向导创建数据库

3.3 查看、设置、修改数据库选项

3.3.1 、用企业管理器查看数据库信息、设置和修改选项

数据库信息:如数据库拥有者、创建时间、大小、用户个数等。

维护信息:关于备份和维护的信息。

已分配空间信息:所有数据文件和日志文件的空间使用情况。

1 、查看数据库基本信息

teacher 数据库的信息

2 、查看数据库属性、设置和修改数据库属性及选项

【例 3-4】查看 teacher数据库的属性、设置和修改teacher数据库属性及选项: 双击 teacher数据库图标、或用鼠标右键单击该数据库名或图标,在弹出的快捷菜单中选择“属性”命令,即可打开该数据库的“属性窗口”查看数据库属性信息,并可在该窗口中设置和修改数据库的属性和选项设置。 数据库属性窗口有“常规”“数据文件”“事务日志”“文件组”“选项”“权限”等 6 个选项卡。

( 1 )“常规”选项卡:可以查看数据库、备份、维护等基本信息。

( 2 )“数据文件”“事务日志”选项卡:可对数据文件和日志文件的初始容量、最大容量、增长量进行设置修改,也可以增加创建或删除数据文件和日志文件,如图。

注意:

修改数据文件或日志文件的“分配空间”时,改变值必须大于原设置值。

如果要删除未使用的空间以缩小文件大小,可在数据库右键菜单的“所有任务”中单击“收缩数据库”,在“收缩数据库对话框”中改变其容量。

( 3 )“文件组”选项卡:可增删文件组,对文件组名称、分组数、只读属性及默认值进行设置和修改。如图。

( 4 )“选项”选项卡:可对数据库的访问权限及多项属性进行设置和修改,如图。

其中常用选项意义为: 限制访问:可选择仅允许 db_owner、 dbcreator或

sysadmin成员访问数据库;也可选择“单用户”只允许一个用户访问,前一个用户退出后下一个用户才能登录。

只读:数据库中的数据只能读取不能修改。 自动关闭:当最后一个用户退出后,系统自动关闭该数据库,释

放占用的资源,当又有新的用户要求连接时,数据库自动打开。 自动收缩:数据删除后若文件中未用空间超过文件 25%时,将自

动缩小文件,但不会小于设定的初始容量。若设置只读时,这个选项无效。

其他选项: ANSI NULL默认设置:允许在数据库表的列中输入空( NULL)

值。 递归触发器:允许触发器递归调用。最多为 32层。 自 动 更 新 统 计 信 息 : 允 许 使 用 SELECT INTO 或

BCP、 WRITETEXT、 UPDATETEXT命令向表中大量插入数据。 残缺页检测:允许自动检测有损坏的页。 自动创建统计信息:在优化查询时,根据需要自动创建统计信息。 使用被引用的标识符:标识符必须用双引号括起来,且可以不遵

循 Transact-SQL命名标准。

其中常用选项意义为: 限制访问:可选择仅允许 db_owner、 dbcreator或

sysadmin成员访问数据库;也可选择“单用户”只允许一个用户访问,前一个用户退出后下一个用户才能登录。

只读:数据库中的数据只能读取不能修改。 自动关闭:当最后一个用户退出后,系统自动关闭该数据库,释

放占用的资源,当又有新的用户要求连接时,数据库自动打开。 自动收缩:数据删除后若文件中未用空间超过文件 25%时,将自

动缩小文件,但不会小于设定的初始容量。若设置只读时,这个选项无效。

其他选项: ANSI NULL默认设置:允许在数据库表的列中输入空( NULL)

值。 递归触发器:允许触发器递归调用。最多为 32层。 自 动 更 新 统 计 信 息 : 允 许 使 用 SELECT INTO 或

BCP、 WRITETEXT、 UPDATETEXT命令向表中大量插入数据。 残缺页检测:允许自动检测有损坏的页。 自动创建统计信息:在优化查询时,根据需要自动创建统计信息。 使用被引用的标识符:标识符必须用双引号括起来,且可以不遵

循 Transact-SQL命名标准。

( 5 )“权限”选项卡:可对数据库访问权限进行设置和修改。如图。

3.3.2 、用 T-SQL 语句查看数据库信息

EXECUTE 可以缩写为 EXEC ,如果它是一个批处理中的第一个语句则可全部省略。

1 .使用系统存储过程sp_helpdb查看数据库信息

省略数据库名则查看所有数据库信息。

【例 3-5】在查询分析器中用 sp_helpdb 语句查看所有数据库信息 在查询分析器输入代码: EXEC sp_helpdb 单击“运行”按钮,运行结果如图 3-18 所示。

【 例 3-6 】 查 看students 数据库信息: EXEC sp_helpdb students 单击“运行”按钮,运行结果如图 3-19所示。

2 .使用系统存储过程sp_databases查看所

有可用数据库信息

3 .使用系统存储过程sp_helpfile 查看当前数

据库中某个文件的信息[ EXECUTE ] sp_databases

[ EXECUTE ] sp_helpfile [文件名 ] 省略文件名则显示当前数据库中所有文件的信息。

【例 3-7】查看 teacher 数据库中所有文件信息 USE teacher GO sp_helpfile 运行结果如图 3-20 所示。

4 .用系统存储过程 sp_helpfilegroup查看当前数据库中某个文件组的信息

[ EXECUTE ] sp_helpfilegroup [ 文件组名 ]

省略文件组名则显示当前数据库中所有文件组的信息,用法同 sp_helpfile 。

3.3.3 、用 T-SQL 语句设置和修改数据库选项

1 、使用系统存储过程 sp_dboption 查看、设置或修改数据库选项 [EXECUTE] sp_dboption [数据库名 [ ,选项名,选项值 ]]

省略选项参数则查看指定数据库所有设置 为 true 的选项。省略所有参数将显示所 有数据库中所有设置为 True 的选项。

一般各项可以不加引号,若名字不 符合命名规则要加单引号。

Single 单用户 read only 只读 autoclose 自动关闭 autoshrink 自动收缩

省略

一般 取 true 为设置该选项, 取 false 为取消该选项设置。

选项值

选项名可使用以上选项:

【例 3-8】将 students 数据库设置为单用户 sp_dboption 'students', 'single', 'true' 若命令运行成功则显示“命令已成功完成”。 再用 sp_dboption 语句查看students 数据库中所有设置为 true的选项: sp_dboption 'students' 运行结果如图 3-21 所示。

【例 3-9】查看所有数据库中所有设置为 true 的选项 sp_dboption

运行结果如图 3-22 所示。

2 、用 ALTER DATABASE语句设置、修改数据库

T-SQL 设置修改数据库语句ALTER DATABASE 的语法格式: ALTER DATABASE 数据库名 add file < 文件格式 > [to filegroup 文件组 ]| add log file < 文件格式 > | remove file 逻辑文件名| add filegroup 文件组名 | remove filegroup 文件组名| modify file < 文件格式 > | modify filegroup 文件组名,文件组属性

说明: add file 为增加一个辅助数据文件 [并加入指定文件组 ];  < 文件格式 > 为: ( name = 数据文件的逻辑名称 [ , filename =‘ 数据文件的物理名称’ ] [ , size = 数据文件的初始大小 [ MB | KB ] ] [ , maxsize = { 数据文件的最大容量 | UNLIMITED } ] [ , filegrowth = 数据文件的增长量 [ MB | KB | % ] ] )

【例 3-10】用 ALTER语句向【例 3-2】默认创建的 students数据库中添加名为 studentsfilegroup的文件组;在 D 盘 DATA文件夹中添加数据文件studentadd.ndf并将其加入此文件组中。 原有 主 数 据 文 件 : C:\Program Files\Microsoft SQL Server\MSSQL \Data\students.mdf ;初始 1MB;按 10%自动增长;默认 PRIMARY组; 原事 务 日 志 文 件 : C:\Program Files\Microsoft SQL Server\MSSQL \Data\students_log.LDF;初始 1MB;按 10%自动增长不受限制。 在查询分析器中写入代码: ALTER DATABSE students --添加文件组 add filegroup studentsfilegroup go ALTER DATABSE students --添加数据 文件加入新文件组 add file(name=studentadd, Filename='D:\DATA\studentadd.ndf') to filegroup studentsfilegroup go EXECUTE sp_helpdb students --查 看数据库信息

运行结果如图 3-23所示。

【例 3-11】将 students数据库原有主数据文件: C:\Program Files\Microsoft SQL Server\MSSQL\Data\ students.mdf的初始大小改为 2 MB;按 2 MB自动增长到最大容量 20 MB。在查询分析器中写入以下代码: ALTER DATABASE students --修改数据文件 MODIFY FILE(NAME='students',SIZE=2,MAXSIZE=20,FILEGROWTH=2) GO EXECUTE sp_helpdb students --查看数据库信息 运行结果如图 3-24所示。

【实例练习 3-1 】

创建《电脑器材销售管理》数据库 diannaoxs 。为了即能掌握知识面又便于简化上机练习,该数据库结构做如下设置: 一 个 主 数 据 文 件 : 逻 辑 名 diannaoxs1 , 物 理 名 ‘ D:\DNXS\ diannaoxs1 .mdf’, 初始容量 1 MB ,容量不受限制,每次增长量10% 。 一 个 辅 助 数 据 文 件 : 逻 辑 名 diannaoxs2 物 理 名 ‘ D:\DNXS\ diannaoxs2.ndf’,初始容量 1 MB ,容量不受限制,每次增长量 10% 。  两个数据文件不单独创建文件组(使用默认 PRIMARY 组); 一个事务日志文件:逻辑名 diannaoxslog ,物理名‘ D:\DNXS\ diannaoxslog.ldf’ ,初始容量 500KB ,最大容量 5MB ,每次增长量为 500KB 。  设置选项: autoclose 自动关闭、 autoshrink 自动收缩。 首先确认 D:\DNXS\ 文件夹已经创建,将三个文件均存放在该文件夹内。( 1 ) 可 以 使 用 企 业 管 理 器 创 建《电脑器材销售管 理》数 据 库diannaoxs( 2 ) 也 可 以 使 用 SQL 语 句 创 建《电脑器材销售管 理》数 据 库diannaoxs

在查询分析器中输入创建 diannaoxs数据库代码如下: CREATE DATABASE diannaoxs --创建数据库 ON ( NAME = diannaoxs1 , --创建主数据文件,逻辑名可以省略 FILENAME = 'D:\DNXS\diannaoxs1.mdf' , SIZE = 1 , MAXSIZE= UNLIMITED , --最大容量不受限制 FILEGROWTH = 10% ) , ( NAME = diannaoxs2 , --创建辅助数据文件,逻辑名可以省略 FILENAME = 'D:\DNXS\diannaoxs2.mdf', SIZE = 1 , MAXSIZE= UNLIMITED , FILEGROWTH = 10% ) LOG ON /* 创建事务日志文件 */ ( NAME = diannaoxslog , /* 该逻辑名参数可以省略 */ FILENAME = 'D:\DNXS\diannaoxslog.LDF', SIZE = 500 KB , MAXSIZE = 5 , /* 日志文件最大容量 5 MB */ FILEGROWTH = 500 KB )GO sp_dboption diannaoxs , autoclose , true -- 设置数据库自动关闭 EXEC sp_dboption diannaoxs , autoshrink, true -- 自动收缩 GO EXECUTE sp_helpdb diannaoxs --查看数据库信息

运行结果如图 3-25所示

3.4 数据库与 SQL Server 系统的分离与删除

3.4.1 、数据库与 SQL Server 系统的分离

如果想要把数据库从一个 SQL Server系统中移动到另一个 SQL Server系统,或者把数据文件从一个磁盘移到另一个磁盘上时,可以先将数据库与 SQL Server系统分离,然后复制到其他磁盘上,再将数据库重新附加到原来系统中或附加到另一个系统中。 分离数据库实际上只是从 SQL Server系统中删除数据库,组成该数据库的数据文件和事务日志文件依然完好无损的保存在磁盘上。可以再附加到任何 SQL Server系统中,而且数据库在新系统中的使用状态与它分离时的状态完全相同。

( 1 )选中要分离的数据库,选择“操作”菜单中的“所有任务”,或者直接右击要分离的数据库,在弹出的快捷菜单中选择“所有任务”,然后再选择其子菜单中的“分离数据库”命令,将出现如图3-26所示的“分离数据库”对话框。

(2) 在“分离数据库”对话框中,检查数据库的状态,包括与当前数据库的连接数和是否正在执行复制数据库操作。 注意:如果有用户正在连接数据库或者正在执行复制数据库操作时不能分离数据库,此时若要执行分离操作,必须先单击“清除”按钮清除连接。在此对话框中还可以选择是否“在分离前更新数据库统计信息”。

(3)单击“确定”按钮完成数据库的分离。已分离的数据库将不再出现在SQL Server系统中。

1 、使用企业管理器分离数据库

2 、使用 sp_detach_db语句分离数据库

从服务器分离数据库语句 sp_detach_db 的语法格式: sp_detach_db 数据库名称 [ , true|false ]“数据库名称”指定要分离的数据库,第二个参数指定是否在分离数据库前更新数据库统计信息,取 false 为指定更新数据库统计信息,取 true 或省略则不更新数据库统计信息。下面的语句用来从系统分离 DATA 数据库,不更新数据库统计信息。 EXEC sp_detach_db 'DATA', 'true'

从服务器分离数据库语句 sp_detach_db 的语法格式: sp_detach_db 数据库名称 [ , true|false ]“数据库名称”指定要分离的数据库,第二个参数指定是否在分离数据库前更新数据库统计信息,取 false 为指定更新数据库统计信息,取 true 或省略则不更新数据库统计信息。下面的语句用来从系统分离 DATA 数据库,不更新数据库统计信息。 EXEC sp_detach_db 'DATA', 'true'

3.4.2 、将数据库文件附加到 SQL Server 系统

1 、在企业管理器中选中数据库节点,选择“操作”菜单中的“所有任务”,或者直接右击数据库节点,在弹出的快捷菜单中选择“所有任务”,然后再选择其子菜单中的“附加数据库”命令,弹出图3-27所示的“附加数据库”对话框。

2

在“附加数据库”对话框中,在“要附加数据库的MDF文件”文本框中直接输入要附加到 SQL Server系统的数据库主数据文件的路径与文件名,或者单击该文本框后的“…”按钮,在弹出的“浏览现有的文件”对话框中展开路径查找并选择数据库主数据库文件。 .

如果要附加数据库的事务日志文件或辅助数据文件与主数据文件不在一个磁盘或一个文件夹内,则该文件的“当前文件位置”前面出现错误符号,可以修改为正确路径 ( 或者把它们与主数据文件存放在一个文件夹中 ) ,在出现正确符号后,单击“确定”就可以把指定数据库附加到当前的 SQL Server系统中。

3

3.4.3 、使用企业管理器删除数据库

删除数据库会删除该数据库中的所有对象、数据和组成数据库的所有磁盘文件,释放该数据库占用的系统资源和磁盘空间。 数据库删除后,如果想再复原是很麻烦的,必须从备份中恢复数据库和它的事务日志(见第 10章 备份恢复与数据转换),所以删除数据库之前应格外小心,必要时作好备份。

注意:正在使用中的数据库不能删除。使用企业管理器删除数据库的方法是: 展开企业管理器控制台根目录的数据库节点,用鼠标右键单击要删除的数据库,在弹出的快捷菜单中选择“删除”命令,在“删除数据库”确认对话框中单击“是”按钮即可,系统默认为数据库删除备份并还原历史记录。

3.4.4 、使用 DROP DATABASE 语句删除数据库

语法格式: DROP DATABASE 数据库名 [ ,…… n ]使用 SQL命令一次可删除多个数据库,但删除时不出现提示,删除后不能恢复。正在被其他用户使用的数据库不能被删除,可先断开其连接再删除。

(【例 3-12】用 DROP DATABASE语句删除students 数据库在查询分析器中输入代码: DROP DATABASE students 注意:系统数据库中的 master 、 model和 tempdb 不能被删除, msdb虽然可以被删除,但删除 msdb 后很多服务(比如 SQL Server 代理服务)将无法使用,因为这些服务在运行时会用到 msdb。