Oracle數(shù)據(jù)庫(kù)管理與維護(hù)大作業(yè)_第1頁(yè)
Oracle數(shù)據(jù)庫(kù)管理與維護(hù)大作業(yè)_第2頁(yè)
Oracle數(shù)據(jù)庫(kù)管理與維護(hù)大作業(yè)_第3頁(yè)
Oracle數(shù)據(jù)庫(kù)管理與維護(hù)大作業(yè)_第4頁(yè)
Oracle數(shù)據(jù)庫(kù)管理與維護(hù)大作業(yè)_第5頁(yè)
已閱讀5頁(yè),還剩92頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

Oracle數(shù)據(jù)庫(kù)管理與維護(hù)大作業(yè)

大作業(yè)

專業(yè)班級(jí)軟件11XX班

姓名XXX

學(xué)號(hào)XXXX

完成日期2013-XX-XX

題目要求:

將下面的題目在Oraclellg中實(shí)現(xiàn),并手寫(xiě)紙質(zhì)版報(bào)告一份,包括所有

實(shí)現(xiàn)功能的SQL*PLUS命令或SQL或PL/SQL語(yǔ)句及運(yùn)行結(jié)果。

新建一個(gè)數(shù)據(jù)庫(kù),命名為oraclezy,并完成以下功能:

記錄某采油廠對(duì)油/水井實(shí)施作業(yè)時(shí)所消耗的成本(命名為作業(yè)表zyb)。

(作業(yè):可懂得為對(duì)油/水井進(jìn)行大修)

成本的消耗包括預(yù)算、結(jié)算、入賬三個(gè)狀態(tài)。

預(yù)算:采油隊(duì)向治理部門提出作業(yè)申請(qǐng),并經(jīng)治理部門批準(zhǔn)后,由治

理部門負(fù)責(zé)錄入。

結(jié)算:某次作業(yè)施工終止后,由治理部門與施工單位共同核算各種成

本,由治理部門負(fù)責(zé)錄入。

入賬:結(jié)算后,財(cái)務(wù)部門將成本計(jì)入采油廠賬目,由財(cái)務(wù)部門錄入。

按照對(duì)以上題意的懂得,利用SQLPLUS,定義所需的數(shù)據(jù)表,包括

定義有關(guān)約束條件(主碼、外碼及其他約束)。

—Createtable

createtableZYB

(

單據(jù)號(hào)VARCHAR2(20)notnull,

預(yù)算單位VARCHAR2(20)notnull,

井號(hào)VARCHAR2(20)notnull,

預(yù)算金額NUMBER(IO)notnull,

預(yù)算人VARCHAR2(20)notnull,

預(yù)算日期DATEnotnull,

開(kāi)工日期DATE,

完工日期DATE,

施工單位VARCHAR2(20),

施工內(nèi)容VARCHAR2(20),

材料費(fèi)NUMBER(IO),

人工費(fèi)NUMBER(IO),

設(shè)備費(fèi)NUMBER(IO),

其它費(fèi)用NUMBER(IO),

結(jié)算金額NUMBER(IO),

結(jié)算人VARCHAR2(20),

結(jié)算日期DATE,

入賬人VARCHAR2(20),

入賬日期DATE,

入賬金額NUMBER

)

tablespaceSYSTEM

pctfree10

pctused40

initrans1

maxtrans255

storage

(

initial64K

nextIM

minextents1

maxextentsunlimited

);

—Create/Recreateprimary,uniqueandforeignkeyconstraints

altertableZYB

addconstraintDJNOprimarykey(單據(jù)號(hào))

usingindex

tablespaceSYSTEM

pctfree10

initrans2

maxtrans255

storage

(

initial64K

nextIM

minextents1

maxextentsunlimited

);

—Grant/Revokeobjectprivileges

grantselect,insert,update,delete,references,alter,indexonZYBtoLIY

AN;

—Createtable單位代碼表

-由于表名用漢字表示操作時(shí)專門苦惱,就取表名的每個(gè)字的首字母

并冠以Z組成表名,如本例ZDWDMB

createtableZDWDMB

(

單位代碼VARCHAR2(20)notnull,

單位名稱VARCHAR2(20)notnull

)

tablespaceSYSTEM

pctfree10

pctused40

initrans1

maxtrans255

storage

(

initial64K

nextIM

minextents1

maxextentsunlimited

);

-Create/Recreateprimary,uniqueandforeignkeyconstraints

altertableZDWDMB

addconstraintDWNAMEunique(單位名稱)

usingindex

tablespaceSYSTEM

pctfree10

initrans2

maxtrans255

storage

(

initial64K

nextIM

minextents1

maxextentsunlimited

);

—Grant/Revokeobjectprivileges

grantselect,insert,update,delete,references,alter,indexonZDWDMBt

