实验1 数据库的创建与管理
目的和要求
1.巩固数据库的基础知识;
2.掌握创建数据库的两种方法;
3.掌握查看、修改数据库属性的方法;
4.掌握缩小、更名与删除数据库的方法。
内容和步骤
一、建数据库
在SQL Server2000 下创建数据库有两种方法:
1.使用企业管理器直接创建数据库
1) 打开企业管理器。
2) 左键双击“数据库”后,右键单击空白区并选择【新建数据库】。
3) 会弹出窗体如图1-1所示,在常规标签中输入数据库名称。
图1-1 新建数据库
4) 然后单击【数据文件】标签,可以输入文件名、文件位置、文件大小以及文件组。在这个对话框中还提供了在数据文件需要更多空间时自动扩展的选项以及数据文件大小的最大值。
5) 单击【事务日志】标签,在此键入日志文件的名字、位置、大小。在这个标签中还提供了让日志文件在日志需要更多空间时自动扩展选项和日志文件大小的最大值。
2.使用Transact-SQL语句创建数据库
使用Transact-SQL语句创建数据库的语法如下:
CREATE DATABASE database_name
[ ON
[PRIMARY]
( [NAME = logical_file_name,]
FILENAME = ‘os_file_name’
[,SIZE = size]
[,MAXSIZE = {max_size|UNLIMITED}]
[,FILEGROWTH = growth_increment])[,…n]
FILEGROUP filegroup_name
LOG ON
(NAME = logical_file_name,
FILENAME = ‘os_file_name’
SIZE = size,
MAXSIZE = {max_size | UNLIMITED},
FILEGROWTH = growth_increment)]
例1 创建一个student数据库,其中主文件组包含主要数据文件student1_dat和次要数据文件student2_dat。有2个次要文件组:studentGroup1包含2个次要数据文件student1Fi1_dat 和 studentFi2_dat, studentGroup2包含student2Fi1_dat和student2Fi2_dat两个次要数据文件。日志的逻辑文件名为student_log,此日志文件存储在c:/mssql/data/studentlog.ldf中。
CREATE DATABASE student
ON PRIMARY
(NAME = student1_dat,
FILENAME = ‘c:/student1_dat.mdf’,
SIZE = 10, MAXSIZE = 50, FILEGROWTH = 15%),
(NAME = student2_dat,
FILENAME = ‘c:/student2_dat.ndf’,
SIZE = 10, MAXSIZE = 50, FILEGROWTH = 15%),
FILEFROUP studentGroup1
( NAME = student1Fi1_dat,
FILENAME = ‘c:/student1Fildt.ndf’,
SIZE = 10, MAXSIZE = 50, FILEGROWTH = 5) ,
( NAME = student1Fi2_dat,
FILENAME = ‘c:/student2Fildt.ndf’,
SIZE = 10, MAXSIZE = 50, FILEGROWTH = 5),
FILEGROUP studentGroup2
(NAME = student2Fil_dat,
FILENAME = ‘c:/SG2Fi1dt.ndf’,
SIZE = 10, MAXSIZE = 50, FILEGROWTH = 5),
(NAME = student2Fi2_dat,
FILENAME = ‘c:/SG2Fi1dt.ndf’,
SIZE = 10, MAXSIZE = 50, FILEGROWTH = 5)
LOG ON
(NAME = ‘student_log’,
FILENAME = ‘c:/studentlog.ldf’,
SIZE = 5MB, MAXSIZE = 25MB, FILEGROWTH = 5MB)
二、查看、修改数据库属性
1.利用企业管理器
(1)SQL Server2000 有许多选项可以改变数据库的行为。因此,在使用数据库之前,可以考虑其中一些选项的设置。
进入企业管理器,用鼠标右键单击数据库student,再单击“属性”,然后选择“选项”标签即可进入如图1-2所示student数据库的选项窗体。
图1-2 student数据库的选项窗体
属性说明如下:
访问控制:用于控制哪些用户能访问该数据库。
只读:这个选项使数据库只能读取不能写入。
模型:指定数据库的恢复模型类型。
ANSI NULL默认设置:指定将数据库列默认定义为NULL还是NOT NULL。
递归触发器:启用触发器的递归触发。
自动更新统计信息:指定在优化期间自动生成查询优化所需的过时统计信息。
残缺页检测:指定可以检测不完整页。
自动关闭:指定数据库资源被释放以及所有用户退出之后关闭数据库。
自动收缩:指定数据库文件可以周期性自动收缩。
自动创建统计信息:指定在优化期间自动生成优化查询所需的任何缺少的统计信息。
使用引用的标识符:指定SQL Server2000将强制执行关于引号的ANSI规则。
级别:指定数据库兼容性级别。
⑵ 整数据库大小
点击“数据文件”或“事物日志”标签,可以得到如图1-3所示student数据库的窗体
图1-3 student数据库的数据文件窗体
属性说明:
文件自动增长:选中表示数据库自动,这时可以选择按兆增长还是按百分比增长。
文件增长不受限制:意味着数据库没有最大限制,可以一直充满磁盘
将文件增长限制为,为数据库选择一个最大限制。
分配空间:用户可以直接增加数据库文件大小
扩大数据库的另外一个方法是增加辅助数据文件。
⑶ 加文件组
生成一辅助文件后,可将其逻辑组织到文件组中,帮助管理磁盘空间分配。增加文件组的方法是:在文件组列中输入一个新的文件组名称,如“next”,单击“确定”,然后右击数据库,选择“属性”,选择“文件组”标签会看到增加的文件组。如图1-4所示:
图1-4 student数据库的文件组窗体
⑷ 缩小数据文件
右击数据库,单击“所有任务”,选择收缩数据库,会弹出图1-5所示窗体,利用该窗体可以输入数据库大小,并且可以定制任务,让SQL Server2000自动定期收缩数据库大小。
图1-5 收缩数据库窗体
2.使用Transact-SQL语句查看、修改数据库属性
使用Transact-SQL语句查看、修改数据库属性的语法为:
sp_dboption [[@dbname = ] ‘database’]
[,[@optname = ] ‘option_name’]
[,[@optname = ] ‘option_name’ ]
[@dbname = ] ‘database’ 设置指定选项的数据库名称
[@optname = ] ‘option_name’ 设置的选项名称
[@optname = ] ‘option_name’ 可以示ture、false、on或off
⑴ 修改日志文件的最大值
将student1_log日志文件的最大值更改为150M,SQL脚本程序如下:
USE student
GO
ALTER DATABASE student MODIFY FILE(NAME=student1_log,MAXSIZE=150MB)
GO
⑵ 修改日志文件的初始值
将student1_log日志文件的初始值由5M更改为20M,SQL脚本程序如下:
USE student
GO
ALTER DATABASE student MODIFY FILE(NAME=student1_log,SIZE=20MB)
GO
⑶ 查看数据库信息
执行系统存储过程sp_helpdb,可以查看student数据库信息,并验证数据库是否已经修改成功。
Sp_helpdb student
⑷ 更改数据库
更改数据库student时为student添加一个辅助文件,文件名为studentfz,存储在c:/ studentfz.ndf中,初始大小为3MB,最大值为50MB,增长量为3MB。
USE student
ALTER DATABASE student
ADD FILE
(NAME = studentfz,
FILENAME='c:/studentfz.ndf',
SIZE=3MB,
MAXSIZE=50,
FILEGROWTH=3)
向数据库student中添加一个含有2个文件的文件组
USE student
GO
ALTER DATABASE student ADD FILEGROUP studentfg1
GO
ALTER DATABASE student
ADD FILE
(NAME=studentfz1,
FILENAME='C:/studentfz1.ndf',
SIZE =5MB,
MAXSIZE=50MB,
FILEGROWTH =5),
(NAME=studentfz2,
FILENAME='C:/studentfz2.ndf',
SIZE =5MB,
MAXSIZE=50MB,
FILEGROWTH =5)
TO FILEGROUP studentfg1
向student数据库中添加2个5MB的日志文件
USE student
GO
ALTER DATABASE student
ADD LOG FILE
(NAME =studentlog2,
FILENAME='c:/studentlog2.ldf',
SIZE =5MB,
MAXSIZE = 10MB,
FILEGROWTH =5),
(NAME =studentlog3,
FILENAME='c:/studentlog3.ldf',
SIZE =5MB,
MAXSIZE = 10MB,
FILEGROWTH =5)
删除数据库student中的一个文件studentfz.ndf
USE student
GO
ALTER DATABASE student REMOVE FILE studentfz
删除student数据库
USE student
DROP DATABASE student
练习题
练习1:创建数据库
用企业管理器创建数据库
1) 创建数据库Student:
2) 右击数据库,单击【新建数据库】
3) 输入数据库名称Student
4) 选择【数据文件】标签,增加一个文件student1,设置初始大小为5MB
5) 选择【事务日志】标签,增加一个日志文件student1_log,初始大小为5MB
6) 单击【确定】按钮,开始创建数据库
练习2:用Transact-SQL语句创建数据库
打开查询分析器,创建数据库Student1。数据库的参数如下表所示。
参数 |
参数值 |
数据库名称 |
Student1 |
数据库逻辑文件名 |
Student1_dat |
操作系统数据文件名 |
C:/mssql/data/Student1_dat.mdf |
数据文件的初始大小 |
10MB |
数据文件最大大小 |
50MB |
数据文件增长量 |
原来的20% |
日志逻辑文件名 |
Student_log |
操作系统日志文件名 |
C:/mssql/data/Student1_log.ldf |
日志文件初始大小 |
5MB |
日志文件的最大大小 |
25MB |
日志文件增长增量 |
5MB |
1) 设置数据库选项:
使用企业管理器修改数据库选项。右击数据库,单击“属性”,选择“选项”标签,弹出如图所示窗体,选中“只读”复选框。这样数据库就变为只读数据库。然后打开查询分析器使用T-SQL语句更改数据库选项。
EXEC SP_DBOPTION ‘student’, ‘read only’, ‘TRUE’
2)压缩数据库:
使用企业管理器压缩数据库。右击数据库,选择“所有任务”,单击“收缩数据库”,弹出图示窗体。键入收缩量。使用T-SQL语句压缩数据库。打开查询分析器键入
DBCC SHRINKDATABASE(student,2)将student数据库压缩成为2M。
3)更改数据库:
打开查询分析器更改数据库student,参数如下:
参数 |
参数值 |
数据库名 |
Student |
增加的文件组名 |
StudentFG1 |
增加的文件1的逻辑名 |
Studentdat3 |
文件1在磁盘中的目录 |
C:/tdat3.ndf |
文件1的初始大小 |
5MB |
文件1的最大值 |
50MB |
文件1的增长量 |
5MB |
增加的文件2逻辑名 |
Studentdat4 |
文件2磁盘中的目录 |
C:/tdat3.ndf |
文件2初始大小 |
5MB |
文件2最大值 |
50MB |
文件2增长量 |
5MB |
新增日志逻辑文件名 |
Studentlog2 |
日志文件在磁盘中的目录 |
D:/studentlog.ldf |
日志文件初始值 |
5MB |
日志文件最大值 |
100MB |
日志文件增长量 |
5MB |