资源描述:
《[计算机软件及应用]数据库函数_存储过程_触发器_数据库安全的实验》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、马卫飞数据库实验作业实验十函数一、实验目的与要求n理解什么是标量函数、内嵌表值函数及多语句表值函数。n熟练掌握标量函数、内嵌表值函数、多语句表值函数的定义和调用。n基表如下所示:n二、实验内容和步骤1、函数的定义对于CPXS数据库,定义完成如下功能的函数:(1)据产品名称,查询该产品的相关信息;(函数名为FU_CP)usecpxs1go42马卫飞数据库实验作业createfunctionFU_CP(@productnamechar(30))returnstableasreturn(select*fromCPXSBrightjoinXSSonCPXSB.客户编号=XSS.客户
2、编号rightjoinCPonCPXSB.产品编号=CP.产品编号where产品名称=@productname)Gousecpxs1go42马卫飞数据库实验作业select*fromFU_CP('彩色电视机')go(2)按某年某季度统计给定产品名称的销售数量及销售金额;分别用名为FU1_CPXS内嵌表值函数和名为FU2_CPXS的多语句表值函数。usecpxs1gocreatefunctionFU12_CPXS(@yearint,@quarterint,@cpmcchar(10))returnstableasreturn(select产品名称,sum(数量)as销售数量,s
3、um(销售额)as销售总额fromcpxsb,cpwherecpxsb.产品编号=cp.产品编号and产品名称=@cpmcanddatepart(year,销售日期)=@yearanddatepart(quarter,销售日期)=@quarter)Go42马卫飞数据库实验作业usecpxs1gocreatefunctionFU2_SPXS(@yearint,@quarterint,@cpmcchar(10))returns@xsqktable(产品名称char(10),销售数量int,销售金额int)asbegininsertinto@xsqkselect产品名称,sum(
4、销售额)as销售总额,sum(数量)as销售数量fromcpxsb,cpwherecpxsb.产品编号=cp.产品编号and产品名称=@cpmcanddatepart(year,销售日期)=@yearanddatepart(quarter,销售日期)=@quartergroupby产品名称returnendgo42马卫飞数据库实验作业(3)根据销售商名称,统计其在某年某季度内销售商品名称、数量及金额。(函数名为FU3_CPXS)usecpxs1gocreatefunctionFU3_CPXS(@xssmcchar(10),@yearint,@quarterint)retur
5、nstableasreturn(select产品名称,sum(数量)as销售数量,sum(销售额)as销售总额fromCPXSB,CP,XSSwhereCPXSB.产品编号=CP.产品编号andCPXSB.客户编号=XSS.客户编号and客户名称=@xssmcanddatepart(year,销售日期)=@yearanddatepart(quarter,销售日期)=@quartergroupby产品名称)Go42马卫飞数据库实验作业2、函数的调用(1)对函数FU_CP,查询产品名称为“mp3”的产品情况;usecpxs1goselect*fromFU_CP('mp3')g4
6、2马卫飞数据库实验作业(2)对函数FU1_CPXS,查询2004年第1季度彩色电视机的销售数量和销售金额;usecpxs1goselect*fromFU321_CPXS(2004,1,'彩电电视机')(3)对函数FU2_CPXS,查询2004年第1季度洗衣机的销售数量和销售金额;select*fromFU1_CPXS(2004,1,'洗衣机')42马卫飞数据库实验作业(4)对函数FU3_CPXS,查询广电公司2004年第1季度销售的产品名称、销售数量和销售金额。三、分析与回答试说明内嵌表值函数、多语句表值函数的联系与区别答:内嵌表值函数返回的是一个表;而多语句表值函数的功能
7、是试图与存储过程的组合,可以利用多语句表值函数返回一个表,表中的内容可由复杂的逻辑和多条SQL语句构建,可以在select语句中句的from子句中使用多语句表值函数。实验十一索引、默认值约束和默认值对象一、实验内容和步骤1、索引的创建和删除(1)对CP表,在产品名称上定义一个唯一非聚簇的索引ind_cp。usecpxs1gocreateuniqueindexind_cp6oncp(产品名称)Go42马卫飞数据库实验作业(2)先创建各客户购买产品的情况VIEW1视图,包括客户编号、客户名称、产品编号、产品名称、价格,