数据库系统系统原理试卷(一) (2)

雨中漫步 分享 2020-06-28 下载文档

关系中的函数依赖和多值依赖,并使你的关系能符合更高范式。

解:数据库模式

Dpartment(id,name,head_id,desc)

Salesman(empid,name,idNo,gender,birthdate,phone,dept_id) Menber(memid,name,idno,gander,address,phone) Book(bName,type,ISBN,Author,publisher,price) Sales_order(order#,signdate,sales_id,memid)

Sales_item(order#,line#,ISBN,quantity,single_price)

外键

Dpartment(head_id) →Salesman(empid) Salesman(dept_id) →Dpartment(dept_id) Sales_order(sales_id) →Salesman(empid) Sales_order(memid) →Member(id)

Sales_item(order#) →Sales_order(order#) Sales_item(ISBN) →Book(ISBN)

3. 使用SQL语言完成下面的计算:

1) 计算2001年12月签订的所有订单的订单号、签单日期、销售数量和销售金额,并按销售金额从小到大排列。

2) 计算2001年12月签订的销售金额最大的订单号、销售员姓名和销售金额。(注意

利用已有查询定义视图)

3) 计算2001年12月所有销售员的员工号、姓名及其销售金额。(注意使用外连接,

没有订单的销售员的销售金额应为0)

解:

(1)select Sales_order.order#, signdate,sum(quantity),sum(quantity* single_price) as

cost

from Sales_order inner join Sales_item on Sales_order.order#=Sales_item.order#

where signdate>=’2001-12-01’ and signdate<=’2001-12-31’

group by order.order#, signdate order by cost

(2) create view V1 as

select sales_order. sales_id, order#,sum(quantity*single_price) as COST

from sales_order inner join sales_item on sales_order.order#= Sales_item.order#

where signdate>=’2001-12-01’ and signdate<=’2001-12-31’

group by sales_order, sales_id selectorder#, name, cost

from Salesman inner join V1 on empid= sales_id where cost >=all (select max(cost) from V1)

(3) select empid, name, sum(quantity*single_price) as cost

from Salesman left outer join (sales_order inner join sales_item on sales_order.order#= Sales_item.order#) on empid=sales_id

where signdate>=’2001-12-01’ and signdate<=’2001-12-31’

6


数据库系统系统原理试卷(一) (2).doc 将本文的Word文档下载到电脑

下一篇:建立SpringMvc工程

相关推荐
相关阅读
本类排行
× 游客快捷下载通道(下载后可以自由复制和排版)

下载本文档需要支付 7

支付方式:

开通VIP包月会员 特价:29元/月

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:xxxxxx QQ:xxxxxx