Oracle数据库销售系统.docx
- 文档编号:11406731
- 上传时间:2023-05-31
- 格式:DOCX
- 页数:14
- 大小:146.48KB
Oracle数据库销售系统.docx
《Oracle数据库销售系统.docx》由会员分享,可在线阅读,更多相关《Oracle数据库销售系统.docx(14页珍藏版)》请在冰点文库上搜索。
Oracle数据库销售系统
销售系统
Oracle数据库
一、创建表(要求各个表有约束,能进行表和表连接)
1、鲜花信息表flower
鲜花编号fnonumber(6)primarykey
鲜花名称fnamevarchar2(30)notnull
鲜花颜色fcolorvarchar2(10)
鲜花单价pricefloat
鲜花花语fsayvarchar2(30)
createtableflower(
fnonumber(6)primarykey,
fnamevarchar2(30)notnull,
fcolorvarchar2(10),
pricefloat,
fsayvarchar2(30)
);
2、顾客信息表customer
顾客编号cunonumber(5)primarykey
顾客名cunamevarchar2(30)notnull
顾客类型custatusvarchar2(10)
顾客住址addressvarchar2(30)
)
createtablecustomer(
cunonumber(5)primarykey,
cunamevarchar2(30)notnull,
custatusvarchar2(10),
addressvarchar2(30)
);
3、销售信息表sale
鲜花编号fnonumber(6)
顾客编号cunonumber(5)
销售日期saledatedate
是否有折扣discountvarchar2(10)
销售价格salepricefloat
createtablesale(
fnonumber(6),
cunonumber(5),
saledatedate,
discountvarchar2(10),
salepricefloat
);
增加约束(外键约束、检查约束)
altertablesaleaddconstraintfk_flower_sale_fnoforeignkey(fno)referencesflower(fno);
altertablesaleaddconstraintfk_customer_sale_cunoforeignkey(cuno)referencescustomer(cuno);
altertablesaleaddconstraintck_sale_discountcheck(discount='yes'ordiscount='no');
二、插入数据(仅插入部分数据,其他数据见用替代变量插入数据)
1.向flower表插入数据
insertintoflowervalues('000001','玫瑰','red','5','我爱你');
insertintoflowervalues('000002','百合','white','5','健康快乐');
insertintoflowervalues('000003','康乃馨','pink','4','无私的爱');
insertintoflowervalues('000004','满天星','blue','3','甘愿做你的配角');
insertintoflowervalues('000005','雏菊','yellow','6','隐藏在心中的爱');
insertintoflowervalues('000006','忘忧草','green','4','忘记烦恼,快乐相随');
2.向customer表插入数据
insertintocustomervalues('10001','大头儿子','advanced','北京');
insertintocustomervalues('10002','喜洋洋','vip','天津');
insertintocustomervalues('10003','大耳朵图图','general','上海');
insertintocustomervalues('10004','蜡笔小新','advanced','韩国');
insertintocustomervalues('10005','樱桃小丸子','advanced','旧金山');
insertintocustomervalues('10006','李媛媛','general','中北大学');
3.向sale表插入数据
insertintosalevalues('000002','10001','02-10月-14','no','159');
insertintosalevalues('000001','10002','09-9月-14','yes','239');
insertintosalevalues('000003','10003','11-11月-14','no','189');
insertintosalevalues('000002','10004','12-10月-14','yes','229');
insertintosalevalues('000001','10005','20-8月-14','yes','199');
insertintosalevalues('000003','10006','11-11月-14','no','209');
insertintosalevalues('000004','10002','20-11月-14','yes','339');
三、建立索引
1、sale表索引
createindexsaleonsale(cno,cuno,saledate,saleprice);
因为sale表时常要被使用select查询,所以为此建立索引
2、flower表索引
当花的种类繁多时,flower表被经常查询,为了方便起见则需建立索引
createindexfloweronflower(fno,fname,fcolor,price,fsay);
3、customer表索引
当拥有大量顾客时,查询customer表会十分繁琐,建立索引会使查询简单快捷
createindexcustomeroncustomer(cuno,cuname,custatus,address);
查看索引
selectindex_type,index_name,table_name,uniquenessfromuser_indexes;
四、建立视图(会根据各种需求建立视图,包括简单查询语句、表连接语句、子查询语句等建立视图)
1、为使能查询已销售的鲜花信息固建此视图
createviewsaledflowerinfoasselectf.fno,f.fname,f.fcolor,s.salepricefromflowerf,saleswhereo=s.fno;
2、为方便查看有折扣的客户的身份级别固建此视图
createviewcustomerdisinfoasselectcu.cuno,cu.cuname,cu.custatus,s.discountfromcustomercu,saleswherecu.cuno=s.cunoandcu.cunoin(selectcunofromsalewherediscount='yes');
3、为了汇总订单,建立各个订单汇总视图
createviewddasselectf.fno,f.fname,f.fcolor,s.salepricefromflowerf,saleswheref.fno=s.fno;
五、利用替代变量进行数据的插入
1.flower表
acceptv_col1prompt'请输入鲜花编号:
'
acceptv_col2prompt'请输入鲜花名称:
'
acceptv_col3prompt'请输入鲜花颜色:
'
acceptv_col4prompt'请输入鲜花标价:
'
acceptv_col5prompt'请输入鲜花花语:
'
insertintoflowervalues('&v_col1','&v_col2','&v_col3','&v_col4','&v_col5');(存入D:
\a.sql)
执行语句:
startd:
a.sql
2.customer表
acceptv_col1prompt'请输入顾客编号:
'
acceptv_col2prompt'请输入顾客姓名:
'
acceptv_col3prompt'请输入顾客类型:
'
acceptv_col4prompt'请输入顾客地址:
'
insertintocustomervalues('&v_col1','&v_col2','&v_col3','&v_col4');;(存入D:
\b.sql)
执行语句:
startd:
b.sql
3、sale表
acceptv_col1prompt'请输入鲜花编号:
'
acceptv_col2prompt'请输入顾客编号:
'
acceptv_col3prompt'请输入销售日期:
'
acceptv_col4prompt'是否有折扣:
'
acceptv_col4prompt'请输入销售价格:
'
insertintosalevalues('&v_col1','&v_col2','&v_col3','&v_col4','&v_col5');;(存入D:
\c.sql)
执行语句:
startd:
c.sql
六、.建立包(会利用游标、函数、包编写过程进行数据的查询)
----------------------------包头
createorreplacepackagepkis
proceduresaleinfo(pfnonumber,pcunonumber);
functionfun_price(pcunonumber)returnnumber;
end;
-----------------------------包体
createorreplacepackagebodypkis
proceduresaleinfo(pfnonumber,pcunonumber)is
v_fnonumber;
v_cunonumber;
v_saledatedate;
v_salepricefloat;
----------------------------游标
cursorc1(pfnonumber,pcunonumber)isselectfno,cuno,saledate,salepricefromsalewherepfno=fnoandpcuno=cuno;
begin
openc1(pfno,pcuno);
loop
fetchc1intov_fno,v_cuno,v_saledate,v_saleprice;
ifc1%foundthen
dbms_output.put_line('鲜花编号:
'||v_fno||'客户编号:
'||v_cuno||'销售时间:
'||v_saledate||'销售价格:
'||v_saleprice);
else
dbms_output.put_line('查询结束');
exit;
endif;
endloop;
closec1;
end;
----------------------函数
functionfun_price(pcunonumber)returnnumberissumpricenumber(8,3);
begin
selectsum(saleprice)intosumpricefromsalewherepcuno=cuno;
returnsumprice;
end;
end;
执行过程
setserverouton
execpk.saleinfo(000002,10001);
varrnumber;
callpk.fun_price(10001)into:
r;
printr;
七.触发器
createorreplacetriggerflower_trg_rai
afterinsertonflower
foreachrow
declare
begin
dbms_output.put_line('fno:
'||:
new.fno);
dbms_output.put_line('fname:
'||:
new.fname);
dbms_output.put_line('fcolor:
'||:
new.fcolor);
dbms_output.put_line('price'||:
new.price);
dbms_output.put_line('fsay'||:
new.fsay);
dbms_output.put_line('触发器已执行');
end;
执行语句
insertintoflower(fno,fname,fcolor,price)values('000012','郁金香','blue','15');
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Oracle 数据库 销售 系统