數(shù)據(jù)庫(kù)實(shí)驗(yàn)上機(jī)答案整理-中國(guó)石油大學(xué)-龔安_第1頁(yè)
數(shù)據(jù)庫(kù)實(shí)驗(yàn)上機(jī)答案整理-中國(guó)石油大學(xué)-龔安_第2頁(yè)
數(shù)據(jù)庫(kù)實(shí)驗(yàn)上機(jī)答案整理-中國(guó)石油大學(xué)-龔安_第3頁(yè)
數(shù)據(jù)庫(kù)實(shí)驗(yàn)上機(jī)答案整理-中國(guó)石油大學(xué)-龔安_第4頁(yè)
數(shù)據(jù)庫(kù)實(shí)驗(yàn)上機(jī)答案整理-中國(guó)石油大學(xué)-龔安_第5頁(yè)
已閱讀5頁(yè),還剩46頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、精選優(yōu)質(zhì)文檔-傾情為你奉上實(shí)驗(yàn)四 SQL練習(xí)2一、實(shí)驗(yàn)?zāi)康?1掌握索引的建立、刪除及使用; 2掌握單表查詢(xún)、連接查詢(xún)、嵌套查詢(xún)和集合查詢(xún); 3掌握插入數(shù)據(jù)、修改數(shù)據(jù)和刪除數(shù)據(jù)語(yǔ)句的非常用形式。二、實(shí)驗(yàn)學(xué)時(shí)2學(xué)時(shí)三、實(shí)驗(yàn)內(nèi)容1利用Query Analyzer完成以下操作: 在預(yù)算日期、結(jié)算日期和入賬日期上分別建立索引,并在查詢(xún)操作中體會(huì)索引的作用。 在完成第2題的查詢(xún)操作后,刪除預(yù)算日期、結(jié)算日期和入賬日期上的索引。2利用Query Analyzer完成以下操作: 采油一礦二隊(duì)2016-5-1到2016-5-28有哪些項(xiàng)目完成了預(yù)算,列出相應(yīng)明細(xì)。 采油一礦二隊(duì)2016-5-1到2016-5-2

2、8有哪些項(xiàng)目完成了結(jié)算,列出相應(yīng)明細(xì)。 采油一礦二隊(duì)2016-5-1到2016-5-28有哪些項(xiàng)目完成了結(jié)算,列出相應(yīng)的材料費(fèi)消耗明細(xì)。 采油一礦二隊(duì)2016-5-1到2016-5-28有哪些項(xiàng)目完成了入賬,列出相應(yīng)明細(xì)。 列出采油一礦二隊(duì)2016-5-1到2016-5-28總的預(yù)算金額。 列出采油一礦二隊(duì)2016-5-1到2016-5-28總的結(jié)算金額。 列出采油一礦二隊(duì)2016-5-1到2016-5-28總的入賬金額。 列出采油一礦2016-5-1到2016-5-28總的入賬金額。 有哪些人員參與了入賬操作。 列出2016-5-1到2016-5-28進(jìn)行了結(jié)算但未入賬的項(xiàng)目。 列出采油一礦

3、二隊(duì)的所有項(xiàng)目,按入賬金額從高到低排列。 列出有哪些施工單位實(shí)施了項(xiàng)目,并計(jì)算各單位所有項(xiàng)目結(jié)算金額總和。 找出消耗了材料三且消耗超過(guò)了2000元的項(xiàng)目,列出相應(yīng)消耗明細(xì)(利用子查詢(xún))。 作業(yè)公司二隊(duì)參與了哪些項(xiàng)目。 作業(yè)公司一隊(duì)和二隊(duì)參與了哪些項(xiàng)目(利用union)。 采油一礦的油井是哪些作業(yè)隊(duì)參與施工的。3利用Query Analyzer完成以下操作: 建立數(shù)據(jù)表(包含3個(gè)屬性列:施工單位、年月、結(jié)算金額)保存各個(gè)施工單位每月的結(jié)算金額總和。 用子查詢(xún)將各個(gè)施工單位每月的結(jié)算金額總和插入到所建立的數(shù)據(jù)表中。 用帶子查詢(xún)的修改語(yǔ)句將采油一礦油井作業(yè)項(xiàng)目的結(jié)算人改為“李兵”。 用帶子查詢(xún)的刪除

