鄱阳湖的介绍:大型数据库

来源:百度文库 编辑:九乡新闻网 时间:2024/04/26 15:12:30
2010~2011学年下学期08级             班大型数据库系统设计实验题目
 学号:                   姓名:          
产品信息数据库有3个表,产品表product、订单表order和订单详细表orderDetail。各个表的属性及意义如下:
product(pCode, pType, pName, cost, price)分别表示产品代码、产品类型、产品名称、产品成本和产品价格;
order(orderNo, custNo, orderDate, delivDate)分别表示订单号、客户编号、订单日期和交货日期;
orderDetail(orderNo, itemNo, pCode, qty, discount) 订单编号、订单序号(表示一个订单订购几种产品)、产品编号、订货数量和折扣
其中,orderDetail表中的orderNo是外键,引用order表中的属性orderNo;orderDetail表中的pCode也是外键,引用product表中的pCode。各个表的主键用下划线标出。
各个表的数据如下:
product表                                     
pCode pType pName cost price
 101 足球类 足球 85.0 110.0
102 足球类 手套 90.0 122.0
201 羽毛球类 羽球鞋 28.0 38.0
202 羽毛球类 球拍 200.0 250.0
301 游泳类 泳镜 85.0 102.0
302 游泳类 泳帽 50.0 63.0
401 健美类 拉力器 40.5 54.5
402 健美类 十磅哑铃 70.0 92.0
403 健美类 跳绳  20.0order表
orderNo custNo orderDate dilivDate
21 10001 2002-1-5 2002-1-5
22 10002 2002-1-15 2002-1-16
23 10003 2002-2-10 2002-2-20
24 10002 2002-3-4 2002-3-5
orderDetail表
orderNo itemNo pCode qty discount
21 1 101 100 0.00
21 2 102 60 0.05
21 3 202 200 0.10
22 1 301 1000 0.25
22 2 302 1000 0.00
23 1 202 20 0.00
24 1 401 800 0.15
24 2 402 500 0.20
24 3 403 500 0.00
24 4 101 200 0.00按下面的要求写出相应的PL/SQL语句,并给出运行结果(或给出测试结果)。
1. 用CREATE TABLE语句创建order表,定义属性orderNo为主键,使用ALTER TABLE添加约束delivDateOverorderDate使得表中的送货日期delivDate字段的值不小于订货日期orderDate字段的值。
2. 用CREATE TABLE定义orderDetail表,orderNo和pCode是该表的主键,定义orderNo和pCode外键作为列级约束。
3. 查询每个订单的销售量。
4. 查询未曾购买过101号产品的客户的编号。
5. 创建一个存储过程orderProduct,用于查询某个订单所订购的产品的数量,并输出订货数量。
6. 在表product上创建一个触发器change_price实现如下功能:避免修改产品价格时,修改后的价格低于其成本价,若修改的价格低于成本加,让其修改后的产品的价格等于成本价。
7. 创建一个函数total_price,返回某个订单订购产品的总金额。