oLIYAN;

—Createtable油水井表

createtableZYSJB

(

井號(hào)VARCHAR2(20)notnull,

井別VARCHAR2(20)notnull,

單位代碼VARCHAR2(20)notnull

)

tablespaceSYSTEM

pctfree10

pctused40

initrans1

maxtrans255

storage

initial64K

nextIM

minextents1

maxextentsunlimited

);

—Create/Recreateprimary,uniqueandforeignkeyconstraints

altertableZYSJB

addconstraintJNOprimarykey(井號(hào))

usingindex

tablespaceSYSTEM

pctfree10

initrans2

maxtrans255

storage

(

initial64K

nextIM

minextents1

maxextentsunlimited

);

—Grant/Revokeobjectprivileges

grantselect,insert,update,delete,references,alter,indexonZYSJBtoLI

YAN;

—Createtable

-施工單位表

createtableZSGDWB

(

施工單位名稱VARCHAR2(20)notnull,

施工單位號(hào)VARCHAR2(20)notnull

tablespaceSYSTEM

pctfree10

pctused40

initrans1

maxtrans255

storage

(

initial64K

nextIM

minextents1

maxextentsunlimited

);

—Create/Recreateprimary,uniqueandforeignkeyconstraints

altertableZSGDWB

addconstraintSGNOprimarykey(施工單位號(hào))

usingindex

tablespaceSYSTEM

pctfree10

initrans2

maxtrans255

storage

(

initial64K

nextIM

minextents1

maxextentsunlimited

);

—Grant/Revokeobjectprivileges

grantselect,insert,update,delete,references,alter,indexonZSGDWBto

LIYAN;

-物碼表

—Createtable

createtableZWMB

(

物碼VARCHAR2(20)notnull,

名稱規(guī)格VARCHAR2(20)notnull,

計(jì)量單位VARCHAR2(20)notnull

)

tablespaceSYSTEM

pctfree10

pctused40

initrans1

maxtrans255

storage

(

initial64K

nextIM

minextents1

maxextentsunlimited

);

-Create/Recreateprimary,uniqueandforeignkeyconstraints

altertableZWMB

addconstraintWNOprimarykey(物碼)

usingindex

tablespaceSYSTEM

pctfree10

initrans2

maxtrans255

storage

initial64K

nextIM

minextents1

maxextentsunlimited

);

—Grant/Revokeobjectprivileges

grantselect,insert,update,delete,references,alter,indexZWMBto

IYAN;

-材料費(fèi)表

—Createtable

createtableZCLFB

(

作業(yè)項(xiàng)目編號(hào)VARCHAR2(20)notnull,

物碼VARCHAR2(20)notnull,

消耗數(shù)量NUMBERnotnull,

單價(jià)NUMBERnotnull

)

tablespaceSYSTEM

pctfree10

pctused40

initrans1

maxtrans255

storage

(

initial64K

nextIM

minextents1

maxextentsunlimited

);

利用SQLPLUS,錄入以下有關(guān)的基礎(chǔ)數(shù)據(jù):

單位代碼表:1122采油廠

112201采油一礦112202采油二礦

112201001采油一礦1隊(duì)112201002采油一礦2隊(duì)112201003

采油一礦3隊(duì)

112202001采油二礦1隊(duì)112202002采油二礦2隊(duì)

油水井表:(yOOl油112201001)(y002油1122010

01)

(yOO3油112201002)(sOOl水112201002)

(y004油112201003)(s002水112202001)

(sOO3水112202001)(y005油112202002)

施工單位表:作業(yè)公司作業(yè)一隊(duì)作業(yè)公司作業(yè)二隊(duì)作業(yè)公司作

業(yè)三隊(duì)

物碼表:wmOOl材料一噸wm002材料二米wm003材料三

桶wm004材料四袋

ZYB:

〃某作業(yè)項(xiàng)目編號(hào)zy2009001

//開(kāi)工日期:2009-5-4完工日期:2009-5-25施工單位:作業(yè)公司作

業(yè)一隊(duì)施工內(nèi)容:堵漏

材料費(fèi):7000.00(其中材料一:2000.00材料二:2000.00材料三:

2000.00材料四:1000.00)

人工費(fèi):2500.00設(shè)備費(fèi):1000.00其它費(fèi)用:1400.00結(jié)算金額:

11900.00

〃某作業(yè)項(xiàng)目編號(hào)zy2009002

//開(kāi)工日期:2009-5-4完工日期:2009-5-23施工單位:作業(yè)公司作

業(yè)二隊(duì)施工內(nèi)容:檢泵

材料費(fèi):6000.00(其中材料一:2000.00材料二:2000.00材料三:

2000.00)〃隱含單價(jià)和數(shù)量