4、語(yǔ)句刪除采油一礦油井作業(yè)項(xiàng)目。 撤消上述兩個(gè)操作。四、實(shí)驗(yàn)報(bào)告提交實(shí)驗(yàn)內(nèi)容中用SQL語(yǔ)句完成的題目的SQL語(yǔ)句文檔及相應(yīng)的執(zhí)行結(jié)果。實(shí)驗(yàn)五 SQL練習(xí)3一、實(shí)驗(yàn)?zāi)康?1掌握基本表的刪除與修改; 2掌握實(shí)體完整性、參照完整性和用戶(hù)定義的完整性的定義、檢查和違約處理; 3掌握視圖的定義、查詢(xún)和更新,了解視圖的作用。二、實(shí)驗(yàn)學(xué)時(shí)2學(xué)時(shí)三、實(shí)驗(yàn)內(nèi)容1利用Query Analyzer完成以下操作: 向在實(shí)驗(yàn)四中所定義的數(shù)據(jù)表增加“備注”列,其數(shù)據(jù)類(lèi)型為字符型,并查看新增列的值。 對(duì)上述數(shù)據(jù)表增加主碼約束條件,并觀察在數(shù)據(jù)表中存在數(shù)據(jù)的情況下主碼約束是否創(chuàng)建成功,然后再次執(zhí)行實(shí)驗(yàn)四中實(shí)驗(yàn)內(nèi)容3.2的操作,

5、并觀察記錄執(zhí)行結(jié)果。 刪除上述數(shù)據(jù)表中的數(shù)據(jù),然后再刪除該數(shù)據(jù)表,對(duì)這兩個(gè)操作進(jìn)行比較。2利用Query Analyzer完成以下任務(wù): 對(duì)實(shí)驗(yàn)三中所定義的6個(gè)數(shù)據(jù)表增加主碼約束條件,并觀察在數(shù)據(jù)表中存在數(shù)據(jù)的情況下主碼約束是否創(chuàng)建成功,然后執(zhí)行以下2個(gè)操作,觀察并記錄實(shí)體完整性的檢查和違約處理。 insert into 材料費(fèi)表 values('zy','wm004',100,10) insert into 材料費(fèi)表 values('zy',NULL,200,10)注:“材料費(fèi)表”根據(jù)自己所命名的表名進(jìn)行相應(yīng)的替換。 對(duì)實(shí)驗(yàn)三中所定義的6個(gè)數(shù)據(jù)

6、表增加相應(yīng)的參照完整性約束,并觀察在數(shù)據(jù)表中存在數(shù)據(jù)的情況下參照完整性約束是否創(chuàng)建成功,然后執(zhí)行以下操作,觀察并記錄參照完整性的檢查和違約處理。 將(y007 油井 )插入到油水井表。 insert into 材料費(fèi)表 values('zy','wm006',100,10) 將作業(yè)項(xiàng)目編號(hào)zy的施工單位修改為“作業(yè)公司作業(yè)五隊(duì)”。 將單位代碼表中的( 采油二礦二隊(duì))刪除,查看油水井表和作業(yè)項(xiàng)目表中的數(shù)據(jù)有何變化。 將物碼表中的(wm004 材料四 袋)修改為(wm04 材料四 袋)。 撤銷(xiāo)上述成功的更新操作。注:“材料費(fèi)表”根據(jù)自己所命名的表名進(jìn)行相應(yīng)的替換。

7、對(duì)實(shí)驗(yàn)三中所定義的6個(gè)數(shù)據(jù)表按以下要求增加相應(yīng)的完整性約束條件,并觀察在數(shù)據(jù)表中存在數(shù)據(jù)的情況下完整性約束是否創(chuàng)建成功。 單位代碼表的單位名稱(chēng)不能取空值、且取值唯一。 油水井表的井別只允許取“油井”或“水井”,單位代碼不能取空值。 物碼表的名稱(chēng)規(guī)格不能取空值、且取值唯一,計(jì)量單位不能取空值。 材料費(fèi)表的消耗數(shù)量不能取空值,單價(jià)不能取空值。 對(duì)作業(yè)項(xiàng)目表根據(jù)實(shí)際應(yīng)用的要求定義適當(dāng)?shù)挠脩?hù)定義的完整性約束條件。3利用Query Analyzer完成以下操作: 定義一個(gè)視圖,用于保存作業(yè)項(xiàng)目表和材料費(fèi)表的全部列。 查詢(xún)上面定義的視圖,可任意組合查詢(xún)條件,構(gòu)造出2個(gè)查詢(xún)。 定義一個(gè)反映作業(yè)項(xiàng)目預(yù)算狀態(tài)的

