实验:管理SQL Server 2005数据库
一、实验目的
1. 了解数据库常用对象及组成; 2. 熟悉SQL的基本概念和特点;
3. 熟练掌握T-SQL 语句中的数据定义的使用方法; 4. 熟悉在SQL Server 2005中创建及编辑数据库; 5. 熟练掌握SQL的数据定义子句的使用方法。 二、实验环境
已安装SQL Server 2005企业版的计算机; 具有局域网网络环境,有固定ip地址; 三、实验学时
2学时 四、实验要求
1. 熟练使用Management Stuio界面方式创建及编辑数据库; 2. 熟练使用T-SQL 语句创建及编辑数据库; 3. 完成实验报告。
五、实验准备知识(也可参考SQL Server联机丛书)
1. 数据库相关属性
1) 逻辑名称:数据文件和日志文件名称 2) 文件类型:数据文件及日志文件
3) 文件组:各个数据文件所属的文件组名称 4) 初始大小:文件的最原始大小
5) 自动增长:文件按指定的大小增长,也可限制到最大容量。 6) 路径:存放文件的物理目录
7) 文件名:显示数据文件和日志文件的物理名称
2. 默认数据库属性
1) 主数据文件为xx.mdf ,日志文件为xx_log.ldf; 2) 只有一个文件组Primary;
3) 主数据文件初始大小为3MB,增量为1MB; 4) 日志文件初始大小为1MB,增量为10%;
5) 主数据文件和日志文件都存放在C:\\Program Files\\Microsoft SQL
Server\\MSSQL.2\\MSSQL\\DATA目录下,文件分别为xx.mdf 和xx_log.ldf 。
3. 使用界面创建数据库步骤
【SQL Server Management Studio】→【对象资源管理器】→【数据库】→【新建数据库】→设置数据库相关属性(名称、大小、位置)
4. 启动SQL Server 2005查询分析器
【SQL Server Management Studio】→【新建查询】 5. 命令方式下创建数据库
CREATE DATABASE database_name /*指定数据库名*/
[ON 子句 ]
/*指定数据库文件和文件组属性
[LOG ON 子句 ] /*指定日志文件属性*/
6. 命令方式修改数据库
Alter database database_name
{add file |remove file logical_file_name [with delete] |modify file 六、实验内容及步骤 1、假设SQL Server服务已启动,并以Administrator身份登录计算机(文件名称自定);请分别使用Management界面方式和T-SQL语句实现以下操作: 1) 要求在本地磁盘D创建一个学生-课程数据库(名称为student),只有 一个数据文件和日志文件,文件名称分别为stu和stu_log,物理名称为stu_data.mdf 和stu_log.ldf,初始大小都为3MB,增长方式分别为10%和1MB,数据文件最大为500MB,日志文件大小不受限制。 请写上代码 CREATE DATABASE Student ON { } LOG ON { NAME=’G:\\Data\\Stu_log’, NAME=’G:\\Data\\Stu_data’, FILENAME=’G:\\Data\\Stu.mdf’, SIZE=3, MAXSIZE=500, FILEGROWTH=10% 1 } go FILENAME=’G:\\Data\\Stu.ldf’, SIZE=3MB, MAXSIZE=500MB, FILEGROWTH=1MB, 2) 创建一个Company数据库,该数据库的主数据文件逻辑名称为 Company_data,物理文件为Company.mdf,初始大小为10MB,最大尺寸为无限大,增长速度为10%;数据库的日志文件逻辑名称为Company_log,物理文件名为Company.ldf,初始大小为1MB,最大尺寸为50MB,增长速度为1MB。 ON { } NAME=’G:\\Data\\Company_data’, FILENAME=’G:\\Data\\Company.mdf’, SIZE=10, FILEGROWTH=10% 请写上代码 CREATE DATABASE Company LOG ON { } go NAME=’G:\\Data\\Company_log’, FILENAME=’G:\\Data\\Company.ldf’, SIZE=1MB, MAXSIZE=50MB, FILEGROWTH=1MB, 3) 创建数据库DB,具有2个数据文件,文件逻辑名分别为DB_data1和 DB_data2,文件初始大小均为5MB,最大为100MB,按10%增长;只有一个日志文件,初始大小为3MB,按10%增长;所有文件都存储在D盘文件夹ceshi中。 请写上代码 CREATE DATABASE DB 2 ON { NAME=’G:\\Data\\DB_data1’, NAME=’G:\\Data\\DB_data2’, FILENAME=’G:\\Data\\DB.mdf1’, FILENAME=’G:\\Data\\DB.mdf2’, SIZE=5, MAXSIZE=100, FILEGROWTH=10% OG ON { } go NAME=’G:\\Data\\DB_log’, FILENAME=’G:\\Data\\DB_log.ldf’, SIZE=3MB, FILEGROWTH=10% 4) 在数据库student中增加数据文件db2,初始大小为10MB,最大大小为 50 MB,按10%增长; use master go ALTER DATABASE Student ADD FILE ( ) go NAME=db2, FILENAME='G:\\Data\\db2_data.mdf', SIZE=10MB, MAXSIZE=50MB, FILEGROWTH=10% 请写上代码 5) 在数据库student中添加日志文件,保存在D盘中,初始大小为1MB, 最大无限制,增长方式按照1MB增长; use master go 请写上代码 3 ALTER DATABASE Student ADD FILE ( ) go NAME=db2_log, FILENAME='G:\\Data\\db2_log.ldf', SIZE=1MB, FILEGROWTH=1MB 6) 修改数据库student主数据文件的大小,将主数据文件的初始大小修改 为10Mb,增长方式为20%; use master go 请写上代码 ALTER DATABASE Student MODIFY FILE ( ) go NAME=Stu, FILENAME='G:\\Data\\Stu_data.mdf', SIZE=10MB, FILEGROWTH=20% go 7) 修改数据库student辅助数据文件初始大小为3MB,最大为100MB,按照10%增长,名称为db; 请写上代码 ALTER DATABASE Stuent MODIFY FILE ( NAME=db2, NEWNAME=db, FILENAME=’G:\\Data\\db2_data.mdf’, SIZE=3MB, MAXSIZE=100MB, FILEGROWTH=10% ) go 8) 删除数据库student辅助数据文件和第二个日志文件; ALTER DATABASE Stuent 4 REMOVE FILE db2_data go ALTER DATABASE Stuent REMOVE FILE db2_data.log go 请写上代码 9) 删除数据库company和DB。 将数据库student的所有物理文件移动到‘D:\\xxx‘,并且保证逻辑数据库不受影响,请详细描述解决办法。 可使用分离数据库的办法: 请写上代码 DROP DATABASE Company DROP DATABASE DB EXEC SQ_DETACH_DB’student’,’true’,’true’ CREATE DATABASE Student ON ( ) go NAME=Stu, FILENAME=’G:\\SQL\\Stu_data.mdf’ 七、出现问题及解决办法 如某些操作无法执行,如何解决? 修改数据库student辅助数据文件初始大小为3MB时提示无法更改,指定的 大小3M小于当前大小10M,因为修改后的初始大小不得小于原有大小,违背收 缩规律.要更改初始大小只能改大。 5 实验答案: --1)创建STUDENT数据库 CREATE DATABASE Student ON ( ) LOG ON ( ) go --2)创建COMPANY数据库 CREATE DATABASE Company ON ( NAME='G:\\Data\\Company_data', FILENAME='G:\\Data\\Company.mdf', SIZE=10, FILEGROWTH=10% NAME='G:\\Data\\Stu_log', FILENAME='G:\\Data\\Stu.ldf', SIZE=3MB, MAXSIZE=500MB, FILEGROWTH=1MB NAME='G:\\Data\\Stu_data', FILENAME='G:\\Data\\Stu.mdf', SIZE=3, MAXSIZE=500, FILEGROWTH=10% ) LOG ON ( ) go --3)创建DB数据库 CREATE DATABASE DB ON ( NAME='G:\\Data\\DB_data1', NAME='G:\\Data\\Company_log', FILENAME='G:\\Data\\Company.ldf', SIZE=1MB, MAXSIZE=50MB, FILEGROWTH=1MB 6 ) NAME='G:\\Data\\DB_data2', FILENAME='G:\\Data\\DB.mdf1', FILENAME='G:\\Data\\DB.mdf2', SIZE=5, MAXSIZE=100, FILEGROWTH=10% LOG ON ( ) go --4)增加数据文件 ALTER DATABASE Student ADD FILE ( ) go --5)在数据库student中添加日志文件 ALTER DATABASE Student ADD FILE ( ) go --6)修改数据库student主数据文件的大小 ALTER DATABASE Student MODIFY FILE ( NAME=Stu, FILENAME='G:\\Data\\Stu_data.mdf', SIZE=10MB, FILEGROWTH=20% NAME=db2_log, FILENAME='G:\\Data\\db2_log.ldf', SIZE=1MB, FILEGROWTH=1MB NAME=db2, FILENAME='G:\\Data\\db2_data.mdf', SIZE=10MB, MAXSIZE=50MB, FILEGROWTH=10% NAME='G:\\Data\\DB_log', FILENAME='G:\\Data\\DB.ldf', SIZE=3MB, FILEGROWTH=10% 7 ) go --7)修改数据库student辅助数据文件 ALTER DATABASE Stuent MODIFY FILE ( ) go --8)删除数据库student辅助数据文件和第二个日志文件 ALTER DATABASE Stuent REMOVE FILE db2_data go ALTER DATABASE Stuent REMOVE FILE db2_data.log go --9)删除数据库company和DB DROP DATABASE Company DROP DATABASE DB CREATE DATABASE Student ON ( ) go --10)移动数据文件 SELECT name,physical_name FROM sys,master_files WHERE database_id=DB_ID('Company'); go USE master; go ALTER DATABASE Company MODIFY FILE(NAME=tempdev,FILENAME='G:\\Data\\Company.mdf'); go ALTER DATABASE Company NAME=Stu, FILENAME='G:\\SQL\\Stu_data.mdf' NAME=db2, NEWNAME=db, FILENAME='G:\\Data\\db2_data.mdf', SIZE=3MB, MAXSIZE=100MB, FILEGROWTH=10% 8 MODIFY FILE (NAME=templog,FILENAME='G:\\Data\\Companylog.ldf'); go 9 因篇幅问题不能全部显示,请点此查看更多更全内容