admin管理员组

文章数量:1530845

2023年12月28日发(作者:)

实验二 SQL Server 2005的数据库管理

一、目的与要求

1、掌握SQL Server Management Studio “对象资源管理器"的建立、修改和删除数据库的操作方法;

2、掌握T—SQL语言建立、修改和删除数据库的方法。

二、实验准备

1、明确登录用户具有创建、修改和删除数据库的权限;

2、了解SQL语言创建、修改和删除数据库的基本语法。

三、实验内容

(一)对象资源管理器中数据库的管理

1、按默认属性创建第一个数据库“mydb":在对象资源管理器中,右击目录树中的“数据库"选择“新建",设置新数据库名为mydb,然后点击“确定”。

请完成下列填空:

(1) 数据文件的逻辑文件名是mydb

(2) 数据文件的物理文件名是

(3) 数据文件的保存位置C:Program FilesMicrosoft SQL ServerMSSQL.1DATA

(4) 数据文件的初始大小为3MB

(5) 数据文件的增长方式为 自动增长,增量为1MB

(6) 数据文件的最大大小为不限制增长

(7) 事务日志文件的逻辑文件名是mydb_log

(8) 日志文件的物理文件名是mydb_log。ldf

(9) 日志文件的保存位置C:Program FilesMicrosoft SQL ServerMSSQL.1DATA

(10) 日志文件的初始大小是1MB

2、按要求设定存储属性,创建数据库studentdb,在E盘中先建立一个以学号命名的文件夹,用以保存文件或命令脚本.本题以截图保存运行过程和结果.

要求:主数据文件逻辑名stu_data,物理位置为“E:学号文件夹”,初始大小为3MB,最大大小为10MB,增长方式为1MB。

日志文件逻辑名stu_log,物理位置为“E:学号文件夹”,初始大小为1MB,最大大小为5MB,增长方式为5%.

3、修改studentdb数据库的名称为studb.

4、删除studb数据库。

(二)用T—SQL语言建立数据库,请将命令保存为。sql的脚本文件.

1、用SQL语言建立(一)中第2题的studentdb数据库,其中主数据文件的物理文件名改为,日志文件的物理名为,其他属性不变。

USE master;

GO

IF DB_ID (N’Studentdb’) IS NOT NULL

DROP DATABASE Studentdb;

GO

—- Get the SQL Server data path

DECLARE @data_path nvarchar(256);

SET @data_path = (SELECT SUBSTRING(physical_name, 1, CHARINDEX(N’',

LOWER(physical_name)) — 1)

FROM master。sys。master_files

WHERE database_id = 1 AND file_id = 1);

—— execute the CREATE DATABASE statement

EXECUTE ('CREATE DATABASE Studentdb

ON

( NAME = Stu_data,

FILENAME = ’’D:20134650 ’’,

SIZE = 3MB,

MAXSIZE = 10MB,

FILEGROWTH = 1MB )

LOG ON

( NAME = Stu_log,

FILENAME = ’'D:20134650stulog。ldf'',

SIZE = 1MB,

MAXSIZE = 5MB,

FILEGROWTH = 5% )'

);

GO

GO

2、用SQL语言建立多数据文件的数据库archive.要求:

(1)主数据文件arch1,物理名为archdat1。mdf,初始大小为3MB,最大大小为10MB,增长方式为1MB;

次数据文件arch1,物理名为archdat2。ndf,初始大小为1MB,最大大小为5MB,增长方式为1MB;

次数据文件arch3,物理名为,初始大小为1MB,最大大小为5MB,增长方式为1MB;

保存位置均在软件安装的默认目录.

(2)事务日志文件有2个,archlog1和archlog2,物理文件名和逻辑名相同,保存位置在默认位置,初始大小均为1MB,最大大小均为5MB,增长方式为5%。

USE master;

GO

IF DB_ID (N’Archive’) IS NOT NULL

DROP DATABASE Archive;

GO

-- Get the SQL Server data path

DECLARE @data_path nvarchar(256);

SET @data_path = (SELECT SUBSTRING(physical_name, 1, CHARINDEX(N’master。mdf’, LOWER(physical_name)) - 1)

FROM master。sys。master_files

WHERE database_id = 1 AND file_id = 1);

-— execute the CREATE DATABASE statement

EXECUTE ('CREATE DATABASE Archive

ON

PRIMARY

(NAME = Arch1,

FILENAME = ’''+ @data_path + ’’’,

SIZE = 3MB,

MAXSIZE = 10MB,

FILEGROWTH = 1MB),

( NAME = Arch2,

FILENAME = '’’+ @data_path + ’’’,

SIZE = 1MB,

MAXSIZE = 5MB,

FILEGROWTH = 1MB),

( NAME = Arch3,

FILENAME = '’’+ @data_path + ’archdat3。ndf'',

SIZE = 1MB,

MAXSIZE = 5MB,

FILEGROWTH = 1)

LOG ON

(NAME = Archlog1,

FILENAME = ’’’+ @data_path + 'archlog1。ldf’’,

SIZE = 1MB,

MAXSIZE = 5MB,

FILEGROWTH = 5%),

(NAME = Archlog2,

FILENAME = ’’’+ @data_path + 'ldf’’,

SIZE = 1MB,

MAXSIZE = 5MB,

FILEGROWTH = 5%)’

);