8、視圖,并向該視圖插入('zy','','y005',10000,'張三', '2016-07-02'),查看作業(yè)項(xiàng)目表的數(shù)據(jù)有何變化。 撤銷(xiāo)上述成功的更新操作。四、實(shí)驗(yàn)報(bào)告提交實(shí)驗(yàn)內(nèi)容中用SQL語(yǔ)句完成的題目的SQL語(yǔ)句文檔及相應(yīng)的執(zhí)行結(jié)果。實(shí)驗(yàn)六 其它數(shù)據(jù)庫(kù)對(duì)象的管理一、實(shí)驗(yàn)?zāi)康?1掌握事務(wù)的概念、性質(zhì)、定義及使用; 2掌握游標(biāo)的概念、組成、創(chuàng)建及使用;3掌握存儲(chǔ)過(guò)程的概念、類(lèi)型、特點(diǎn)、創(chuàng)建、執(zhí)行及管理。4掌握觸發(fā)器的概念、創(chuàng)建、管理及使用。二、實(shí)驗(yàn)學(xué)時(shí)2學(xué)時(shí)三、實(shí)驗(yàn)內(nèi)容 1利用Query Analyzer進(jìn)行如

9、下事務(wù)處理練習(xí)(把下列五條語(yǔ)句作為一個(gè)事務(wù)處理,只有五條語(yǔ)句全部成功執(zhí)行才做提交,并給出成功的提示信息;否則就做回退處理,并給出具體的錯(cuò)誤提示信息):insert into 作業(yè)項(xiàng)目表 values('zy','','y005',10000,'張三', '07-01-2016' ,'07-04-2016','07-25-2016','作業(yè)公司作業(yè)一隊(duì)','堵漏',7000,2500,1000,1400,11900,'李四','0

10、7-26-2016',11900,'王五','07-28-2016')insert into 材料費(fèi)表 values('zy','wm001',200,10)insert into 材料費(fèi)表 values('zy','wm002',200,10)insert into 材料費(fèi)表 values('zy','wm003',200,10)insert into 材料費(fèi)表 values('zy','wm004',100,10)注:“作業(yè)

11、項(xiàng)目表”、“材料費(fèi)表”根據(jù)自己所命名的表名進(jìn)行相應(yīng)的替換。2利用Query Analyzer進(jìn)行如下游標(biāo)練習(xí):定義一個(gè)游標(biāo),用于存放作業(yè)項(xiàng)目表的全部行數(shù)據(jù),并打印以下表頭和各行數(shù)據(jù)。表頭:?jiǎ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é)算日期 入賬金額 入賬人 入賬日期執(zhí)行以上所定義的游標(biāo),查看是否能正確輸出結(jié)果。3利用Query Analyzer定義一個(gè)存儲(chǔ)過(guò)程,要求完成以下功能:生成某單位(單位可以是采油廠(chǎng)或采油礦或采油隊(duì))某段時(shí)間內(nèi)的成本運(yùn)行情況(輸入?yún)?shù):?jiǎn)挝淮a 起始日期 結(jié)束日期)。輸

12、出格式 *單位*時(shí)間-*時(shí)間成本運(yùn)行情況預(yù)算金額 結(jié)算金額 入賬金額 未結(jié)算金額 未入賬金額 *.* *.* *.* *.* *.*其中:未結(jié)算金額=預(yù)算金額-結(jié)算金額 未入賬金額=結(jié)算金額-入賬金額分三種情況(單位分別為:采油廠(chǎng)、采油礦、采油隊(duì))執(zhí)行以上定義的存儲(chǔ)過(guò)程,查看執(zhí)行輸出結(jié)果。4利用Query Analyzer針對(duì)作業(yè)項(xiàng)目表定義三個(gè)觸發(fā)器,分別完成以下功能: 對(duì)作業(yè)項(xiàng)目表插入一行數(shù)據(jù)時(shí),自動(dòng)計(jì)算并插入結(jié)算金額字段(結(jié)算金額=材料費(fèi)+人工費(fèi)+設(shè)備費(fèi)+其它費(fèi)用)。 當(dāng)修改作業(yè)表的某行數(shù)據(jù)時(shí)自動(dòng)修改結(jié)算金額字段。 當(dāng)刪除作業(yè)表中一行數(shù)據(jù)時(shí),自動(dòng)刪除材料費(fèi)表中相應(yīng)明細(xì)數(shù)據(jù)。 對(duì)上述3個(gè)觸發(fā)

