《我的租房网》数据库实训项目指导书.docx
- 文档编号:11358461
- 上传时间:2023-05-31
- 格式:DOCX
- 页数:15
- 大小:325.96KB
《我的租房网》数据库实训项目指导书.docx
《《我的租房网》数据库实训项目指导书.docx》由会员分享,可在线阅读,更多相关《《我的租房网》数据库实训项目指导书.docx(15页珍藏版)》请在冰点文库上搜索。
《我的租房网》数据库实训项目指导书
实训项目:
我的租房网
一、项目背景
1、项目任务
ØT-SQL编程创建事务产生随机测试数据
Ø实现各种业务查询功能
2、项目技能目标
Ø使用临时表保存临时查询结果
Ø使用子查询、联接查询、联合查询
Ø使用事务和视图
Ø使用T-SQL编程批量插入测试数据
3、需求概述
项目组接受开发“我的租房网”软件任务,现在项目组接受数据库设计工作,“我的租房网”数据库House包括客户信息表、区县信息表、街道信息表、房屋类型表和出租房屋信息表共5个表,各表结构如下表1-5所示:
表1.客户信息表sys_user结构
列名称
数据类型
说明
UserId
int
客户编号,主键,标识列从1开始,递增值为1
UserName
varchar
客户姓名,该栏必填
UserPwd
varchar
密码,至少6个字符
表2.区县信息表hos_district结构
列名称
数据类型
说明
DId
int
区县编号,主键,标识列从1开始,递增值为1
DName
varchar
区县名称,该栏必填
表3.街道信息表hos_street结构
列名称
数据类型
说明
StreetId
int
街道编号,主键,标识列从1开始,递增值为1
SName
varchar
街道名称,该栏必填
SDId
Int
区县编号,表hos_district的外键
表4.房屋类型表hos_type结构
列名称
数据类型
说明
HTId
int
房屋类型编号,主键,标识列从1开始,递增值为1
HTName
varchar
房屋类型名称,该栏必填
表5.出租房屋信息表hos_house结构
列名称
数据类型
说明
HMID
int
出租房屋编号,主键,标识列从1开始,递增值为1
UserId
varchar
客户编号,该栏必填,外键
StreetID
int
街道编号,该栏必填,外键
HTId
int
房屋类型编号,该栏必填,外键
Price
decimaldecimal:
('10':
10位数字,'2':
两位有效数字)
月租金,该栏必填,默认值为0,要求大于等于0
Topic
varchar
标题,该栏必填
Contents
varchar
描述,该栏必填
HTime
datetime
发布时间,该栏必填,默认值为当前日期,要求不大于当前日期
Copy
varchar
备注
4、开发环境
Ø数据库:
SQLSERVER2008开发版
5、实训进度安排
实训进度安排如下表所示:
表6.实训进度安排
实训内容
所需学时
提交文档
实训一:
建立数据库结构
4
T-SQL源文件
实训二:
添加测试数据
6
T-SQL源文件
实训三:
综合查询
6
T-SQL源文件
实训四:
业务统计
8
T-SQL源文件
二、项目实训内容
实训内容由4个实训项目构成,建议在参考代码和实现步骤基础上进行改进,每个实训子项目的T-SQL语句写成1个T-SQL源文件,如item1.sql。
1、实训一:
建立数据库结构
(1)创建数据库House
使用SSMS向导创建数据库House,如下图所示:
图1.创建数据库House
扩展内容:
要求用T-SQL语句建立house1数据库。
(2)建立5张数据表
要求使用T-SQL语句建立5张数据表及相应的各种约束,要求遵循编程规范及添加注释。
注意:
字段名不能使用T-SQL关键字,另外外键和主键数据类型要求一致。
参考代码如下所示:
--创建客户信息表sys_user
createtablesys_user
(
--客户编号,主键标识列
UserIdintidentity(1,1)primarykey,
--客户姓名,非空
UserNamevarchar(50)notnull,
--客户密码,至少个字符
UserPwdvarchar(50),
constraintck_UserPwdcheck(len(UserPwd)>=6)
);
(3)添加外键约束
使用AlterTable语句为hos_house表建立外键关系。
也可以建表时建立外键关系。
2、实训二:
添加测试数据
(1)主表添加测试数据
用T-SQL语句向客户信息表、区县信息表各添加2条测试数据,街道信息表里每个区县添加1-2个街道,房屋类型表添加2条。
注意上述4个表的自动增长列字段的值。
4个主表的测试数据如下图所示:
图2.4个主表的测试数据
(2)添加批量数据
Ø要求使用事务和While循环,向出租房屋表hos_house增加30条记录(各个字段的内容随机产生),如下图所示:
图3.房屋信息表记录
Ø其中用户编号UserID随机取用户表里的UserID,其他的类似街道编号StreetId、HTID也随机均取自主表的相应编号。
租金Price在1000—4000之间随机产生,发布时间HTime自当前系统日期之间近一年内随机产生。
Ø标题Topic、描述Contents和备注Copy建议从3个临时表里随机取相应的记录。
3个临时表内容如下所示:
图4.3个临时表的记录集
Ø参考代码
selecttop1@userid=useridfromsys_userorderbyNEWID()
--租金在-4000之间随机产生
set@price=1000+cast(3000*RAND()asint)
--发布时间@htime,要求小于当前系统时间,发布时间在当前系统时间一年内
set@htime=cast(dateadd(day,-cast(rand()*asint),getdate())asdate)
3、实训三:
综合查询
(1)分页显示查询出租房屋信息
查询输出第6-10条出租房屋信息:
Ø使用Top关键字实现查询分页显示,用临时表先取出前10条记录,然后再在临时表里取出第6-第10条记录。
图5.使用Top关键字和临时表分页显示
Ø使用RowNumber函数,要求所有的列标题使用中文,查询结果如下图所示:
图6.使用RowNumber函数实现分页显示
(2)查询指定客户发布的出租房屋信息
查询张三发布的所有出租房屋信息,并显示房屋分布的街道和区县,要求分别按下述2种方法实现图7的查询结果:
Ø使用内联接innerjoin查询和子查询实现。
Ø使用where子句和内查询实现。
查询结果如下图所示:
图7.查询张三发布的所有出租房屋信息
(3)按区县制作房屋出租清单
为至少有2个街道有出租房屋的区县制作出租房屋清单,使用having子句筛选出街道数量大于1的区县。
图8.按区县制作房屋出租清单
提示代码:
select.......from......
andD.DIdin
(selectA.DId
from......AgroupbyA.DIdhaving(COUNT(A.Streetid)>1))
4、实训四:
业务统计
(1)按季度统计本年度发布的房屋出租数量
创建视图View_QTDst本年各个季度各区县各街道销售的各房型出租数量。
结果如下图所示:
图9.视图View_QTDst查询结果
(2)统计出各个季度各个区县出租房屋的数量
在视图View_QTDst上进行汇总统计,结果如下图所示:
图10.各个季度各个区县出租房屋的数量
(3)统计出各个季度各个区县出租房屋的数量总和及街道户型明细
使用联合查询输出各个季度总量,结果如下图所示:
图11.各个季度总量
三、项目实训报告要求
1、设计报告及书写内容要求
每个人需独立完成1份实训项目设计报告,不得雷同。
(1)封面:
参照下页的封面格式打印。
(2)主要内容:
Ø实现步骤
按照任务描述,分别写出实训1-4的实现步骤:
包括分析过程、T-SQL代码、执行结果。
Ø项目心得体会
针对该项目,有哪些收获或者心得体会、建议。
项目中列举1-2个关键问题是如何处理的?
(每个人的心得体会不得少于300字,必须是原创的,不能空话,套话)。
2、需提交资料
每人需提交电子版《实训项目设计报告》1份,实训项目设计报告名称为“学号姓名《我的租房网设计与实现》实训报告.doc”。
每人提交源文件压缩包1份:
包括数据库文件及相应的T-SQL文件,,源文件名称为“学号姓名《我的租房网设计与实现》源文件”。
由各班班长收集完毕,发送到任课老师的QQ邮箱。
四、实训项目设计报告排版、装订格式要求
1、论文页面设置及装订格式
Ø一律A4纸打印
Ø页边距:
上(2.5cm)下(2.5cm)左(2.7cm)右(2.7cm)
Ø行间距:
1.5倍间距
Ø段前:
0.5行
Ø一律左侧打印
2、论文字体字号
Ø正文:
宋体小四
Ø表题、图题:
宋体五号
Ø代码部分参照讲义的格式,如下所示:
//设置红色滚动条的上限值和下限值
hsbRed.Minimum=0;
hsbRed.Maximum=255;
//设置红色滚动条小距离移动滚动框时改变的值(单击左右箭头)
hsbRed.SmallChange=2;
//设置红色滚动条长距离移动滚动框时改变的值(在滚动区域单击时)
hsbRed.LargeChange=10;
hsbBlue.Minimum=0;
hsbBlue.Maximum=255;
hsbBlue.SmallChange=2;
hsbBlue.LargeChange=10;
《数据库技术与开发》
项目实训设计报告
项目名称:
我的租房网设计与实现
姓名:
专业:
指导教师:
完成日期:
进一步思考:
1、哪些地方会用到触发器?
这个题目不太好想,但是银行取款时,交易记录表加消息,银行卡表的余额也会发生改变
2、哪些地方可能用到事物?
使用事物批量插入
3、哪些地方可能用到游标?
4、哪些地方可能用到存储过程?
比如查询指定客户发布的出租房屋的信息,可以用存储过程实现,以用户姓名为输入
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 我的租房网 租房 数据库 项目 指导书