(完整word版)实验12:综合.doc
上传人:雨巷****莺莺 上传时间:2024-09-11 格式:DOC 页数:7 大小:215KB 金币:10 举报 版权申诉
预览加载中,请您耐心等待几秒...

(完整word版)实验12:综合.doc

(完整word版)实验12:综合.doc

预览

在线预览结束,喜欢就下载吧,查找使用更方便

10 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

GDOU-B-11-112广东海洋大学学生实验报告书实验名称实验12:综合课程名称数据库原理及应用成绩学院(系)软件学院专业软件工程班级学生姓名学号实验地点实验日期实验目的:综合使用所学知识完成实验。实验内容数据查询查询Toys表,按玩具类别(cCategoryid)统计每一类玩具的平均重量。SELECTAVG(siToyWeight*1.0)FROMToysGROUPBYcCategoryId;查询Country表,按首字母相同来分组统计,统计首字母相同的国家名称数目。查询的部分结果示例如下:SELECTLEFT(cCountry,1),COUNT(*)FROMCountryGROUPBYLEFT(cCountry,1);对于Orderdetail表,查询订购了相同玩具的订单编号。SELECTcToyId,cOrderNoFROMOrderDetailWHEREcToyIdIN(SELECTcToyIdFROMOrderDetailGROUPBYcToyIdHAVINGCOUNT(cOrderNo)>=2)ORDERBYcToyId;对于Orders表,统计使用最频繁的运输模式(cShippingmodeid)。SELECTcShippingModeId,COUNT(*)FROMOrdersGROUPBYcShippingModeIdORDERBYCOUNT(*)DESC;对于orders表,查询运输和包装费用占整个花费比重最高的订单。SELECT*FROMOrdersWHERE(mShippingCharges+mGiftWrapCharges)/mTotalCost>=ALL(SELECT(mShippingCharges+mGiftWrapCharges)/mTotalCostFROMOrders)编写一个存储过程,对于PickofMonth表操作,接收输入型参数为年份,输出参数值为该年中销售额最高的一个季度。CREATEPROCgetLargestSeason@YearINT=NULL,@SeasonINTOUTASBEGINIF(@YearISNULL)BEGINPRINT'年份不能为空'RETURN0ENDSELECT@Season=(siMonth/4)+1FROMPickOfMonthGROUPBY(siMonth/4)+1HAVINGSUM(iTotalSold)>=ALL(SELECTSUM(iTotalSold)FROMPickOfMonthWHEREiYear=@YearGROUPBY((siMonth/4)+1))ENDDECLARE@testINTEXECgetLargestSeason2001,@testOUTPUTSELECT@test编写一个触发器,实现Toybrand表和toys表有关cBrandid列的级联删除功能。CREATETRIGGERtrigDeleteBrandIdONToyBrandAFTERDELETEASBEGINDECLARE@idCHAR(3)SELECT@id=cBrandIdFROMDELETED;DELETEFROMToysWHEREcBrandId=@id;END数据定义,创建如下的表格Users列名描述数据类型约束Userid用户序号int(自动增长的列)UserName用户名varchar(20)UserPwd用户密码varchar(20)Role角色类别intEmail电子邮件varchar(50)Info信息textCREATETABLEUsers(UserIdINTIDENTITY(1,1),UserNameVARCHAR(20),UserPwdVARCHAR(20),RoleINT,EmailVARCHAR(50),InfoTEXT)创建一个存储过程,接受用户名和密码,判断输入的用户名和密码是否错误,如果错误返回状态1,并返回输出型参数消息‘用户名或密码错误’,否则返回状态0。CREATEPROCprocCheckInfo@NameVARCHAR(20),@PwdVARCHAR(20)ASBEGINIFNOTEXISTS(SELECT*FROMUsersWHEREUserName=@NameANDUserPwd=@Pwd)BEGINPRINT'用户名或密码错误';RETURN1ENDELSEBEGINRETURN0ENDEND创建一个触发器,当对Users表插入一行时,需