13、器用適當(dāng)?shù)母抡Z(yǔ)句進(jìn)行驗(yàn)證,并查看結(jié)果是否達(dá)到預(yù)期結(jié)果。四、實(shí)驗(yàn)報(bào)告提交實(shí)驗(yàn)內(nèi)容中用SQL語(yǔ)句完成的題目的SQL語(yǔ)句文檔及相應(yīng)的執(zhí)行結(jié)果。實(shí)驗(yàn)七 安全機(jī)制2利用Query Analyzer完成以下操作: 建立采油一礦的作業(yè)項(xiàng)目的視圖,把該視圖的查詢(xún)權(quán)限授予給采油一礦的用戶(hù)user11,以u(píng)ser11的身份查詢(xún)?cè)撘晥D,觀察執(zhí)行情況;再以其他用戶(hù)的身份查詢(xún)?cè)撘晥D,觀察執(zhí)行情況。 創(chuàng)建一個(gè)用戶(hù)user12,以u(píng)ser12的身份執(zhí)行實(shí)驗(yàn)六中所定義的存儲(chǔ)過(guò)程,觀察記錄是否成功執(zhí)行;然后把該存儲(chǔ)過(guò)程的執(zhí)行權(quán)限授予給user12,再次以u(píng)ser12的身份執(zhí)行該存儲(chǔ)過(guò)程,觀察記錄是否成功執(zhí)行。 定義觸發(fā)器,實(shí)

14、現(xiàn)只能在工作時(shí)間內(nèi)更新“作業(yè)項(xiàng)目表”的數(shù)據(jù),然后通過(guò)選擇不同的時(shí)間進(jìn)行適當(dāng)?shù)母虏僮鱽?lái)驗(yàn)證。-實(shí)驗(yàn)3-CREATE TABLE 單位代碼表(單位代碼 CHAR(20),單位名稱(chēng) CHAR (20) );CREATE TABLE 油水井表(井號(hào) CHAR(20),井別 CHAR(20),單位代碼 CHAR(20) );CREATE TABLE 施工單位表(施工單位名稱(chēng) CHAR(20) );CREATE TABLE 物碼表(物碼 CHAR(20),名稱(chēng)規(guī)格 CHAR(20),計(jì)量單位 CHAR(20) );create table 材料費(fèi)表(單據(jù)號(hào) CHAR(20),物碼 CHAR(20),消耗

15、數(shù)量 INT,單價(jià) MONEY,);CREATE TABLE 作業(yè)項(xiàng)目表(單據(jù)號(hào) CHAR(20),預(yù)算單位 CHAR(20),井號(hào) CHAR(20),預(yù)算金額 MONEY,預(yù)算人 CHAR(20),預(yù)算日期 DATETIME,開(kāi)工日期 DATETIME,完工日期 DATETIME,施工單位 CHAR(20),施工內(nèi)容 CHAR(20),材料費(fèi) money,人工費(fèi) MONEY,設(shè)備費(fèi) MONEY,其他費(fèi)用 money,結(jié)算金額 MONEY,結(jié)算人 CHAR(20),結(jié)算日期 DATETIME,入賬金額 MONEY,入賬人 CHAR(10),入賬日期 DATETIME)-insert into

16、單位代碼表values ('1122','采油廠(chǎng)');insert into 單位代碼表values ('','采油一礦');insert into 單位代碼表values ('','采油二礦');insert into 單位代碼表values ('','采油一礦一隊(duì)');insert into 單位代碼表values ('','采油一礦二隊(duì)');insert into 單位代碼表values ('','采油一礦

17、三隊(duì)');insert into 單位代碼表values ('','采油二礦一隊(duì)');insert into 油水井表values ('y001', '油井' , '');insert into 油水井表values ('y002', '油井' , '');insert into 油水井表values ('y003', '油井' , '');insert into 油水井表values ('s001

18、9;, '水井' , '');insert into 油水井表values ('y004', '油井' , '');insert into 油水井表values ('s002', '水井' , '');insert into 油水井表values ('s003', '水井' , '');insert into 油水井表values ('y005', '油井' , '');i

