数据库管理系统实验报告含答案
本实验报告旨在使学生全面了解最新数据库管理系统的基本内容和基本原理,牢固掌握 SQL SERVER 的功能操作和 Transact-SQL 语言,并紧密联系实际,学会分析和解决实际问题。
一、实验目的
1. 通过实验,使学生全面了解最新数据库管理系统的基本内容和基本原理。
2. 牢固掌握 SQL SERVER 的功能操作和 Transact-SQL 语言。
3. 紧密联系实际,学会分析和解决实际问题。
二、实验内容
1. 导入实验用示例数据库
在实验中,我们使用了 SQL Server 2005 作为数据库管理系统。我们需要导入实验用示例数据库。我们可以使用 EXEC sp_attach_db 语句将数据库文件(*.mdf)附加到 SQL Server 2005 中。
例如,我们可以使用以下语句将教学库数据库附加到 SQL Server 2005 中:
EXEC sp_attach_db @dbname = '教学库', @filename = 'f:\教学库.mdf', @filename = 'f:\教学库_log.ldf'
并且,我们需要将数据库的所有权更改为当前用户,以便我们可以正常地访问数据库。
EXEC sp_changedbowner 'sa'
2. 删除创建的数据库
在实验中,我们需要删除创建的数据库,以便我们可以重新创建该数据库。在删除数据库之前,我们需要先断开所有与数据库的连接,然后使用 DROP DATABASE 语句删除数据库。
例如,我们可以使用以下语句删除教学库数据库:
DROP DATABASE 教学库
3. 创建数据库
在删除数据库之后,我们需要重新创建该数据库。我们可以使用 CREATE DATABASE 语句创建数据库。
例如,我们可以使用以下语句创建仓库库存数据库:
CREATE DATABASE 仓库库存(
NAME = '仓库库存_data',
FILENAME = 'F:\仓库库存_data.MDF',
SIZE = 10MB,
MAXSIZE = 20%
)
LOG ON(
NAME = '仓库库存_log',
FILENAME = 'F:\仓库库存_log.LDF',
SIZE = 2MB,
MAXSIZE = 5MB,
FILEGROWTH = 1MB
)
4. 创建表
在创建数据库之后,我们需要创建表以存储数据。在本实验中,我们需要创建三个表:商品表、仓库表和库存情况表。
例如,我们可以使用以下语句创建商品表:
CREATE TABLE 商品(
商品编号 char(6) NOT NULL PRIMARY KEY,
商品名称 char(20) NOT NULL,
单价 Float,
生产商 Varchar(30)
)
5. 建立表之间的关系
在创建表之后,我们需要建立表之间的关系。在本实验中,我们需要建立商品表、仓库表和库存情况表之间的关系。
例如,我们可以使用以下语句建立商品表和仓库表之间的关系:
ALTER TABLE 库存情况
ADD CONSTRAINT FK_库存情况_商品 FOREIGN KEY (商品编号) REFERENCES 商品(商品编号)
6. 添加数据
在建立表之间的关系之后,我们需要添加数据以便我们可以进行查询和分析。在本实验中,我们需要分别给商品表、仓库表和库存情况表添加数据。
例如,我们可以使用以下语句添加商品数据:
INSERT INTO 商品(商品编号, 商品名称, 单价, 生产商)
VALUES('001', '苹果', 10.0, 'Apple Inc.')
7. 数据库查询
在添加数据之后,我们需要使用 SQL 语句进行查询和分析。在本实验中,我们需要实现以下四个查询:
(1)统计有学生选修的课程门数。
SELECT COUNT(DISTINCT 课程号) FROM 选课
(2)求选修 C004 课程的学生的平均年龄。
SELECT AVG(年龄) FROM 学生,选课
WHERE 学生.学生号=选课.学生号 and 课程号='C004'
(3)求学分为 3 的每门课程的学生平均成绩。
SELECT 课程.课程号, AVG(成绩) FROM 课程,选课
WHERE 课程.课程号=选课.课程号 and 学分=3
GROUP BY 课程.课程号
(4)统计每门课程的学生数量。
SELECT 课程号, COUNT(学生号) FROM 选课
GROUP BY 课程号