1、 实验二 SQL Server 2005的数据库管理 一、目的与要求 1、掌握SQL Server Management Studio “对象资源管理器"的建立、修改和删除数据库的操作方法; 2、掌握T—SQL语言建立、修改和删除数据库的方法。 二、实验准备 1、明确登录用户具有创建、修改和删除数据库的权限; 2、了解SQL语言创建、修改和删除数据库的基本语法。 三、实验内容 (一)对象资源管理器中数据库的管理 1、按默认属性创建第一个数据库“mydb":在对象资源管理器中,右击目录树中的“数据库"à选择“新建",设置新数据库名为mydb,然后点击“确定”。 请完成下
2、列填空: (1) 数据文件的逻辑文件名是mydb (2) 数据文件的物理文件名是mydb.mdf (3) 数据文件的保存位置C:Program Files\Microsoft SQL Server\MSSQL.1\DATA (4) 数据文件的初始大小为3MB (5) 数据文件的增长方式为 自动增长,增量为1MB (6) 数据文件的最大大小为不限制增长 (7) 事务日志文件的逻辑文件名是mydb_log (8) 日志文件的物理文件名是mydb_log。ldf (9) 日志文件的保存位置C:Program Files\Microsoft SQL Server\MS
3、SQL.1\DATA (10) 日志文件的初始大小是1MB 2、按要求设定存储属性,创建数据库studentdb,在E盘中先建立一个以学号命名的文件夹,用以保存文件或命令脚本.本题以截图保存运行过程和结果. 要求:主数据文件逻辑名stu_data,物理位置为“E:\学号文件夹”,初始大小为3MB,最大大小为10MB,增长方式为1MB。 日志文件逻辑名stu_log,物理位置为“E:\学号文件夹”,初始大小为1MB,最大大小为5MB,增长方式为5%. 3、修改studentdb数据库的名称为studb. 4、删除studb数据库。 (二)用T—SQL语言建立数据库,请将命令保存为。
4、sql的脚本文件. 1、用SQL语言建立(一)中第2题的studentdb数据库,其中主数据文件的物理文件名改为studata.mdf,日志文件的物理名为stulog.ldf,其他属性不变。 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,
5、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 Studentdb ON ( NAME = Stu_data, FILENAME = ’’D:\20134650\ st
6、udata.mdf’’, SIZE = 3MB, MAXSIZE = 10MB, FILEGROWTH = 1MB ) LOG ON ( NAME = Stu_log, FILENAME = ’'D:\20134650\stulog。ldf'', SIZE = 1MB, MAXSIZE = 5MB, FILEGROWTH = 5% )' ); GO GO 2、用SQL语言建立多数据文件的数据库archive.要求: (1)主数据文件arch1,物理名为archdat1。mdf,初始大小为3MB,最大大小为10M
7、B,增长方式为1MB; 次数据文件arch1,物理名为archdat2。ndf,初始大小为1MB,最大大小为5MB,增长方式为1MB; 次数据文件arch3,物理名为archdat3.ndf,初始大小为1MB,最大大小为5MB,增长方式为1MB; 保存位置均在软件安装的默认目录. (2)事务日志文件有2个,archlog1和archlog2,物理文件名和逻辑名相同,保存位置在默认位置,初始大小均为1MB,最大大小均为5MB,增长方式为5%。 USE master; GO IF DB_ID (N’Archive’) IS NOT NULL DROP DATABASE Arc
8、hive; 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); -— execu
9、te the CREATE DATABASE statement EXECUTE ('CREATE DATABASE Archive ON PRIMARY (NAME = Arch1, FILENAME = ’''+ @data_path + ’archdat1.mdf’’, SIZE = 3MB, MAXSIZE = 10MB, FILEGROWTH = 1MB), ( NAME = Arch2, FILENAME = '’’+ @data_path + ’archdat2.ndf’’, SIZE
10、 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,
11、 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
12、保存在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,增长
13、方式为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 maste
14、r。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 ), ( N
15、AME = SPri2_dat, FILENAME = '’'+ @data_path + ’SPri2dt。ndf'’, SIZE = 1, MAXSIZE = 10, FILEGROWTH = 1 ), FILEGROUP SalesGroup1 ( NAME = SGrp1Fi1_dat, FILENAME = ''’+ @data_path + 'SG1Fi1dt.ndf'', SIZE = 1, MAXSIZE = 5, FILEGROWTH = 10% ), ( NAME = SGrp1Fi2_d
16、at, 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, FILE
17、NAME = ’'’+ @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 mas
18、ter; 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 MO
19、DIFY 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数据库中的日志文件是否属于某个文件组? 不属于。事物日志文件不能属于任
20、何文件组 2、数据库中的主数据文件一定属于主文件组吗? 一定。只有主数据文件中存放数据库的启动信息 3、删除了数据库,其数据文件和日志文件是否已经删除?是否任何人都可以删除数据库?删除了的数据库还有可能恢复吗? (1)是的。在SQL Server管理平台工具中单击选择“对象资 源管理器"面板中“数据库”结点下要删除的数据库名称,单击鼠标右键,在出现上的菜单中选择“删除”命令,在“删除对象”窗口,默认选择“删除数据库备份和还原历史记录信息"复选框,这时对应的数据文件和日志文件已经删除。 (2)只有数据库管理员才可以删除数据库。 (3)是可以恢复的.除非硬盘空间被别的文件覆盖如果有备份,也是可以恢复的 4、能够删除系统数据库吗? SQL server的系统数据库无法删除。如果删除将无法启动SQL Sever 2005 系统






