




下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、武汉纺织大学最新数 据库管理系统课程实验报告班级: 姓名: 实验时间:年 月 日 指导教师:一、实验目的1、通过实验,使学生全面了解最新数据库管理系统的基本内容 、基本 原理。2、牢固掌握SQL SERVER功能操作和Transact-SQL语言。3、紧密联系实际,学会分析,解决实际问题。学生通过小组项 目设计, 能够运用最新数据库管理系统于管理信息系统、企业资源计 戈h供应链管理 系统、客户关系管理系统、电子商务系统、决策支持系统、智能信息系统中、实验内容1 .导入实验用示例数据库:教学库.mdf教学库_log.ldf仓库库存.mdf仓库库存_log.ldf1.1 将数据库导入在 SqlSe
2、rver 2005 导入已有的数据库(*.mdf)文件,在 SQL Server ManagementStudio里连接上数据库后,选择新建查询,然后执行语句EXEC sp_attach_db dbname ='教学库,filename1 =教学库.mdf,filename2 =教学库og.ldfgouse 教学库EXEC sp_changedbowner 'sa'goEXEC sp_attach_db dbname ='仓库库存filename1 =仓库库存.mdf, filename2 =仓库库存og.ldf gouse 仓库库存EXEC sp_change
3、dbowner 'sa' go1.2 可能出现问题附加数据库出现无法打开物理文件"X.mdf"。操作系统错误5:"5(拒绝访问。厂。(Microsoft SQL Server ,错误:5120)"解决:找到要附加的.mdf文件-右键- 属性-安全-选择当前用户- 编辑-完全控 制。对.log文件进行相同的处理。2 .删除创建的数据库,使用 T-SQL语句再次创建该数据库,主文件和日志文件的文 件名同上,要求:仓库库存 _data最大尺寸为无限大,增长速度为20% ,日志文件初始大小为2MB ,最大尺寸为 5MB ,增长速度为1MB。CRE
4、ATE DATABASE 仓库库存(NAME ='仓库库存 _data',仓库库存_data.MDF',SIZE = 10MB,FILEGROWTH = 20%) LOG ON(NAME ='仓库库存 _log',仓库库存_log. LDF',SIZE = 2MB,MAXSIZE = 5MB,FILEGROWTH = 1MB)2.1在数据库 仓库库存”中完成下列操作。 创建 商品”表,表结构如表1:表1 商品表列名数据类型长度是否允许为空值说明商口口编PChar6NOT NULL主键商品名称Varchar20NOT NULL,单价Float生产商
5、Varchar30(2)创建 仓库”表,表结构如表2:表2仓库表列名数据类型长度是否允许为空值说明仓库编号Char3NOT NUL主键仓库地址Varchar20NOT NULL(3)创建库存情况”表,表结构如表3:表3库存情况表列名数据类型长度是否允许为空值说明仓库编号Char3NOT NULL主键商品编号Char6NOT NUL主键数量int(1) USE仓库库存GOCREATE TABLE商品(商口 口编pchar(6) NOT NULL PRIMARY KEY ,商品名称char(20) NOT NULL,单价Float,生产商Varchar (30)(2),略。2.2 建立商品”表、仓
6、库”表和库存情况”表三表之间的关系图。2.3 分别给 商品”表、仓库”表和 库存情况”表添加数据。3.数据库查询.3.1 试用SQL的查询语句实现下列查询:(1)统计有学生选修的课程门数。答:SELECT COUNT(DISTINCT 课程号)FROM 选课(2)求选修C004课程的学生的平均年龄。答:SELECT AVG(年龄)FROM 学生,选课WHERE学生.学生号=选课.学生号and课程号='C004'(3)求学分为3的每门课程的学生平均成绩。答:SELECT课程.课程号,AVG(成绩)FROM 课程,选课WHERE课程.课程号=选课.课程号and学分=3GROUP B
7、Y 课程.课程号(4)统计每门课程的学生选修人数,超过 3人的课程才统计。要求输出课程号和选修人数,查询结果按人数降序排列,若人数相同,按课程号升序排列。答: SELECT 课程号 ,COUNT(*) FROM 选课GROUP BY 课程号HAVING COUNT(*) >3ORDER BY COUNT(*) DESC, 课程号( 5)检索学号比王明同学大,而年龄比他小的学生姓名。答: SELECT 姓名 FROM 学 生WHERE 学 生 号 >( SELECT 学 生号 FROM 学 生WHERE 姓 名 =' 王明 ' )and 年 龄 <( SELEC
8、T 年 龄 FROM 学 生WHERE 姓 名 =' 王明 ' )( 6)检索姓名以王打头的所有学生的姓名和年龄。答: SELECT 姓名 ,年龄 FROM 学生WHERE 姓名 LIKE 王 %( 7)在选课表中检索成绩为空值的学生学号和课程号。答: SELECT 学生号 ,课程号 FROM 选课WHERE 成绩 IS NULL( 8)求年龄大于女同学平均年龄的男学生姓名和年龄。答: SELECT 姓名,年龄 FROM 学生WHERE 性别=男 and 年龄 >(SELECT AVG( 年龄 ) FROM 学生 WHERE 性别=女 )( 9)求年龄大于所有女同学年龄的
9、男学生姓名和年龄。答: SELECT 姓名,年龄 FROM 学生WHERE 性别=男 and 年龄 > all (SELECT 年龄 FROM 学生WHERE 性别=女 )( 10)检索所有比王明年龄大的学生姓名、年龄和性别。答: SELECT 姓名 ,年龄,性别FROM 学生WHERE 年龄 > (SELECT 年龄 FROM 学生WHERE 姓名=王明)( 11)检索选修课程C001 的学生中成绩最高的学生的学号。答: SELECT 学生号 FROM 选课WHERE 课程号= C001 and 成绩 =(SELECT MAX( 成绩 ) FROM 选课WHERE 课程号= C0
10、01)( 12)检索学生姓名及其所选修课程的课程号和成绩。答: SELECT 姓名 , 课程号 , 成绩 FROM 学生,选课WHERE 学生.学生号=选课 .学生号( 13 )检索选修2 门以上课程的学生总成绩(不统计不及格的课程),并要求按总成绩的降序排列出来。答: SELECT 学生号 ,SUM( 成绩 ) FROM 选课WHERE 成绩 >=60GROUP BY 学生号HAVING COUNT(*)>=2ORDER BY SUM( 成绩 ) DESC3.2 利用控制流语句,查询学生号为0101001 的学生的各科成绩,如果没有这个学生的成绩,就显示“此学生无成绩”。答: I
11、F EXISTS ( SELECT * FROM 选课 WHERE 学生号 ='0101001')SELECT 课程号 ,成绩 FROM 选课WHERE 学生号 ='0101001'ELSEPRINT ' 此学生无成绩'3.3 用函数实现:求某个专业选修了某门课的学生人数。答: CREATE FUNCTION renshu(p char(10),cn char(4) RETURNS floatASBEGINDECLARE cou floatSELECT cou=( SELECT count(*) FROM 学生,选课WHERE 学生.学生号=选课
12、.学生号and 课程号 =cnand 专业 =p)RETURN couEND3.4 用函数实现:查询某个专业所有学生所选的每门课的平均成绩。答: CREATE FUNCTION average (p char(10) RETURNS floatASBEGINDECLARE aver floatSELECT aver=( SELECT 课程号,avg(成绩)FROM 学生,选课WHERE 学生.学生号=选课.学生号and 专业 =pGROUP BY 课程号)RETURN averEND3.5 针对 “仓库库存”中的 “商品 ”表,查询商品的价格等级,商品号、商品名和价格等级(单价1000 元以内
13、为“低价商品”, 10003000 元为 “中等价位商品”, 3000 元以上为“高价商品”)。答: SELECT 商品编号, 商品名称,CASEWHEN 单价<1000 then '低价商品'WHEN 单价<3000 then '中等价位商品'WHEN 单价 >=3000 then '高价商品'END AS 价格等级FROM 商品4视图与索引4.1 在 SQL Server Management Studio 中创建一个仓库库存信息视图,要求包含仓库库存数据库中三个表的所有列。答:略。4.2 利用 T-SQL 语句创建一个查询
14、每个学生的平均成绩的视图,要求包含学生的学生号和姓名。答: CREATE VIEW 学生_平均成绩ASSELECT学生学生号,姓名,avg(成绩)AS平均成绩FROM 学生,选课WHERE 学生.学生号=选课.学生号GROUP BY 学生 .学生号,姓名4.3 在 SQL Server Management Studio 中按照选课表的成绩列升序创建一个普通索引(非唯一、非聚集)。答:略。4.4 利用 T-SQL 语句按照商品表的单价列降序创建一个普通索引。答: CREATE INDEX index_ 商品单价ON 商品(单价DESC)5存储过程、触发器和游标5.1 创建存储过程,计算指定学生
15、(姓名)的总成绩,存储过程中使用一个输入参数(姓名)和一个输出参数(总成绩)。答: CREATE PROCEDURE SnameS_n varchar(20), sum1 int OUTPUTASSELECT sum1= sum(成绩)FROM 选课,学生WHERE 姓名 =S_n and 学生 .学生号=选课.学生号5.2 在教学库中建一个学生党费表,属性(学生号,姓名,党费), 学 生号是主键,也是外键(参考学生表的学生号); 创 建一个触发器,保证只能在每年的6 月和 12 月交党费,如果在其它时间录入则显示提示信息。答: CREATE TABLE 学生党费表(学生号CHAR ( 7)p
16、rimary key foreign key references 学生(学生号),姓名 char(6),党费 int)CREATE TRIGGER trg_学生党费表on 学生党费表for insertASif not(datepart(mm,getdate()='06' or datepart(mm,getdate()='12')BEGINprint'对不起,只能在每年的6月和12月交党费'rollbackEND6事务与并发控制6.1 创建一个事务,将所有女生的考试成绩都加5 分,并提交。答:BEGIN TRANSACTIONUSE 教学库UPDATE 选课SET 成绩 =成绩 +5WHERE 学生号 in (SELECT 学生号 FROM 学生 WHERE 性别 =女 )COMMIT TRANSACTI
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 某年度VSAT网络管理系统战略市场规划报告
- 大数据行业分析行业深度调研及发展项目商业计划书
- 媒体内容智能分类与标签行业跨境出海项目商业计划书
- 电影节行业跨境出海项目商业计划书
- 歌剧创作AI应用企业制定与实施新质生产力项目商业计划书
- 美食餐厅服务员服务标准与考核合同范本
- 场地租赁估值变更及合同履行管理协议
- 紧急救援车辆无偿支援服务合同
- 车辆抵押贷款合同风险评估责任协议
- 高效仓储物流园区运营管理合同范本
- 装修公司合同保密协议书
- 2025-2030中国公路建设行业发展分析及发展前景与趋势预测研究报告
- 陕09J01 建筑用料及做法图集
- 多元统计分析在经济中的应用论文(3篇)
- 新疆维吾尔自治区建筑工程补充预算定额说明
- OpenStack云计算平台实战课件(完整版)
- FIDIC施工合同条件(红皮书)
- 学前儿童语言教育课件精品ppt
- CATIA实用入门教程ppt课件(124页PPT)
- x8线切割编控系统使用说明书v16
- 打磨作业指导书
评论
0/150
提交评论