1、一、注意完成每一个小题后当即贴在word文档中。二、只能在本机上提交,不能在1个机械上提交多份。3、如有类似试卷,都取消成绩。数据库附加company数据库,共有五张表,结构如下。依照要求完成以下各题。(1)/*员工人事表employee */emp_nochar(5)Not nullprimary key员工编号emp_namechar(10)员工姓名sexchar(1)性别deptchar(4)所属部门titlechar(6)职称date_hireddatetime到职日birthdayNull生日salaryint薪水addrchar(50)null住址(2)/*客户表customer
2、*/cust_id客户号cust_namechar(20)Not null,客户名称char(40)客户住址tel_no客户电话zip邮政编码(3)/*销售主表sales */order_no订单编号sale_id业务员编号tot_amtnumeric(9,2)订单金额order_date订货日期ship_date出货日期invoice_no发票号码(4)/*销货明细表sale_item */prod_id产品编号qty销售数量unit_pricenumeric(7,2)单价订单日期(5)/*产品名称表product */pro_idprod_name产品名称一、必做题1、计算出sale_it
3、em表中每一笔销售数据的销售金额,并依照销售金额的大小排序。select order_no ,Qty*Unit_price as 销售金额from sale_itemorder by 销售金额2、检索product 表和sale_item表中数量大于的相同产品的产品编号、产品名称、数量、单价。select pro_id,prod_name,Qty,Unit_pricefrom product,sale_itemwhere Qty2 and =;3、找出目前业绩未超过50000元的员工。(要求用嵌套查询)Select emp_no, emp_name, sex, ,.title, , from
4、employee,sales where = and tot_amt5000004、设置sales 表和sale_item的外键关系为“层叠”。修改sales表中发票号码为I000000004的定单,将其发票号码改成I000000054,其定货明细数据也一并修改。alter table salesadd constraint FK_sales foreign key(order_no) references sale_item(order_no)update sales set invoice_no=I000000054 where invoice_no=I0000000045、创建视图v1,
5、包括2012-8-12 00:00:00出货的信息(定单号,产品号,产品名,出货日期)create view v1asselect order_no, prod_id, prod_name, ship_datefrom sales,sale_item,product6、创建一个默许,并绑定到sale_item表的定单日期列,使得该列默以为系统当前日期。create default xq_rule exec sp_bindefault xq_rule, alter table sale_itemadd order_date datetime default getdate()二、选做题(必需从当
6、选1道题目)7、利用存储进程计算出定单编号为10003的定单的销售金额。create proc p1select sum(qty*unit_price)from sales_itemwhere order_no= 100038、编写触发器,若是修改sale_item表中的销售数量或单价字段,级联修改sales表中该定单编号的定单金额字段。1.查找出职称为领导的女员工的姓名、职称、性别。select emp_name,title,sex from employee where title=领导 and sex=女2.找出公司女业务员所接的定单。select order_nofrom sales,
7、employeewhere sex in(select sexfrom employeewhere sex=f)3.计算每一产品销售数量总和与平均销售单价。select count (qty)select prod_id from sale_item group by prod_id;select avg(unit_price)select prod_id,sum(qty) as销售数量总和, avg(unit_price) as平均销售单价 from sale_item group by prod_id4.设置sales 表和sale_item的外键关系为“层叠”。删除sales表中作废的定
8、单(其发票号码为I000000004),其定货明细数据也一并删除。delete from sales where invoice_no=5.通过大体表employee和sales,创建一个视图V1,包括业务员的编号、姓名、定单号、销售总金额。create view V1select emp_no,emp_name,sum(unit_price)as 销售总金额from employee,sales,sale_itemwhere = and =group by emp_noselect sale_id,order_no,tot_amtfrom sales6.创建一个默许约束,使得sale_ite
9、m表的定单日期默以为系统当前日期。add constraint datetime default GETDATE() for order_date7.利用存储进程计算出E0014业务员的销售总金额。from sales,sales_itemwhere sale_id=E00148.编写触发器,若是修改sale_item表中的销售数量或单价字段,级联修改sales表中该定单编号的定单金额字段。1、选取销售数量最多的前条定单定单号、数量。select top 5 order_no,qty from sale_itemorder by qty desc2、计算出一共销售了几种产品。select co
10、unt(*) from product3、查询姓名为a14的员工谈成定定单金额。(用嵌套查询)select tot_amt from sales where sale_id in (select sale_id from sales,employee where emp_name=a14 and emp_no=sale_id)4、将每一个员工的薪水上调3%。update employeeset salary=1+1*5、通过大体表sales_item,product和sales,创建一个视图V1,包括定单号,产品号,产品名称,总价钱,定单日期。create view v1(定单号,产品号,产品
11、名称,总价钱,定单日期)select order_no,prod_id,prod_name,qty*unit_price,order_datefrom sale_item,product,sales7、利用存储进程查找“刘刚”的员工编号、定单编号、销售金额。select emp_no,order_no,qty*unit_price from employee,sale_itemwhere emp_name=刘刚exec p18、创建AFTER-UPDATE触发器,在product表上创建触发器updproduct_trg,当对表product的记录进行修改时,触发器将给出修改时刻信息。一、在表sales中挑出销售金额大于等于1万元定单。select tot_am
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1