人工費(fèi):1500.00設(shè)備費(fèi):1000.00其它費(fèi)用2400.00結(jié)算金額:

10900.00

〃某作業(yè)項(xiàng)目編號(hào)zy2009003

〃開(kāi)工日期:2009-5-6完工日期:2009-5-23施工單位:作業(yè)公司作

業(yè)二隊(duì)施工內(nèi)容:檢泵

材料費(fèi):6500.00(其中材料一:2000.00材料二:2000.00材料三:

2500.00)

人工費(fèi):2000.00設(shè)備費(fèi):500.00其它費(fèi)用:1400.00結(jié)算金額:1

0400.00

〃某作業(yè)項(xiàng)目編號(hào)zy2009004

//開(kāi)工日期:2009-5-4完工日期:2009-5-24施工單位:作業(yè)公司作

業(yè)三隊(duì)施工內(nèi)容:防砂

材料費(fèi):6000.00(其中材料一:2000.00材料二:2000.00材料四:

2000.00)

人工費(fèi):2000.00設(shè)備費(fèi):1000.00其它費(fèi)用:1600.00結(jié)算金額:

10600.00

〃某作業(yè)項(xiàng)目編號(hào)zy2009005

//開(kāi)工日期:2009-5-4完工日期:2009-5-28施工單位:作業(yè)公司作

業(yè)三隊(duì)施工內(nèi)容:防砂

材料費(fèi):7000.00(其中材料一:2000.00材料二:2000.00材料四:

3000.00)

人工費(fèi):1000.00設(shè)備費(fèi):2000.00其它費(fèi)用:1300.00結(jié)算金額:

11300.00

//(未入賬?。?!)

那個(gè)地點(diǎn)只列舉一個(gè)導(dǎo)出的數(shù)據(jù)表:

"施工單位名稱","施工單位號(hào)","ROWID"

”作業(yè)公司作業(yè)一隊(duì)"JzyOlOOlAAAR7YAABAAAVChAAA"

”作業(yè)公司作業(yè)二隊(duì)","zy01002","AAAR7YAABAAAVChAAB"

”作業(yè)公司作業(yè)三^","zy01003","AAAR7YAABAAAVChAAC"

利用SQLPLUS查詢以下數(shù)據(jù):

采油一礦2隊(duì)2009-5-1到2009-5-28有哪些項(xiàng)目處于結(jié)算狀態(tài),列出相

應(yīng)材料費(fèi)明細(xì)。結(jié)算狀態(tài)有值,不用管入賬是否有值。

SQL>select*fromzclfbwhere作業(yè)項(xiàng)目編號(hào)in