19、nsert into 施工單位表values ('作業(yè)公司作業(yè)一隊(duì)');insert into 施工單位表values ('作業(yè)公司作業(yè)二隊(duì)');insert into 施工單位表values ('作業(yè)公司作業(yè)三隊(duì)');insert into 物碼表values ('wm001','材料一','噸');insert into 物碼表values ('wm002','材料二','米');insert into 物碼表values ('wm003&

20、#39;,'材料三','桶');insert into 物碼表values ('wm004','材料四','袋');insert into 材料費(fèi)表(單據(jù)號(hào),物碼,消耗數(shù)量,單價(jià))values ('zy','wm001',200,¥10);insert into 材料費(fèi)表(單據(jù)號(hào),物碼,消耗數(shù)量,單價(jià))values ('zy','wm002',200,¥10);insert into 材料費(fèi)表(單據(jù)號(hào),物碼,消耗數(shù)量,單價(jià))values ('z

21、y','wm003',200,¥10);-insert into 材料費(fèi)表(單據(jù)號(hào),物碼,消耗數(shù)量,單價(jià))values ('zy','wm001',200,¥10);insert into 材料費(fèi)表(單據(jù)號(hào),物碼,消耗數(shù)量,單價(jià))values ('zy','wm002',200,¥10);insert into 材料費(fèi)表(單據(jù)號(hào),物碼,消耗數(shù)量,單價(jià))values ('zy','wm003',250,¥10);-insert into 材料費(fèi)表(單據(jù)號(hào),物碼,消耗數(shù)量,單價(jià))

22、values ('zy','wm001',200,¥10);insert into 材料費(fèi)表(單據(jù)號(hào),物碼,消耗數(shù)量,單價(jià))values ('zy','wm002',200,¥10);insert into 材料費(fèi)表(單據(jù)號(hào),物碼,消耗數(shù)量,單價(jià))values ('zy','wm004',200,¥10);-insert into 材料費(fèi)表(單據(jù)號(hào),物碼,消耗數(shù)量,單價(jià))values ('zy','wm001',200,¥10);insert into 材料費(fèi)表(單據(jù)

23、號(hào),物碼,消耗數(shù)量,單價(jià))values ('zy','wm002',200,¥10);insert into 材料費(fèi)表(單據(jù)號(hào),物碼,消耗數(shù)量,單價(jià))values ('zy','wm004',300,¥10);-insert into 作業(yè)項(xiàng)目表values('zy','','y001',¥10000,'張三','2016/5/1','2016/5/4','2016/5/23','作業(yè)公司作業(yè)一隊(duì)',&#

24、39;堵漏',¥7000,¥2500,¥1000,¥1400,¥10900,'王五','2016/5/26',¥10900,'王五','2016/5/28');-insert into 作業(yè)項(xiàng)目表values ('zy','','s001',¥10500,'張三','2016/5/1','2016/5/6','2016/5/23','作業(yè)公司作業(yè)二隊(duì)','調(diào)剖',¥6500,¥20

25、00,¥500,¥1400,¥10400,'李四','2016/5/26',¥10400,'王五','2016/5/28');-insert into 作業(yè)項(xiàng)目表values ('zy','','s002',¥12000,'張三','2016/5/1','2016/5/4','2016/5/24','作業(yè)公司作業(yè)三隊(duì)','解堵',¥6000,¥2000,¥1000,¥1600,¥10600

26、,'李四','2016/5/26',¥10600,'趙六','2016/5/28');-insert into 作業(yè)項(xiàng)目表values('zy','','y005',¥12000,'張三','2016/5/1','2016/5/4','2016/5/28','作業(yè)公司作業(yè)三隊(duì)','防砂',¥7000,¥1000,¥2000,¥1300,¥11300,'李四','20

27、16/6/1',NULL,NULL,NULL);-begin tranupdate 作業(yè)項(xiàng)目表set 人工費(fèi) = 人工費(fèi)+200 where 單據(jù)號(hào) = 'zy'update 作業(yè)項(xiàng)目表set 結(jié)算金額 = 結(jié)算金額 +200where 單據(jù)號(hào) = 'zy'deletefrom 作業(yè)項(xiàng)目表where 入賬金額 is NULL;rollback tran-實(shí)驗(yàn)四-1create index 預(yù)算日期索引 on 作業(yè)項(xiàng)目表(預(yù)算日期);create index 結(jié)算日期索引 on 作業(yè)項(xiàng)目表(結(jié)算日期);create index 入賬日期索引 on 作業(yè)項(xiàng)目

28、表(入賬日期);-(1)select *from 作業(yè)項(xiàng)目表where 預(yù)算日期 between '2016/5/1' and '2016/5/28' and 預(yù)算單位 =(select 單位代碼from 單位代碼表where 單位名稱(chēng) = '采油一礦二隊(duì)');-another solutionselect *from 作業(yè)項(xiàng)目表,單位代碼表where 單位代碼 = 預(yù)算單位 and 單位名稱(chēng) = '采油一礦二隊(duì)'and 預(yù)算日期 between '2016/5/1' and '2016/5/28'

29、-(2)select *from 作業(yè)項(xiàng)目表where 結(jié)算日期 between '2016/5/1' and '2016/5/28' and 預(yù)算單位 =(select 單位代碼from 單位代碼表where 單位名稱(chēng) = '采油一礦二隊(duì)');-another solution-select *-from 作業(yè)項(xiàng)目表,單位代碼表-where 單位名稱(chēng)='采油一礦二隊(duì)' and 預(yù)算單位=單位代碼 and 結(jié)算日期>='2016-5-1'and 結(jié)算日期<='2016-5-28'-(3)

30、-select *from 材料費(fèi)表where 單據(jù)號(hào) = (select 單據(jù)號(hào)from 作業(yè)項(xiàng)目表where 預(yù)算日期 between '2016/5/1' and '2016/5/28' and 預(yù)算單位 =(select 單位代碼from 單位代碼表where 單位名稱(chēng) = '采油一礦二隊(duì)');-(4)-select *from 作業(yè)項(xiàng)目表where 入賬日期 between '2016/5/1' and '2016/5/28' and 預(yù)算單位 =(select 單位代碼from 單位代碼表where 單

31、位名稱(chēng) = '采油一礦二隊(duì)');-(5)-select ,sum(預(yù)算金額) 預(yù)算金額總和from 作業(yè)項(xiàng)目表where 預(yù)算日期 between '2016/5/1' and '2016/5/28' and 預(yù)算單位 =(select 單位代碼from 單位代碼表where 單位名稱(chēng) = '采油一礦二隊(duì)');-(6)-select ,sum(結(jié)算金額) 結(jié)算金額總和from 作業(yè)項(xiàng)目表where 結(jié)算日期 between '2016/5/1' and '2016/5/28' and 預(yù)算單位 =(

32、select 單位代碼from 單位代碼表where 單位名稱(chēng) = '采油一礦二隊(duì)');-(7)-select sum(入賬金額) 入賬金額總和from 作業(yè)項(xiàng)目表where 入賬日期 between '2016/5/1' and '2016/5/28' and 預(yù)算單位 =(select 單位代碼from 單位代碼表where 單位名稱(chēng) = '采油一礦二隊(duì)');-(8)-select sum(入賬金額) 采油一礦入賬金額總和from 作業(yè)項(xiàng)目表,單位代碼表where 入賬日期 between '2016/5/1'

33、 and '2016/5/28' and 預(yù)算單位 =單位代碼 and 單位名稱(chēng) like '采油一礦%'-another solutionselect sum(入賬金額) 入賬金額總和from 作業(yè)項(xiàng)目表where 入賬日期 between '2016/5/1' and '2016/5/28' and 預(yù)算單位 in(select 單位代碼from 單位代碼表where 單位名稱(chēng) like '采油一礦%');-(9)-select distinct 入賬人from 作業(yè)項(xiàng)目表where 入賬人 is not nu

34、ll;-(10)-select 單據(jù)號(hào)from 作業(yè)項(xiàng)目表where 結(jié)算日期 between '2016/5/1' and '2016/5/28' and 結(jié)算金額 is not null and 入賬金額 is null;-(11)-select 單據(jù)號(hào)from 作業(yè)項(xiàng)目表where 預(yù)算單位 =(select 單位代碼from 單位代碼表where 單位名稱(chēng) = '采油一礦二隊(duì)')order by 入賬金額 desc;-(12)-select 施工單位表.施工單位名稱(chēng),count(結(jié)算金額) 項(xiàng)目個(gè)數(shù),sum(結(jié)算金額) 結(jié)算金額總和fro

35、m 施工單位表 left join 作業(yè)項(xiàng)目表 on (施工單位表.施工單位名稱(chēng)=作業(yè)項(xiàng)目表.施工單位)group by 施工單位表.施工單位名稱(chēng);-(13)-select *from 材料費(fèi)表where 單據(jù)號(hào) = (select 單據(jù)號(hào)from 材料費(fèi)表where 物碼 = (select 物碼 from 物碼表 where 名稱(chēng)規(guī)格 = '材料三') and 消耗數(shù)量*單價(jià)>2000); -(14)- select distinct 單據(jù)號(hào) from 作業(yè)項(xiàng)目表 where 施工單位 = '作業(yè)公司作業(yè)二隊(duì)' -(15)- select distin

36、ct 單據(jù)號(hào) from 作業(yè)項(xiàng)目表 where 施工單位 = '作業(yè)公司作業(yè)一隊(duì)' union select distinct 單據(jù)號(hào) from 作業(yè)項(xiàng)目表 where 施工單位 = '作業(yè)公司作業(yè)二隊(duì)' -(16)-select distinct 施工單位from 作業(yè)項(xiàng)目表,油水井表,單位代碼表where 預(yù)算單位 = 單位代碼表.單位代碼 and 單位代碼表.單位代碼 = 油水井表.單位代碼 and 單位名稱(chēng) like '采油一礦%'-another solutionselect distinct 施工單位from 作業(yè)項(xiàng)目表where 井

37、號(hào) in( select 井號(hào)from 油水井表where 單位代碼 in ( select 單位代碼from 單位代碼表 where 單位名稱(chēng) like '采油一礦%');-drop index 預(yù)算日期索引 on 作業(yè)項(xiàng)目表;drop index 結(jié)算日期索引 on 作業(yè)項(xiàng)目表;drop index 入賬日期索引 on 作業(yè)項(xiàng)目表;-3-(1)-create table 結(jié)算金額表(施工單位 char(20),年月 varchar(7),結(jié)算金額 money);-(2)-insert into 結(jié)算金額表select 施工單位,convert(varchar(7),結(jié)算日期

38、,111),sum(結(jié)算金額)from 作業(yè)項(xiàng)目表group by 施工單位,convert(varchar(7),結(jié)算日期,111);-another solution-insert -into 結(jié)算金額表-select 施工單位,YEAR(結(jié)算日期)*100+MONTH(結(jié)算日期),sum(結(jié)算金額)-from 作業(yè)項(xiàng)目表-group by 施工單位,YEAR(結(jié)算日期)*100+MONTH(結(jié)算日期);-(3)-begin tranupdate 作業(yè)項(xiàng)目表set 結(jié)算人 = '李兵'where 預(yù)算單位 in (select 單位代碼from 單位代碼表where 單位名

39、稱(chēng) like '采油一礦%');-(4)-delete from 作業(yè)項(xiàng)目表where 預(yù)算單位 in (select 單位代碼from 單位代碼表where 單位名稱(chēng) like '采油一礦%');rollback-實(shí)驗(yàn)五-(1)-alter table 結(jié)算金額表add 備注 char(20) ;select *from 結(jié)算金額表-(2)-alter table 結(jié)算金額表alter column 施工單位 char(20) not null;alter table 結(jié)算金額表alter column 年月 varchar(7) not null;alter

40、 table 結(jié)算金額表add primary key(施工單位 ,年月);TRUNCATE TABLE 結(jié)算金額表insert into 結(jié)算金額表(施工單位 ,年月, 結(jié)算金額)select 施工單位,convert(varchar(7),結(jié)算日期,111),sum(結(jié)算金額)from 作業(yè)項(xiàng)目表group by 施工單位,convert(varchar(7),結(jié)算日期,111);-delete from 結(jié)算金額表;delete 結(jié)算金額表;-2-(1)- alter table 材料費(fèi)表alter column 單據(jù)號(hào) char(20) not null; alter table 材料

41、費(fèi)表alter column 物碼 char(20) not null;alter table 材料費(fèi)表add primary key (單據(jù)號(hào),物碼);-alter table 作業(yè)項(xiàng)目表alter column 單據(jù)號(hào) char(20) not null;alter table 作業(yè)項(xiàng)目表add primary key (單據(jù)號(hào));-alter table 單位代碼表alter column 單位代碼 char(20) not null;alter table 單位代碼表add primary key (單位代碼);-alter table 施工單位表alter column 施工單位名稱(chēng)

42、 char(20) not null;alter table 施工單位表add primary key (施工單位名稱(chēng));-alter table 物碼表alter column 物碼 char(20) not null;alter table 物碼表add primary key (物碼);-alter table 油水井表alter column 井號(hào) char(20) not NUll;alter table 油水井表add primary key (井號(hào));- begin tran insert into 材料費(fèi)表 values('zy','wm004'

43、,100,10); insert into 材料費(fèi)表 values('zy',NULL,200,10); rollback-(2)-alter table 材料費(fèi)表 add constraint a1 foreign key (單據(jù)號(hào)) references 作業(yè)項(xiàng)目表(單據(jù)號(hào));alter table 材料費(fèi)表 add constraint a2 foreign key (物碼) references 物碼表(物碼);alter table 作業(yè)項(xiàng)目表add constraint b1 foreign key(預(yù)算單位) references 單位代碼表(單位代碼);alte

44、r table 作業(yè)項(xiàng)目表add constraint b2 foreign key(井號(hào)) references 油水井表(井號(hào));alter table 作業(yè)項(xiàng)目表add constraint b3 foreign key(施工單位) references 施工單位表(施工單位名稱(chēng));-insert into 油水井表values ('y007','油井','');insert into 材料費(fèi)表 values('zy','wm006',100,10);begin tran update 作業(yè)項(xiàng)目表set 施工

45、單位 = '作業(yè)公司作業(yè)五隊(duì)'where 單據(jù)號(hào) = 'zy'delete from 單位代碼表where 單位代碼 = ''update 物碼表set 物碼 ='wm04'where 名稱(chēng)規(guī)格 = '材料四'rollback tran-(3)-alter table 單位代碼表add constraint aa1 check (單位名稱(chēng) is not null );alter table 單位代碼表add constraint uni unique(單位代碼);alter table 油水井表add constr

46、aint aa2 check(井別 in ('油井','水井');alter table 油水井表alter column 單位代碼 char(20) not null;alter table 物碼表alter column 名稱(chēng)規(guī)格 char(20) not null;alter table 物碼表add constraint uni2 unique(名稱(chēng)規(guī)格);alter table 物碼表alter column 計(jì)量單位 char(20) not null;alter table 材料費(fèi)表alter column 消耗數(shù)量 int not null ;a

47、lter table 材料費(fèi)表alter column 單價(jià) int not null ;alter table 作業(yè)項(xiàng)目表add constraint asdaf check (材料費(fèi)+人工費(fèi)+設(shè)備費(fèi)+其他費(fèi)用 = 結(jié)算金額);-3-(1)-create view 視圖一asselect 作業(yè)項(xiàng)目表.*,物碼,消耗數(shù)量,單價(jià)from 作業(yè)項(xiàng)目表,材料費(fèi)表where 作業(yè)項(xiàng)目表.單據(jù)號(hào) = 材料費(fèi)表.單據(jù)號(hào);-(2)-select 結(jié)算金額,消耗數(shù)量from 視圖一where 物碼 = 'wm003'select 預(yù)算單位,施工內(nèi)容from 視圖一where 單據(jù)號(hào) = 

48、9;zy' and 物碼 = 'wm001'-(3)-create view 預(yù)算狀態(tài)asselect 單據(jù)號(hào),預(yù)算單位,井號(hào),預(yù)算金額,預(yù)算人,預(yù)算日期from 作業(yè)項(xiàng)目表begin traninsertinto 預(yù)算狀態(tài)values ('zy','','y005',¥10000,'張三', '2016-07-02');rollback tran-實(shí)驗(yàn)六-1-begin trangoinsert into 作業(yè)項(xiàng)目表 values('zy','','

49、y005',10000,'張三', '07-01-2016' ,'07-04-2016','07-25-2016','作業(yè)公司作業(yè)一隊(duì)','堵漏',7000,2500,1000,1400,11900,'李四','07-26-2016',11900,'王五','07-28-2016')insert into 材料費(fèi)表 values('zy','wm001',200,10)insert into 材料

50、費(fèi)表 values('zy','wm002',200,10)insert into 材料費(fèi)表 values('zy','wm003',200,10)insert into 材料費(fèi)表 values('zy','wm004',100,10)if error<>0beginprint '語(yǔ)句執(zhí)行失敗'rollbackendelsebeginprint '語(yǔ)句執(zhí)行成功'commitend-2-begin trandeclare yb cursor forselec

51、t *from 作業(yè)項(xiàng)目表open ybdeclare 單據(jù)號(hào) varchar(20)declare 預(yù)算單位 varchar(20)declare 井號(hào) varchar(20)declare 預(yù)算金額 varchar(20)declare 預(yù)算人 varchar(20)declare 預(yù)算日期 varchar(20)declare 開(kāi)工日期 varchar(20)declare 完工日期 varchar(20)declare 施工單位 varchar(20)declare 施工內(nèi)容 varchar(20)declare 材料費(fèi) varchar(20)declare 人工費(fèi) varchar(2

52、0)declare 設(shè)備費(fèi) varchar(20)declare 其它費(fèi)用 varchar(20)declare 結(jié)算金額 varchar(20)declare 結(jié)算人 varchar(20)declare 結(jié)算日期 varchar(20)declare 入賬金額 varchar(20)declare 入賬人 varchar(20)declare 入賬日期 varchar(20)print '單據(jù)號(hào) '+'預(yù)算單位 '+'井號(hào) '+'預(yù)算金額 '+'預(yù)算人 '+'預(yù)算日期 '+'開(kāi)工日期 '+'完工日期 '+'施工單位 '+'施工內(nèi)容 '+'材料費(fèi) '+&#

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論