GO

3、创建多文件组管理方式的数据库Sales

(1)主文件组中有2个数据文件,其中主数据文件Spri1_dat,初始大小3MB,最大大小10MB;次数据文件Spri2_dat,初始大小1MB,最大大小10 MB;增长方式均为1MB,逻辑文件名中去掉下划线即为物理文件名(如Spri1dat),保存在E盘的学号文件夹下。

(2)自定义文件组SaleGroup1中有2个数据文件:SGrp1Fi1_dat和SGrp1Fi2_dat,初始大小均为1MB,最大大小均为5MB,增长方式10%,逻辑文件名中去掉下划线即为物理文件名,保存在E盘的学号文件夹下。

(3)自定义文件组SaleGroup2中有2个数据文件:SGrp2Fi1_dat和SGrp2Fi2_dat,初始大小均为1MB,最大大小均为5MB,增长方式5%,逻辑文件名中去掉下划线即为物理文件名,保存在E盘的学号文件夹下.

(4)日志文件Sale_log,物理名为Salelog。ldf,初始大小为1MB,最大大小为5MB,增长方式为10%,保存在E盘的学号文件夹下。

USE master;

GO

IF DB_ID (N'Sales') IS NOT NULL

DROP DATABASE Sales;

GO

—- Get the SQL Server data path

DECLARE @data_path nvarchar(256);

SET @data_path = (SELECT SUBSTRING(physical_name, 1, CHARINDEX(N’master。mdf', LOWER(physical_name)) — 1)

FROM master。sys。master_files

WHERE database_id = 1 AND file_id = 1);

—— execute the CREATE DATABASE statement

EXECUTE ('CREATE DATABASE Sales

ON PRIMARY

( NAME = SPri1_dat,

FILENAME = ’''+ @data_path + 'SPri1dat。mdf’’,

SIZE = 3,

MAXSIZE = 10,

FILEGROWTH = 1 ),

( NAME = SPri2_dat,

FILENAME = '’'+ @data_path + ’SPri2dt。ndf'’,

SIZE = 1,

MAXSIZE = 10,

FILEGROWTH = 1 ),

FILEGROUP SalesGroup1

( NAME = SGrp1Fi1_dat,

FILENAME = ''’+ @data_path + ''',

SIZE = 1,

MAXSIZE = 5,

FILEGROWTH = 10% ),

( NAME = SGrp1Fi2_dat,

FILENAME = '’’+ @data_path + ’SG1Fi2dt。ndf’’,

SIZE = 1,

MAXSIZE = 5,

FILEGROWTH = 10% ),

FILEGROUP SalesGroup2

( NAME = SGrp2Fi1_dat,

FILENAME = ’’’+ @data_path + ’SG2Fi1dt。ndf'',

SIZE = 1,

MAXSIZE = 5,

FILEGROWTH = 5 ),

( NAME = SGrp2Fi2_dat,

FILENAME = ’'’+ @data_path + 'SG2Fi2dt。ndf’’,

SIZE = 1,

MAXSIZE = 5,

FILEGROWTH = 5 )

LOG ON

( NAME = Sales_log,

FILENAME = ’’’+ @data_path + ’salelog。ldf'’,

SIZE = 1MB,

MAXSIZE = 1MB,

FILEGROWTH = 10% )’

);

GO

(三)使用SQL语言修改数据库

1、修改archive数据库的数据库名为archivedbUSE master;

GO

ALTER DATABASE Archive

MODIFY NAME = Archivedb;

GO

2、修改archivedb数据库的数据文件arch1的逻辑名为archive_main.

USE master;

GO

ALTER DATABASE Archivedb

MODIFY FILE ( NAME = arch1, NEWNAME = archive_main )

GO

3、修改archivedb数据库的主数据文件,最大大小为不受限制,增长方式为2MB。

USE master;

GO

ALTER DATABASE Archivedb

MODIFY FILE ( NAME = archive_main, MAXSIZE=UNLIMITED,

FILEGROWTH=2MB)

GO

4、删除archivedb数据库中的arch3文件.

USE master;

GO

ALTER DATABASE archivedb

REMOVE FILE arch3;

GO

(四)删除数据库

删除archivedb数据库和Sales数据库.

DROP DATABASE archivedb, Sales;

四、思考与练习

1、SQL Server2005数据库中的日志文件是否属于某个文件组?

不属于。事物日志文件不能属于任何文件组

2、数据库中的主数据文件一定属于主文件组吗?

一定。只有主数据文件中存放数据库的启动信息

3、删除了数据库,其数据文件和日志文件是否已经删除?是否任何人都可以删除数据库?删除了的数据库还有可能恢复吗?

(1)是的。在SQL Server管理平台工具中单击选择“对象资

源管理器"面板中“数据库”结点下要删除的数据库名称,单击鼠标右键,在出现上的菜单中选择“删除”命令,在“删除对象”窗口,默认选择“删除数据库备份和还原历史记录信息"复选框,这时对应的数据文件和日志文件已经删除。

(2)只有数据库管理员才可以删除数据库。

(3)是可以恢复的.除非硬盘空间被别的文件覆盖

本文标签: 数据库删除文件数据文件日志