Oracle数据库管理与维护大作业文档格式.docx
- 文档编号:21646227
- 上传时间:2023-01-31
- 格式:DOCX
- 页数:30
- 大小:25.93KB
Oracle数据库管理与维护大作业文档格式.docx
《Oracle数据库管理与维护大作业文档格式.docx》由会员分享,可在线阅读,更多相关《Oracle数据库管理与维护大作业文档格式.docx(30页珍藏版)》请在冰豆网上搜索。
施工单位VARCHAR2(20),
施工内容VARCHAR2(20),
材料费NUMBER(10),
人工费NUMBER(10),
设备费NUMBER(10),
其它费用NUMBER(10),
结算金额NUMBER(10),
结算人VARCHAR2(20),
结算日期DATE,
入账人VARCHAR2(20),
入账日期DATE,
入账金额NUMBER
)
tablespaceSYSTEM
pctfree10
pctused40
initrans1
maxtrans255
storage
(
initial64K
next1M
minextents1
maxextentsunlimited
);
--Create/Recreateprimary,uniqueandforeignkeyconstraints
altertableZYB
addconstraintDJNOprimarykey(单据号)
usingindex
tablespaceSYSTEM
initrans2
--Grant/Revokeobjectprivileges
grantselect,insert,update,delete,references,alter,indexonZYBtoLIYAN;
--Createtable单位代码表
--由于表名用汉字表示操作时很麻烦,就取表名的每个字的首字母并冠以Z组成表名,如本例ZDWDMB
createtableZDWDMB
单位代码VARCHAR2(20)notnull,
单位名称VARCHAR2(20)notnull
altertableZDWDMB
addconstraintDWNAMEunique(单位名称)
grantselect,insert,update,delete,references,alter,indexonZDWDMBtoLIYAN;
--Createtable油水井表
createtableZYSJB
井别VARCHAR2(20)notnull,
单位代码VARCHAR2(20)notnull
altertableZYSJB
addconstraintJNOprimarykey(井号)
grantselect,insert,update,delete,references,alter,indexonZYSJBtoLIYAN;
--施工单位表
createtableZSGDWB
施工单位名称VARCHAR2(20)notnull,
施工单位号VARCHAR2(20)notnull
altertableZSGDWB
addconstraintSGNOprimarykey(施工单位号)
grantselect,insert,update,delete,references,alter,indexonZSGDWBtoLIYAN;
--物码表
createtableZWMB
物码VARCHAR2(20)notnull,
名称规格VARCHAR2(20)notnull,
计量单位VARCHAR2(20)notnull
altertableZWMB
addconstraintWNOprimarykey(物码)
grantselect,insert,update,delete,references,alter,indexonZWMBtoLIYAN;
--材料费表
createtableZCLFB
作业项目编号VARCHAR2(20)notnull,
消耗数量NUMBERnotnull,
单价NUMBERnotnull
2.利用SQLPLUS,录入以下相关的基础数据:
单位代码表:
1122采油厂
112201采油一矿112202采油二矿
112201001采油一矿1队112201002采油一矿2队112201003采油一矿3队
112202001采油二矿1队112202002采油二矿2队
油水井表:
(y001油112201001)(y002油112201001)
(y003油112201002)(s001水112201002)
(y004油112201003)(s002水112202001)
(s003水112202001)(y005油112202002)
施工单位表:
作业公司作业一队作业公司作业二队作业公司作业三队
物码表:
wm001材料一吨wm002材料二米wm003材料三桶wm004材料四袋
ZYB:
//某作业项目编号zy2009001
预算单位:
采油一矿1队井号:
y001预算金额:
10000.00预算人:
张三预算日期:
2009-5-1
//开工日期:
2009-5-4完工日期:
2009-5-25施工单位:
作业公司作业一队施工内容:
堵漏
材料费:
7000.00(其中材料一:
2000.00材料二:
2000.00材料三:
2000.00材料四:
1000.00)
人工费:
2500.00设备费:
1000.00其它费用:
1400.00结算金额:
11900.00
结算人:
李四结算日期:
2009-5-26
//入账金额:
11900.00入账人:
王五入账日期:
2009-5-28
//某作业项目编号zy2009002
采油一矿2队井号:
y003预算金额:
11000.00预算人:
2009-5-23施工单位:
作业公司作业二队施工内容:
检泵
6000.00(其中材料一:
2000.00)//隐含单价和数量
1500.00设备费:
2400.00结算金额:
10900.00
10900.00入账人:
//某作业项目编号zy2009003
s001预算金额:
10500.00预算人:
2009-5-6完工日期:
6500.00(其中材料一:
2500.00)
2000.00设备费:
500.00其它费用:
10400.00
10400.00入账人:
//某作业项目编号zy2009004
采油二矿1队井号:
s002预算金额:
12000.00预算人:
2009-5-24施工单位:
作业公司作业三队施工内容:
防砂
2000.00)
1600.00结算金额:
10600.00
10600.00入账人:
赵六入账日期:
//某作业项目编号zy2009005
采油二矿2队井号:
y005预算金额:
2009-5-28施工单位:
3000.00)
1000.00设备费:
2000.00其它费用:
1300.00结算金额:
11300.00
//(未入账!
!
这里只列举一个导出的数据表:
"
施工单位名称"
"
施工单位号"
ROWID"
作业公司作业一队"
zy01001"
AAAR7YAABAAAVChAAA"
作业公司作业二队"
zy01002"
AAAR7YAABAAAVChAAB"
作业公司作业三队"
zy01003"
AAAR7YAABAAAVChAAC"
3.利用SQLPLUS查询以下数据:
1)采油一矿2队2009-5-1到2009-5-28有哪些项目处于结算状态,列出相应材料费明细。
结算状态有值,不用管入账是否有值。
SQL>
select*fromzclfbwhere作业项目编号in
2(select单据号fromzybwhere预算单位='
采油一矿2队'
3and结算日期>
=to_date('
2009-5-1'
'
yyyy-mm-dd'
4*and结算日期<
2009-5-28'
))
作业项目编号物码消耗数量单价
------------------------------------------------------------
zy2009002wm00120010
zy2009002wm00220010
zy2009002wm00320010
zy2009003wm00120010
zy2009003wm00220010
zy2009003wm00325010
已选择6行。
已用时间:
00:
00.31
2)采油一矿2队2009-5-1到2009-5-28总的入账金额。
selectSUM(入帐金额)fromzyb
2where预算单位='
3and入账日期>
=TO_DATE('
YYYY-MM-DD'
4*AND入账日期<
SUM(入帐金额)
-------------
21300
3)采油一矿2009-5-1到2009-5-28总的入账金额。
selectsum(入帐金额)fromzyb
2where预算单位like'
采油一矿%'
4*and入账日期<
33200
4)有哪些人员参与了入账操作。
selectdistinct入账人fromzyb;
入账人
--------------------
王五
赵六
5)2009-5-1到2009-5-28有结算未入帐的项目。
项目-单据号
SELECT单据号FROMZYB
2WHERE结算日期<
3AND结算日期>
4*AND入账人isNULL
5AND结算人isnotNULL
单据号
--------------
zy2009005
6)列出采油一矿2队的所有项目,按入账金额从高到低排列。
项目-项目号
select单据号,入账金额fromzyb
3*orderby入账金额desc
单据号入账金额
------------------------------
zy200900210900
zy200900310400
7)列出有哪些单位实施了项目,并计算各单位所有项目结算金额总和。
SELECT施工单位,sum(结算金额)FROMZYB
2GROUPBY施工单位;
施工单位SUM(结算金额)
---------------------------------
作业公司作业一队11900
作业公司作业二队21300
作业公司作业三队21900
00.04
8)找出消耗了材料三且消耗超过了2000元的项目,列出相应明细(利用子查询)。
//谁的明细?
-该项目的
select*fromzybwhere单据号in
2(select作业项目编号fromzclfbwhere(消耗数量*单价)>
2000
3*and物码='
wm003'
单据号预算单位井号预算金额预算人预算日期开工日期完工日期施工单位施工内容材料费人工费设备费其它费用结算金额结算人结算日期入账人入账日期入账金额
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
zy2009003采油一矿2队s00110500张三01-5月-0906-5月-0923-5月-09作业公司作业二队检泵65002100500140010500李四26-5月-09王五28-5月-0910400
00.28
9)作业公司二队参与了哪些项目。
select单据号,施工单位FROMZYB
2*WHERE施工单位='
作业公司作业二队'
单据号施工单位
----------------------------------------
zy2009002作业公司作业二队
zy2009003作业公司作业二队
00.01
10)作业公司一队和二队参与了哪些项目(利用union)。
//集合查询
select单据号FROMZYB
2WHERE施工单位='
作业公司作业一队'
3UNION
4select单据号FROMZYB
5*WHERE施工单位='
zy2009001
zy2009002
zy2009003
4.利用SQLPLUS完成以下操作:
1)将编号为zy2009005的项目的人工费和结算金额增加100元。
--增加前的数据
select单据号,人工费,结算金额fromzyb;
单据号人工费结算金额
----------------------------------------
zy2009001250011900
zy2009002150010900
zy2009003200010400
zy2009004200010600
zy2009005100011300
00.00
updatezyb
2*set人工费=人工费+100,结算金额=结算金额+100
已更新5行。
00.14
--操作后的数据
------------------------
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Oracle 数据库 管理 维护 作业
![提示](https://static.bdocx.com/images/bang_tan.gif)