2(select單據(jù)號(hào)fromzybwhere預(yù)算單位='采油一礦2隊(duì),

3and結(jié)算日期〉=to_date(2009-5-r,'yyyy-mm-dcT)

4*and結(jié)算日期<=1。_(^0(2009-5-287丫丫丫丫-111111-(1(1))

作業(yè)項(xiàng)目編號(hào)物碼消耗數(shù)量

單價(jià)

zy2009002wmOOl200

10

zy2009002wm002200

10

zy2009002wm003200

10

zy2009003wmOOl200

10

zy2009003wm002200

10

zy2009003wm003250

10

已選擇6行。

已用時(shí)刻:00:00:00.31

采油一礦2隊(duì)2009-5-1到2009-5-28總的入賬金額。

SQL>selectSUM(入帳金額)fromzyb

2where預(yù)算單位=,采油一礦2隊(duì),

3and入賬日期>=TO_DATE('2009-5-1YYYY-MM-DD')

4*AND入賬日期<=TO_DATE(2009-5-28','YYYY-MM-DD)

SUM(入帳金額)

21300

采油一礦2009-5-1到2009-5-28總的入賬金額。

SQL>selectsum(入帳金額)fromzyb

2where預(yù)算單位like'采油一礦%,

3and入賬日期〉=to_date(2009-5-l?yyyy-mm-dcT)

4*and入賬日期<=1。_(^0(2009-5-28',?丫丫丫-111111-£1(1)

SUM(入帳金額)

33200

有哪些人員參與了入賬操作。

SQL>selectdistinct入賬人fromzyb;

入賬人

王五

趙六

2009-5-1到2009-5-28有結(jié)算未入帳的項(xiàng)目。

項(xiàng)目-單據(jù)號(hào)

SQL>SELECT單據(jù)號(hào)FROMZYB

2WHERE結(jié)算日期<=TO_DATE(2009528?YYYY-MM-DD,)

3AND結(jié)算日期〉=TO_DATE(2009-5-l?YYYY-MM-DD)

4*AND入賬人isNULL

5AND結(jié)算人isnotNULL

單據(jù)號(hào)

zy2009005

列出采油一礦2隊(duì)的所有項(xiàng)目,按入賬金額從高到低排列o

項(xiàng)目-項(xiàng)目號(hào)

SQL>select單據(jù)號(hào),入賬金額fromzyb

2where預(yù)算單位=,采油一礦2隊(duì),

3*orderby入賬金額desc

單據(jù)號(hào)入賬金額

zy200900210900

zy200900310400

列出有哪些單位實(shí)施了項(xiàng)目,并運(yùn)算各單位所有項(xiàng)目結(jié)算金額總和。

SQL>SELECT施工單位,sum(結(jié)算金額)FROMZYB

2GROUPBY施工單位;

施工單位SUM(結(jié)算金額)

作業(yè)公司作業(yè)一隊(duì)11900

作業(yè)公司作業(yè)二隊(duì)21300

作業(yè)公司作業(yè)三隊(duì)21900

已用時(shí)刻:00:00:00.04

找出消耗了材料三且消耗超過(guò)了2000元的項(xiàng)目,列出相應(yīng)明細(xì)(利用子

查詢)?!ㄕl(shuí)的明細(xì)?-該項(xiàng)目的

SQL>select*fromzybwhere單據(jù)號(hào)in

2(select作業(yè)項(xiàng)目編號(hào)fromzclfbwhere(消耗數(shù)量*單價(jià))>2000

3*and物碼='wm003')

單據(jù)號(hào)預(yù)算單位井號(hào)

預(yù)算金額預(yù)算人預(yù)算日期開(kāi)工日期

完工日期施工單位施工內(nèi)容材

料費(fèi)人工費(fèi)設(shè)備費(fèi)其它費(fèi)用結(jié)算金額結(jié)算人

結(jié)算日期入賬人入賬日期入賬

金額

zy2009003采油一礦2隊(duì)sOOl

10500張三01-5月-0906-5月-09

23-5月-09作業(yè)公司作業(yè)二隊(duì)檢泵65

002100500140010500李四

26-5月-09王五28-5月-0910400

已用時(shí)刻:00:00:00.28

作業(yè)公司二隊(duì)參與了哪些項(xiàng)目。

SQL>select單據(jù)號(hào),施工單位FROMZYB

2*WHERE施工單位=,作業(yè)公司作業(yè)二隊(duì),

單據(jù)號(hào)施工單位

zy2009002作業(yè)公司作業(yè)二隊(duì)

zy2009003作業(yè)公司作業(yè)二隊(duì)

已用時(shí)刻:00:00:00.01

作業(yè)公司一隊(duì)和二隊(duì)參與了哪些項(xiàng)目(利用union)?!喜樵?/p>

SQL>select單據(jù)號(hào)FROMZYB

2WHERE施工單位㈢作業(yè)公司作業(yè)一隊(duì),

3UNION

4select單據(jù)號(hào)FROMZYB

5*WHERE施工單位士作業(yè)公司作業(yè)二隊(duì),

單據(jù)號(hào)

zy2009001

zy2009002

zy2009003

已用時(shí)刻:00:00:00.01

利用SQLPLUS完成以下操作:

將編號(hào)為zy2009005的項(xiàng)目的人工費(fèi)和結(jié)算金額增加100元。

-增加前的數(shù)據(jù)

SQL>select單據(jù)號(hào),人工費(fèi),結(jié)算金額fromzyb;

單據(jù)號(hào)人工費(fèi)結(jié)算金額

zy2009001250011900

zy2009002150010900

zy2009003200010400

zy2009004200010600

zy2009005100011300

已用時(shí)刻:00:00:00.00

SQL>updatezyb

2*set人工費(fèi)=人工費(fèi)+100,結(jié)算金額=結(jié)算金額+100

已更新5行。

已用時(shí)刻:00:00:00.14

-操作后的數(shù)據(jù)

SQL>select單據(jù)號(hào),人工費(fèi),結(jié)算金額fromzyb;

單據(jù)號(hào)人工費(fèi)結(jié)算金額

zy2009001260012000

zy2009002160011000

zy2009003210010500

zy2009004210010700

zy2009005110011400

已用時(shí)刻:00:00:00.00

刪除已結(jié)算未入帳的項(xiàng)目。(可結(jié)合查詢5)

-刪除前的數(shù)據(jù)

SQL>select單據(jù)號(hào)fromzyb;

單據(jù)號(hào)

zy2009001

zy2009002

zy2009003

zy2009004

zy2009005

zy2009006

SQL>deletefromzybwhere單據(jù)號(hào)=

2(select單據(jù)號(hào)fromzyb

3*where結(jié)算金額isnotnulland入賬金額isnull)

已刪除1行。

已用時(shí)刻:00:00:00.01

-刪除后結(jié)果

SQL>select單據(jù)號(hào)fromzyb;

單據(jù)號(hào)

zy2009001

zy2009002

zy2009003

zy2009004

zy2009006

已用時(shí)刻:00:00:00.00

利用SQLPLUS進(jìn)行如下事務(wù)處理練習(xí)(把下列五條語(yǔ)句作為一個(gè)事

務(wù)處理,只有五條語(yǔ)句全部成功執(zhí)行才做提交,并給出提示信息;否則就

做回滾處理,并給出提示信息):

insertintozybvalues('zy2009006','112202002';y00510000,<H'07-0

1-2009',

,07-04-2009','07-25-2009';^業(yè)公司作業(yè)一隊(duì)?堵漏(7000,2500,1000,140

0;李四','07-26-2009',11900,五','07-28-2009',11900)

insertintoclfbvalues('zy2009006','wm00r,200,10)

insertintoclfbvalues('zy2009006','wm002',200,10)

insertintoclfbvalues('zy2009006','wm003',200,10)

insertintoclfbvalues('zy2009006','wm004',100,10)

CLFB--材料費(fèi)表

SQL>insertintozybvalues('zy2009006','112202002';y00510000,<H

2to_date('2009-07-0r,'yyyy-mm-dd'),to_date('2009-07-04','yyyy-mm-

dd'),

3to_date(2009-07-25;yyyy-mm-ddb作業(yè)公司作業(yè)一隊(duì)?堵漏;

47000,2500,1000,1400,11900,'李K',to_dateC2009-07-26','yyyy-mm-d

d'),

5*'i5',to_dateC2009-07-287yyyy-mm-dd'),11900)

已創(chuàng)建1行。

已用時(shí)刻:00:00:00.29

SQL>savepointsi;

儲(chǔ)存點(diǎn)已創(chuàng)建。

已用時(shí)刻:00:00:00.00

SQL>insertintozclfbvalues('zy20090067wm00r,200,10);

已創(chuàng)建1行。

已用時(shí)刻:00:00:00.00

SQL>savepoints2;

儲(chǔ)存點(diǎn)已創(chuàng)建。

已用時(shí)刻:00:00:00.00

SQL>insertintozclfbvalues('zy20090067wm002',200,10);

已創(chuàng)建1行。

已用時(shí)刻:00:00:00.00

SQL>savepoints3;

儲(chǔ)存點(diǎn)已創(chuàng)建。

已用時(shí)刻:00:00:00.00

SQL>insertintozclfbvalues('zy2009006','wm003',200,10);

已創(chuàng)建1行。

已用時(shí)刻:00:00:00.00

SQL>savepoints4;

儲(chǔ)存點(diǎn)已創(chuàng)建。

已用時(shí)刻:00:00:00.01

SQL>insertintozclfbvalues('zy2009006','wm004',100,10);

已創(chuàng)建1行。

已用時(shí)刻:00:00:00.00

SQL>select*fromzybwhere單據(jù)號(hào)='zy2009006';--檢驗(yàn)是否成功

單據(jù)號(hào)預(yù)算單位井號(hào)

預(yù)算金額預(yù)算人預(yù)算日期開(kāi)工日期

完工日期施工單位施工內(nèi)容材

料費(fèi)人工費(fèi)設(shè)備費(fèi)其它費(fèi)用結(jié)算金額結(jié)算人

結(jié)算日期入賬人入賬日期入賬

金額

zy2009006112202002y005

10000張三01-7月-0904-7月-09

25-7月-09作業(yè)公司作業(yè)一隊(duì)堵漏70

0025001000140011900李四

26-7月-09王五28-7月-0911900

已用時(shí)刻:00:00:00.26

SQL>select*fromzclfbwhere作業(yè)項(xiàng)目編號(hào)='zy2009006';--檢驗(yàn)

是否成功

作業(yè)項(xiàng)目編號(hào)物碼消耗數(shù)量

單價(jià)

zy2009006wmOOl200

10

zy2009006wm002200

10

zy2009006wm003200

10

zy2009006wm004100

10

已用時(shí)刻:00:00:00.01

SQL>commit;

提交完成。

已用時(shí)刻:00:00:00.00

利用SQLPLUS進(jìn)行如下游標(biāo)練習(xí):

定義一個(gè)游標(biāo),用于存放作業(yè)表的全部行數(shù)據(jù)。并打印以下表頭和各

行數(shù)據(jù)。

表頭:?jiǎn)螕?jù)號(hào)消耗單位井號(hào)預(yù)算金額預(yù)算人預(yù)算日期開(kāi)工日期

完工日期施工單位施工內(nèi)容材料費(fèi)人工費(fèi)設(shè)備費(fèi)其它費(fèi)用結(jié)算金

額結(jié)算人結(jié)算日期入賬金額入賬人入賬日期

執(zhí)行以上所定義的游標(biāo),查看是否能正確輸出結(jié)果。

SQL>begin

2forzybm(select*fromzyb)

3loop

4dbms_output.put(單據(jù)號(hào):[zyb.單據(jù)號(hào)');

5dbms_output.put(消耗單位:|||zyb.預(yù)算單位(');

6dbms_output.put('井號(hào):'||zyb.井號(hào)/');

7dbms_output.putC預(yù)算金額:zyb.預(yù)算金額『");

9dbms_output.putC預(yù)算日期:zyb.預(yù)算日期/,);

10dbms_output.putC開(kāi)工日期:zyb.開(kāi)工日期(,);

11dbms_output.put(,完工日期:zyb.完工日期『,);

12dbms_output.putC施工單位:zyb.施工單位(,);

13dbms_output.putC施工內(nèi)容:'||zyb.施工內(nèi)容');

14dbms_output.putC材料費(fèi):|||zyb.材料費(fèi)(');

15dbms_output.putC人工費(fèi):'llzyb.人工費(fèi)『');

16dbms_output.putC設(shè)備費(fèi):丁zyb.設(shè)備費(fèi)(');

17dbms_output.put('其它費(fèi)用:,||zyb.其它費(fèi)用『,);

18dbms_output.put('結(jié)算金額:'||zyb.結(jié)算金額『');

20dbms_output.put。結(jié)算日期:,||zyb.結(jié)算日期『,);

21dbms_output.put('入賬金額:zyb.入賬金額');

23dbms_output.put_line('入賬日期:丁zyb.入賬日期[');

24endloop;

25*end;

SQL>/

PL/SQL過(guò)程已成功完成。

已用時(shí)刻:00:00:00.03

利用SQLPLUS進(jìn)行如下視圖練習(xí):

利用SQLPLUS定義一個(gè)視圖,用于儲(chǔ)存作業(yè)表和材料費(fèi)表的全部列。

利用SQLPLUS查詢?cè)撘晥D,可任意選擇查詢條件,構(gòu)造出2個(gè)查詢?!?/p>

SQL>createviewzyb_zclfb_viewas

2select*fromzyb,zclfb

3*wherezyb.單據(jù)號(hào)=zclfb.作業(yè)項(xiàng)目編號(hào)

視圖已創(chuàng)建。

已用時(shí)刻:00:00:00.32

SQL>select*fromzyb_zclfb_view;

單據(jù)號(hào)預(yù)算單位井號(hào)

預(yù)算金額預(yù)算人預(yù)算日期開(kāi)工日期

完工日期施工單位施工內(nèi)容材

料費(fèi)人工費(fèi)設(shè)備費(fèi)其它費(fèi)用結(jié)算金額結(jié)算人

結(jié)算日期入賬人入賬日期入賬

金額作業(yè)項(xiàng)目編號(hào)物碼消耗數(shù)量

單價(jià)

zy2009001采油一礦1隊(duì)yOOl

10000張三04-5月-0904-5月-09

25-5月-09作業(yè)公司作業(yè)一隊(duì)堵漏70

0026001000140012000李四

26-5月-09王五28-5月-0911900

zy2009001wmOOl2001

0

zy2009006112202002y005

10000張三01-7月-0904-7月-09

25-7月-09作業(yè)公司作業(yè)一隊(duì)堵漏70

0025001000140011900李四

26-7月-09王五28-7月-0911900

zy2009006wmOOl2001

0

zy2009006112202002y005

10000張三01-7月-0904-7月-09

25-7月-09作業(yè)公司作業(yè)一隊(duì)堵漏70

0025001000140011900李四

26-7月-09王五28-7月-0911900

zy2009006wm0022001

0

zy2009006112202002y005

10000張三01-7月-0904-7月-09

25-7月-09作業(yè)公司作業(yè)一隊(duì)堵漏70

0025001000140011900李四

26-7月-09王五28-7月-0911900

zy2009006wm0032001

0

zy2009006112202002y005

10000張三01-7月-0904-7月-09

25-7月-09作業(yè)公司作業(yè)一隊(duì)堵漏70

0025001000140011900李四

26-7月-09王五28-7月-0911900

zy2009006wm0041001

0

zy2009001采油一礦1隊(duì)yOOl

10000張三04-5月-0904-5月-09

25-5月-09作業(yè)公司作業(yè)一隊(duì)堵漏70

0026001000140012000李四

26-5月-09王五28-5月-0911900

zy2009001wm0022001

0

zy2009001采油一礦1隊(duì)yOOl

10000張三04-5月-0904-5月-09

25-5月-09作業(yè)公司作業(yè)一隊(duì)堵漏70

0026001000140012000李四

26-5月-09王五28-5月-0911900

zy2009001wm0032001

0

zy2009001采油一礦1隊(duì)yOOl

10000張三04-5月-0904-5月-09

25-5月-09作業(yè)公司作業(yè)一隊(duì)堵漏70

0026001000140012000李四

26-5月-09王五28-5月-0911900

zy2009001wm0041001

0

zy2009002采油一礦2隊(duì)y003

11000張三01-5月-0904-5月-09

23-5月-09作業(yè)公司作業(yè)二隊(duì)檢泵60

0016001000240011000李四

26-5月-王五28-5月-0910900

zy2009002wmOOl2001

0

zy2009002采油一礦2隊(duì)y003

11000張三01-5月-0904-5月-09

23-5月-09作業(yè)公司作業(yè)二隊(duì)檢泵60

0016001000240011000李四

26-5月-0<王五28-5月-0910900

zy2009002wm0022001

0

zy2009002采油一礦2隊(duì)y003

11000張三01-5月-0904-5月-09

23-5月-09作業(yè)公司作業(yè)二隊(duì)檢泵60

00160010002400111000李四

26-5月-09王五28-5月-0910900

zy2009002wm0032001

0

單據(jù)號(hào)預(yù)算單位井號(hào)

預(yù)算金額預(yù)算人預(yù)算日期開(kāi)工日期

完工日期施工單位施工內(nèi)容材

料費(fèi)人工費(fèi)設(shè)備費(fèi)其它費(fèi)用結(jié)算金額結(jié)算人

結(jié)算日期入賬人入賬日期入賬

金額作業(yè)項(xiàng)目編號(hào)物碼消耗數(shù)量

單價(jià)

zy2009003采油一礦2隊(duì)sOOl

10500張三01-5月-0906-5月-09

23-5月-09作業(yè)公司作業(yè)二隊(duì)檢泵65

002100500140010500李四

26-5月-09王五28-5月-0910400

zy2009003wmOOl2001

0

zy2009003采油一礦2隊(duì)sOOl

10500張三01-5月-0906-5月-09

23-5月-09作業(yè)公司作業(yè)二隊(duì)檢泵65

002100500140010500李四

26-5月-09王五28-5月-0910400

zy2009003wm0022001

0

zy2009003采油一礦2隊(duì)sOOl

10500張三01-5月-0906-5月-09

23-5月-09作業(yè)公司作業(yè)二隊(duì)檢泵65

002100500140010500李四

26-5月-09王五28-5月-0910400

zy2009003wm0032501

0

zy2009004采油二礦1隊(duì)s002

12000張三01-5月-0904-5月-09

24-5月-09作業(yè)公司作業(yè)三隊(duì)防砂60

0021001000160010700李四

26-5月-09趙六28-5月-0910600

zy2009004wmOOl2001

0

zy2009004采油二礦1隊(duì)s002

12000張三01-5月-0904-5月-09

24-5月-09作業(yè)公司作業(yè)三隊(duì)防砂60

0021001000160010700李四

26-5月-09趙六28-5月-0910600

zy2009004wm0022001

zy2009004采油二礦1隊(duì)s002

12000張三01-5月-0904-5月-09

24-5月-09作業(yè)公司作業(yè)三隊(duì)防砂60

0021001000160010700李四

26-5月-0(趙六28-5月-0910600

zy2009004wm0042001

0

已選擇17行。

已用時(shí)刻:00:00:00.23

SQL>select單據(jù)號(hào),預(yù)算單位,預(yù)算金額,物碼,(消耗數(shù)量*單價(jià))

2*fromzyb_zclfb_view

單據(jù)號(hào)預(yù)算單位預(yù)算金額物碼

(消耗數(shù)量*單價(jià))

zy2009001采油一礦1隊(duì)10000wmOOl

2000

zy200900611220200210000wmOOl

2000

zy200900611220200210000wm002

2000

zy200900611220200210000wm003

2000

zy200900611220200210000wm004

1000

zy2009001米油一礦1隊(duì)

10000wm002

2000

zy2009001米油一礦隊(duì)

110000wm003

2000

zy2009001采油一礦1隊(duì)10000wm004

1000

zy2009002采油一礦2隊(duì)11000wmOOl

2000

zy2009002采油一礦2隊(duì)11000wm002

2000

zy2009002采油一礦2隊(duì)11000wm003

2000

單據(jù)號(hào)預(yù)算單位預(yù)算金額物碼

(消耗數(shù)量*單價(jià))

zy2009003采油一礦2隊(duì)10500wmOOl

2000

zy2009003采油一礦2隊(duì)10500wm002

2000

zy2009003采油一礦2隊(duì)10500wm003

2500

zy2009004采油二礦1隊(duì)12000wmOOl

2000

zy2009004采油二礦1隊(duì)12000wm002

2000

zy2009004采油二礦1隊(duì)12000wm004

2000

已選擇17行。

已用時(shí)刻:00:00:00.04

利用SQLPLUS定義一個(gè)儲(chǔ)備過(guò)程,要求完成以下功能:

生成某單位(單位能夠是采油廠或采油礦或采油隊(duì))某段時(shí)刻內(nèi)的成本

運(yùn)行情形(輸入?yún)?shù):?jiǎn)挝淮a起始日期終止日期)

輸出格式***單位**時(shí)刻一**時(shí)刻成本運(yùn)行情形

預(yù)算金額結(jié)算金額入賬金額未結(jié)算金額未入賬金額

其中未結(jié)算金額=預(yù)算金額-結(jié)算金額未入賬金額=結(jié)算金額-入賬金

(格式是自己弄的,老師的沒(méi)想出來(lái)…)

SQL>CREATEORREPLACEPROCEDUREDW_CBYX(

2DWNO_PARAMINvarchar2,QSRQ_PARAMINDATE,JSRQ_P

ARAMINDATE,

3預(yù)算金額_PARAMoutnumber,結(jié)算金額_PARAMoutnumber,

4入賬金額_PARAMoutnumber,

5未結(jié)算金額_PARAMoutnumber,未入賬金額_PARAMoutnum

ber)is

6BEGIN

7selectsum(預(yù)算金額),sum(結(jié)算金額),sum(入賬金額),sum(預(yù)算金

額-結(jié)算金額),

8sum(結(jié)算金額-入賬金額)

9into預(yù)算金額_PARAM,結(jié)算金額_PARAM,入賬金額_PARAM,未

結(jié)算金額_PARAM,

10未入賬金額_PARAM

11fromzybwhere

12結(jié)算日期〉=qsrq_param

13and結(jié)算日期<=jsrq_param

14and

15預(yù)算單位in

16(select單位名稱fromzdwdmbwhere單位代碼likeDWNO_P

ARAM);

17*endDW_CBYX;

過(guò)程已創(chuàng)建。

已用時(shí)刻:00:00:00.03

SQL>execdw_cbyx(l1220100l,to_date('2009-5-r,'yyyy-mm-dd'),to_date

(2009-5-28?yyyy-mm-dd):預(yù)算金額,:結(jié)算金額,:入賬金額,:未結(jié)算金額,:未

入賬金額);

PL/SQL過(guò)程已成功完成。

已用時(shí)刻:00:00:00.01

SQL>print預(yù)算金額結(jié)算金額入賬金額未結(jié)算金額未入賬金額

預(yù)算金額

10000

結(jié)算金額

12000

入賬金額

11900

未結(jié)算金額

-2000

未入賬金額

100

SQL>execdw_cbyx(112201002,to_date('2009-5-r,'yyyy-nim-dd'),to_dat

e(2009-5-28?yyyy-mm-dd):預(yù)算金額:結(jié)算金額,:入賬金額,:未結(jié)算金額,:未

入賬金額);

PL/SQL過(guò)程已成功完成。

已用時(shí)刻:00:00:00.01

SQL>print預(yù)算金額結(jié)算金額入賬金額未結(jié)算金額未入賬金額

預(yù)算金額

21500

結(jié)算金額

21500

入賬金額

21300

未結(jié)算金額

0

未入賬金額

200

SQL>execdw_cbyx(ll2202001,to_date('2009-5-r,'yyyy-mm-dd'),to_dat

e(2009528;yyyy-mm-dd):預(yù)算金額,:結(jié)算金額,:入賬金額,:未結(jié)算金額,:未

入賬金額);

PL/SQL過(guò)程已成功完成。

已用時(shí)刻:00:00:00.01

SQL>print預(yù)算金額結(jié)算金額入賬金額未結(jié)算金額未入賬金額

預(yù)算金額

12000

結(jié)算金額

10700

入賬金額

10600

未結(jié)算金額

1300

未入賬金額

100

利用SQLPLUS針對(duì)zyb定義三個(gè)觸發(fā)器,分別完成以下功能:

對(duì)zyb插入一行數(shù)據(jù)時(shí),自動(dòng)運(yùn)算并插入結(jié)算金額字段(結(jié)算金額=材

料費(fèi)+人工費(fèi)+設(shè)備費(fèi)+其它費(fèi)用)

SQL>createorreplacetriggerinsert_op

2afterinsert

3onzyb

4begin

5updatezyb

6set結(jié)算金額=(材料費(fèi)+人工費(fèi)+設(shè)備費(fèi)+其它費(fèi)用);

7*endinsert_op;

觸發(fā)器已創(chuàng)建

已用時(shí)刻:00:00:00.03

SQL>insertintozyb(單據(jù)號(hào),預(yù)算單位,井號(hào),預(yù)算金額,預(yù)算人,預(yù)算日

期,材料費(fèi),人工費(fèi),設(shè)備費(fèi),其它費(fèi)用)

2valuesCz

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論