数据库考试题答案.docx
《数据库考试题答案.docx》由会员分享,可在线阅读,更多相关《数据库考试题答案.docx(10页珍藏版)》请在冰豆网上搜索。
数据库考试题答案
考试
一、题目选择:
学号最后1位
试题
1,2
第一套
3,4
第二套
5,6
第三套
7,8
第四套
9,0
第五套
二、要求
一、完成题目后将sql语句帖在对应题目下方。
二、所有完成后将word文件保留为“班级-学号后两位-姓名”方式:
如“12-03-XXX”
三、提示
一、注意完成每一个小题后当即贴在word文档中。
二、只能在本机上提交,不能在1个机械上提交多份。
3、如有类似试卷,都取消成绩。
数据库
附加company数据库,共有五张表,结构如下。
依照要求完成以下各题。
(1)/*员工人事表employee*/
emp_no
char(5)
Notnull
primarykey
员工编号
emp_name
char(10)
Notnull
员工姓名
sex
char
(1)
Notnull
性别
dept
char(4)
Notnull
所属部门
title
char(6)
Notnull
职称
date_hired
datetime
Notnull
到职日
birthday
datetime
Null
生日
salary
int
Notnull
薪水
addr
char(50)
null
住址
(2)/*客户表customer*/
cust_id
char(5)
Notnull
primarykey
客户号
cust_name
char(20)
Notnull,
客户名称
addr
char(40)
Notnull,
客户住址
tel_no
char(10)
Notnull,
客户电话
zip
char(6)
null
邮政编码
(3)/*销售主表sales*/
order_no
int
Notnull
primarykey
订单编号
cust_id
char(5)
Notnull,
客户号
sale_id
char(5)
Notnull,
业务员编号
tot_amt
numeric(9,2)
Notnull,
订单金额
order_date
datetime
Notnull,
订货日期
ship_date
datetime
Notnull,
出货日期
invoice_no
char(10)
Notnull
发票号码
(4)/*销货明细表sale_item*/
order_no
int
Notnull,
primarykey
订单编号
prod_id
char(5)
Notnull,
primarykey
产品编号
qty
int
Notnull
销售数量
unit_price
numeric(7,2)
Notnull
单价
order_date
datetime
null
订单日期
(5)/*产品名称表product*/
pro_id
char(5)
Notnull
primarykey
产品编号
prod_name
char(20)
Notnull
产品名称
第一套
一、必做题
1、计算出sale_item表中每一笔销售数据的销售金额,并依照销售金额的大小排序。
selectorder_no,Qty*Unit_priceas销售金额
fromsale_item
orderby销售金额
2、检索product表和sale_item表中数量大于的相同产品的产品编号、产品名称、数量、单价。
selectpro_id,prod_name,Qty,Unit_price
fromproduct,sale_item
whereQty>2and=;
3、找出目前业绩未超过50000元的员工。
(要求用嵌套查询)
Selectemp_no,emp_name,sex,,.title,,,,fromemployee,saleswhere=andtot_amt>500000
4、设置sales表和sale_item的外键关系为“层叠”。
修改sales表中发票号码为I000000004的定单,将其发票号码改成I000000054,其定货明细数据也一并修改。
altertablesales
addconstraintFK_salesforeignkey(order_no)referencessale_item(order_no)
updatesalessetinvoice_no='I000000054'whereinvoice_no='I000000004'
5、创建视图v1,包括2012-8-1200:
00:
00出货的信息(定单号,产品号,产品名,出货日期)
createviewv1
as
selectorder_no,prod_id,prod_name,ship_date
fromsales,sale_item,product
6、创建一个默许,并绑定到sale_item表的定单日期列,使得该列默以为系统当前日期。
createdefaultxq_rule
execsp_bindefault'xq_rule',''
altertablesale_item
addorder_datedatetimedefaultgetdate()
二、选做题(必需从当选1道题目)
7、利用存储进程计算出定单编号为10003的定单的销售金额。
createprocp1
as
selectsum(qty*unit_price)
fromsales_item
whereorder_no=’10003’
8、编写触发器,若是修改sale_item表中的销售数量或单价字段,级联修改sales表中该定单编号的定单金额字段。
第二套
一、必做题
1.查找出职称为领导的女员工的姓名、职称、性别。
selectemp_name,title,sexfromemployeewheretitle='领导'andsex='女'
2.找出公司女业务员所接的定单。
(要求用嵌套查询)
selectorder_no
fromsales,employee
wheresexin
(
selectsex
fromemployee
wheresex='f')
3.计算每一产品销售数量总和与平均销售单价。
selectcount(qty)
fromsale_item
selectprod_idfromsale_itemgroupbyprod_id;
selectavg(unit_price)
fromsale_item
selectprod_id,sum(qty)as销售数量总和,avg(unit_price)as平均销售单价
fromsale_itemgroupbyprod_id
4.设置sales表和sale_item的外键关系为“层叠”。
删除sales表中作废的定单(其发票号码为I000000004),其定货明细数据也一并删除。
altertablesales
addconstraintFK_salesforeignkey(order_no)referencessale_item(order_no)
deletefromsaleswhereinvoice_no='I000000004'
5.通过大体表employee和sales,创建一个视图V1,包括业务员的编号、姓名、定单号、销售总金额。
createviewV1
as
selectemp_no,emp_name,sum(unit_price)as销售总金额
fromemployee,sales,sale_item
where=and=
groupbyemp_no
createviewv1
as
selectsale_id,order_no,tot_amt
fromsales
6.创建一个默许约束,使得sale_item表的定单日期默以为系统当前日期。
altertablesale_item
addconstraintdatetimedefaultGETDATE()fororder_date
二、选做题(必需从当选1道题目)
7.利用存储进程计算出’E0014’业务员的销售总金额。
createprocp1
as
selectsum(qty*unit_price)
fromsales,sales_item
wheresale_id='E0014'
8.编写触发器,若是修改sale_item表中的销售数量或单价字段,级联修改sales表中该定单编号的定单金额字段。
第三套
1、选取销售数量最多的前条定单定单号、数量。
selecttop5order_no,qtyfromsale_item
orderbyqtydesc
2、计算出一共销售了几种产品。
selectcount(*)fromproduct
3、查询姓名为’a14’的员工谈成定定单金额。
(用嵌套查询)
selecttot_amtfromsaleswheresale_idin
(selectsale_idfromsales,employeewhereemp_name='a14'andemp_no=sale_id)
4、将每一个员工的薪水上调3%。
updateemployee
setsalary=1+1*
5、通过大体表sales_item,product和sales,创建一个视图V1,包括定单号,产品号,产品名称,总价钱,定单日期。
createviewv1(定单号,产品号,产品名称,总价钱,定单日期)
as
selectorder_no,prod_id,prod_name,qty*unit_price,order_date
fromsale_item,product,sales
where=and=
6、创建一个默许,并绑定到sale_item表的定单日期列,使得该列默以为系统当前日期。
createdefaultxq_rule
execsp_bindefault'xq_rule',''
altertablesale_item
addorder_datedatetimedefaultgetdate()
二、选做题(必需从当选1道题目)
7、利用存储进程查找“刘刚”的员工编号、定单编号、销售金额。
createprocp1
as
selectemp_no,order_no,qty*unit_pricefromemployee,sale_item
whereemp_name='刘刚'
execp1
8、创建AFTER-UPDATE触发器,在product表上创建触发器updproduct_trg,当对表product的记录进行修改时,触发器将给出修改时刻信息。
第四套
一、必做题
一、在表sales中挑出销售金额大于等于1万元定单。
]
selecttot_am