您好,欢迎访问三七文档
数据库技术与应用题目:实训项目一:《我的租房网设计与实现》学生姓名:张燕斌学号:1267159206专业:软件工程专业班级:软件12-2指导教师:余金铃21、实训一:建立数据库结构(1)创建数据库House使用SSMS向导创建数据库House,如下图所示:--创建数据库HousecreatedatabaseHouseonprimary(name='House',filename='D:\2014年工程案例项目\House.mdf',size=3mb,filegrowth=1mb)logon(name='House_log',filename='D:\2014年工程案例项目\House_log.ldf',size=1mb,maxsize=10mb,filegrowth=10%3)(2)建立5张数据表usehouse--创建客户信息表sys_usercreatetablesys_user(--客户编号,主键标识列UserIdintidentity(1,1)primarykey,--标识列从开始,递增值为1--客户姓名,非空UserNamevarchar(50)notnull,--客户密码,至少个字符UserPwdvarchar(50)--,constraintck_UserPwdcheck(len(UserPwd)=6));usehouse--创建区县信息表hos_districtcreatetablehos_district(--区县编号,主键标识列DIdintidentity(1,1)primarykey,--标识列从开始,递增值为1--区县名称,非空DNamevarchar(50)notnull,)usehouse--创建街道信息表hos_streetcreatetablehos_street(--街道编号,主键标识列StreetIdintidentity(1,1)primarykey,--标识列从开始,递增值为1--街道名称,非空SNamevarchar(50)notnull,--区县编号,表hos_district的外键,关联了hos_district中的主键DIdSDIdintconstraintFK1_idforeignkey(SDId)referenceshos_district(DId))usehouse--创建房屋类型表hos_typecreatetablehos_type(--房屋类型编号,主键标识列HTIdintidentity(1,1)primarykey,--标识列从开始,递增值为1--房屋类型名称,非空4HTNamevarchar(50)notnull,)usehouse--创建出租房屋信息表hos_housecreatetablehos_house(--出租房屋编号,主键标识列HMIDintidentity(1,1)primarykey,--标识列从开始,递增值为--客户编号,非空,UserIdintnotnull,--街道编号,非空,StreetIDintnotnull,--房屋类型编号,非空,HTIdintnotnull,--月租金,非空,decimal是浮点数类型,chkPrice是约束标识,简单的说,就是给约束起的个名字,decimal(8,2)的意思是最大位,也就是有位小数Pricedecimal(8,2)constraintchkPricecheck(Price=0)default(0),--默认值为,要求大于等于--标题,非空Topicvarchar(50)notnull,--描述,非空Contentsvarchar(50)notnull,--发布时间,非空HTimedatetimenotnullconstraintchkHTimecheck(HTime=getdate())default(getdate()),--默认值为当前日期,要求不大于当前日期Copyvarchar(50))(3)添加外键约束--添加外键约束useHousealtertablehos_houseaddconstraintUserIdforeignkey(UserId)referencessys_user(UserId)altertablehos_houseaddconstraintStreetIdFOREIGNKEY(StreetID)REFERENCEShos_street(StreetId)altertablehos_houseaddconstraintHTIdFOREIGNKEY(HTId)REFERENCEShos_type(HTId)--增加外键约束的时候要一条条的进行增加52、实训二:添加测试数据(1)主表添加测试数据--4个主表的测试数据--为sys_user表插入数据useHouseinsertintosys_user(UserName,UserPwd)values('张三',100000);insertintosys_user(UserName,UserPwd)values('李四',100000);select*fromsys_user--为hos_district表插入数据insertintohos_district(DName)values('海淀区');insertintohos_district(DName)values('宣武区');select*fromhos_district--为hos_street表插入数据insertintohos_street(SName,SDId)values('万寿路',1)insertintohos_street(SName,SDId)values('中关村',1)insertintohos_street(SName,SDId)values('陶然亭',2)insertintohos_street(SName,SDId)values('大栅栏',2)--为hos_type表插入数据insertintohos_type(HTName)values('两室一厅')insertintohos_type(HTName)values('两室两厅')6(2)添加批量数据--创建3临时表#Topic、#Contents、#Copycreatetable#Topic(idintidentity(1,1),topicvarchar(50))createtable#content(idintidentity(1,1),contentvarchar(50))createtable#copy(idintidentity(1,1),copyvarchar(50))--将数据插入临时表--为#Topic表插入数据insertinto#Topic(topic)values('中关村')insertinto#Topic(topic)7values('万泉新新家园')insertinto#Topic(topic)values('望园小区')insertinto#Topic(topic)values('福盈家园')insertinto#Topic(topic)values('百子湾号院')insertinto#Topic(topic)values('中关村软件园')--为#Contents表插入数据insertinto#content(content)values('经典装修,拎包入住')insertinto#content(content)values('超值公寓火爆出租')insertinto#content(content)values('望京朝阳东北区')insertinto#content(content)values('低价个人入住')insertinto#content(content)values('昌平区回龙观')insertinto#content(content)--为#Copy表插入数据values('精装修,首出租')insertinto#copy(copy)values('交通便利,配套完善')insertinto#copy(copy)values('环境优雅,学区房')insertinto#copy(copy)values('紧挨号地铁')insertinto#copy(copy)values('购物方便')insertinto#copy(copy)values('紧邻亚运村')insertinto#copy(copy)values('山水一体')8--向出租房屋表hos_house增加条记录declare@useridint--声明变量declare@streetidintdeclare@htidintdeclare@pricedecimal(7,2)declare@htimedatetimedeclare@topicvarchar(50)declare@contentsvarchar(255)declare@copyvarchar(255)declare@numintbegintransaction--启动事务set@num=0--初始化变量while@num30--while循环,插入条记录beginset@userid=(selecttop(1)UserIdfromsys_userorderbyNEWID());--UserID随机取自UserID表里的编号selecttop(1)@streetid=StreetIDfromhos_streetorderbyNEWID();--StreetId随机取自hos_street表的编号selecttop(1)@htid=HTIdfromhos_typeorderbyNEWID();--HTId随机取自hos_type表的编号9set@price=1000+cast(3000*rand()asint);--运用rand()函数,租金Price在—之间随机产生set@htime=cast(dateadd(day,-cast(rand()*datepart(dayofyear,getdate())asint),getdate())asdatetime);--运用rand()函数,发布时间@htime,要求小于当前系统时间,发布时间在当前系统时间一年内selecttop(1)@topic=topicfrom#topicorderbyNEWID();--topic从临时表#topic里随机取selecttop(1)@contents=contentfrom#contentorderbyNEWID();--contents从临时表#content里随机取selecttop(1)@copy=copyfrom#copyorderbyNEWID();--copy从临时表#copy里随机取insertintohos_house(UserId,StreetID,HTId,Price,Topic,Contents,HTime,Copy)values(@userid,@streetid,@htid,@price,@topic,@contents,@htime,@copy);set@num=@num+1;endcommittransaction3、实训三:综合查询(1)分页显示查询出租房屋信息--使用Top关键字实现查询分页显示,用临时表先取出前10条记录,然后再在临时表里取出第6-第10条记录。selecttop(10)*into#hos_house_top10fromhos_houseselect*from#hos_house_top10whereHMIDnotin(selecttop(5)HMIDfrom#hos_house_top10)10--使用RowNumber函数,要求所有的列标题使用中文,查询结果如下图所示selecttop(10)row_number()over(orderbyHTID)asrowid,*into#tempfromhos_houseselectHMIDas房源编号,Use
本文标题:SQL租房网
链接地址:https://www.777doc.com/doc-2860583 .html