




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
實驗三SQL練習(xí)1
一.單位代碼表(1)SQL語句CREATETABLEDWDMB(DWDMVARCHAR(10),DWMCVARCHAR(20));INSERTINTODWDMBVALUES('1122','采油廠');INSERTINTODWDMBVALUES('112201','采油一礦');INSERTINTODWDMBVALUES('112201001','采油一礦一隊');INSERTINTODWDMBVALUES('112201002','采油一礦二隊');INSERTINTODWDMBVALUES('112201003','采油一礦三隊');INSERTINTODWDMBVALUES('112202','采油二礦');INSERTINTODWDMBVALUES('112202001','采油二礦一隊');INSERTINTODWDMBVALUES('112202002','采油二礦二隊');(2)執(zhí)行結(jié)果二.油水井表(1)SQL語句CREATETABLEYSJB(JHVARCHAR(10),JINGBEIVARCHAR(10),DWDMVARCHAR(10));INSERTINTOYSJB(JH,JINGBEI,DWDM)VALUES('y001','油井','112201001');INSERTINTOYSJB(JH,JINGBEI,DWDM)VALUES('y002','油井','112201001');INSERTINTOYSJB(JH,JINGBEI,DWDM)VALUES('y003','油井','112201002');INSERTINTOYSJB(JH,JINGBEI,DWDM)VALUES('s001','水井','112201002');INSERTINTOYSJB(JH,JINGBEI,DWDM)VALUES('y004','油井','112201003');INSERTINTOYSJB(JH,JINGBEI,DWDM)VALUES('s002','水井','112202001');INSERTINTOYSJB(JH,JINGBEI,DWDM)VALUES('s003','水井','112202001');INSERTINTOYSJB(JH,JINGBEI,DWDM)VALUES('y005','油井','112202002');(2)執(zhí)行結(jié)果三.施工單位表(1)SQL語句CREATETABLESGDWB(SGDWMCVARCHAR(20));INSERTINTOSGDWBVALUES('作業(yè)公司作業(yè)一隊');INSERTINTOSGDWBVALUES('作業(yè)公司作業(yè)二隊');INSERTINTOSGDWBVALUES('作業(yè)公司作業(yè)三隊');(2)執(zhí)行結(jié)果四.物碼表(1)SQL語句CREATETABLEWMB(WMVARCHAR(10),MCGGVARCHAR(10),JLDWVARCHAR(10));INSERTINTOWMBVALUES('wm001','材料一','噸');INSERTINTOWMBVALUES('wm002','材料二','米');INSERTINTOWMBVALUES('wm003','材料三','桶');INSERTINTOWMBVALUES('wm004','材料四','袋');(2)執(zhí)行結(jié)果五.成本消耗表(1)SQL語句CREATETABLECBXHB(DJHVARCHAR(10),YSDWVARCHAR(10),JHVARCHAR(10),YSJEMONEY,YSRVARCHAR(10),YSRQDATETIME,KGRQDATETIME,WGRQDATETIME,SGDWVARCHAR(20),SGNRVARCHAR(10),RGFMONEY,SBFMONEY,QTFYMONEY,JSJEMONEY,JSRVARCHAR(10),JSRQDATETIME,RZJEMONEY,RZRVARCHAR(10),RZRQDATETIME);INSERTINTOCBXHBVALUES('zy2015001','112201001','y001',10000.00,'張三','2015-05-01','2015-05-04','2015-05-25','作業(yè)公司作業(yè)一隊','堵漏',2500.00,1000.00,1400.00,11900.00,'李四','2015-05-26',11900.00,'王五','2015-05-28');INSERTINTOCBXHBVALUES('zy2015002','112201002','y003',11000.00,'張三','2015-05-01','2015-05-04','2015-05-23','作業(yè)公司作業(yè)二隊','檢泵',1500.00,1000.00,2400.00,10900.00,'李四','2015-05-26',10900.00,'王五','2015-05-28');INSERTINTOCBXHBVALUES('zy2015003','112201002','s001',10500.00,'張三','2015-05-01','2015-05-06','2015-05-23','作業(yè)公司作業(yè)二隊','調(diào)剖',2000.00,500.00,1400.00,10400.00,'李四','2015-05-26',10400.00,'王五','2015-05-28');INSERTINTOCBXHBVALUES('zy2015004','112202001','s002',12000.00,'張三','2015-05-01','2015-05-04','2015-05-24','作業(yè)公司作業(yè)三隊','解堵',2000.00,1000.00,1600.00,10600.00,'李四','2015-05-26',10600.00,'趙六','2015-05-28');INSERTINTOCBXHBVALUES('zy2015005','112202002','y005',12000.00,'張三','2015-05-01','2015-05-04','2015-05-28','作業(yè)公司作業(yè)三隊','防紗',1000.00,2000.00,1300.00,11300.00,'李四','2015-06-01',NULL,NULL,NULL);/*添加clf列*/ALTRETABLECBXHBADDCLFMONEY;UPDATECBXHBSETCLF=7000.00WHEREDJH='zy2015001';UPDATECBXHBSETCLF=6000.00WHEREDJH='zy2015002';UPDATECBXHBSETCLF=6500.00WHEREDJH='zy2015003';UPDATECBXHBSETCLF=6000.00WHEREDJH='zy2015004';UPDATECBXHBSETCLF=7000.00WHEREDJH='zy2015005';(2)執(zhí)行結(jié)果六.材料費表(1)SQL語句CREATETABLECLFB(DJHVARCHAR(10),WMVARCHAR(10),XHSLINT,DJMONEY);INSERTINTOCLFB(DJH,WM,XHSL,DJ)VALUES('zy2015001','wm001',200,10);INSERTINTOCLFB(DJH,WM,XHSL,DJ)VALUES('zy2015001','wm002',200,10);INSERTINTOCLFB(DJH,WM,XHSL,DJ)VALUES('zy2015001','wm003',200,10);INSERTINTOCLFB(DJH,WM,XHSL,DJ)VALUES('zy2015001','wm004',100,10);INSERTINTOCLFB(DJH,WM,XHSL,DJ)VALUES('zy2015002','wm001',200,10);INSERTINTOCLFB(DJH,WM,XHSL,DJ)VALUES('zy2015002','wm002',200,10);INSERTINTOCLFB(DJH,WM,XHSL,DJ)VALUES('zy2015002','wm003',200,10);INSERTINTOCLFB(DJH,WM,XHSL,DJ)VALUES('zy2015003','wm001',200,10);INSERTINTOCLFB(DJH,WM,XHSL,DJ)VALUES('zy2015003','wm002',200,10);INSERTINTOCLFB(DJH,WM,XHSL,DJ)VALUES('zy2015003','wm003',250,10);INSERTINTOCLFB(DJH,WM,XHSL,DJ)VALUES('zy2015004','wm001',200,10);INSERTINTOCLFB(DJH,WM,XHSL,DJ)VALUES('zy2015004','wm002',200,10);INSERTINTOCLFB(DJH,WM,XHSL,DJ)VALUES('zy2015004','wm004',200,10);INSERTINTOCLFB(DJH,WM,XHSL,DJ)VALUES('zy2015005','wm001',200,10);INSERTINTOCLFB(DJH,WM,XHSL,DJ)VALUES('zy2015005','wm002',200,10);INSERTINTOCLFB(DJH,WM,XHSL,DJ)VALUES('zy2015005','wm004',300,10);(2)執(zhí)行結(jié)果七.利用QueryAnalyzer完成以下操作:=1\*GB2⑴將編號為zy2015005的項目的人工費和結(jié)算金額增加100元。=2\*GB2⑵刪除已經(jīng)結(jié)算但未入帳的項目。=3\*GB2⑶撤消上述兩個操作。1.SQL語句BEGINTRANSACTIONUPDATECBXHBSETRGF=RGF+100,JSJE=JSJE+100WHEREDJH='zy2015005';SELECTRGF,JSJEFROMCBXHBWHEREDJH='ZY2015005';DELETEFROMCBXHBWHERERZJEISNULL;SELECT*FROMCBXHBWHERERZJEISNULL;ROLLBACKTRANSACTIONSELECTRGF,JSJEFROMCBXHBWHEREDJH='ZY2015005';SELECT*FROMCBXHBWHERERZJEISNULL;2.執(zhí)行結(jié)果=1\*GB2⑴將編號為zy2015005的項目的人工費和結(jié)算金額增加100元。=2\*GB2⑵刪除已經(jīng)結(jié)算但未入帳的項目。=3\*GB2⑶撤消上述兩個操作。實驗四SQL練習(xí)2一.利用QueryAnalyzer完成以下操作:1.在預(yù)算日期、結(jié)算日期和入賬日期上分別建立索引,并在查詢操作中體會索引的作用。(1)SQL語句CREATEINDEXYSRQSUOYINGONCBXHB(YSRQ);CREATEINDEXJSRQSUOYINGONCBXHB(JSRQ);CREATEINDEXRZRQSUOYINGONCBXHB(RZRQ);(2)執(zhí)行結(jié)果2.在完成第2題的查詢操作后,刪除預(yù)算日期、結(jié)算日期和入賬日期上的索引。(1)SQL語句DROPINDEXYSRQSUOYINGONCBXHB;DROPINDEXJSRQSUOYINGONCBXHB;DROPINDEXRZRQSUOYINGONCBXHB;(2)執(zhí)行結(jié)果二.利用QueryAnalyzer完成以下操作:1.采油一礦二隊2015-5-1到2015-5-28有哪些項目完成了預(yù)算,列出相應(yīng)明細。(1)SQL語句SELECT*FROMDWDMB,CBXHBWHEREYSDW=DWDMANDDWMC='采油一礦二隊'ANDYSRQ>='2015-5-1'ANDYSRQ<='2015-5-28';(2)執(zhí)行結(jié)果2.采油一礦二隊2015-5-1到2015-5-28有哪些項目完成了結(jié)算,列出相應(yīng)明細。(1)SQL語句SELECT*FROMDWDMB,CBXHBWHEREYSDW=DWDMANDDWMC='采油一礦二隊'ANDJSRQBETWEEN'2015-5-1'AND'2015-5-28';(2)執(zhí)行結(jié)果3.采油一礦二隊2015-5-1到2015-5-28有哪些項目完成了結(jié)算,列出相應(yīng)的材料費消耗明細。(1)SQL語句SELECTCLFB.DJH,WM,XHSL,DJFROMDWDMB,CBXHB,CLFBWHEREYSDW=DWDMANDDWMC='采油一礦二隊'ANDJSRQBETWEEN'2015-5-1'AND'2015-5-28'ANDCLFB.DJH=CBXHB.DJH;(2)執(zhí)行結(jié)果4.采油一礦二隊2015-5-1到2015-5-28有哪些項目完成了入賬,列出相應(yīng)明細。(1)SQL語句SELECT*FROMDWDMB,CBXHBWHEREYSDW=DWDMANDDWMC='采油一礦二隊'ANDRZRQBETWEEN'2015-5-1'AND'2015-5-28';(2)執(zhí)行結(jié)果5.列出采油一礦二隊2015-5-1到2015-5-28總的預(yù)算金額。(1)SQL語句SELECTZYSJE=SUM(YSJE)FROMDWDMB,CBXHBWHEREYSDW=DWDMANDDWMC='采油一礦二隊'ANDRZRQBETWEEN'2015-5-1'AND'2015-5-28';(2)執(zhí)行結(jié)果6.列出采油一礦二隊2015-5-1到2015-5-28總的結(jié)算金額。(1)SQL語句SELECTZJSJE=SUM(JSJE)FROMDWDMB,CBXHBWHEREYSDW=DWDMANDDWMC='采油一礦二隊'ANDRZRQBETWEEN'2015-5-1'AND'2015-5-28';(2)執(zhí)行結(jié)果7.列出采油一礦二隊2015-5-1到2015-5-28總的入賬金額。(1)SQL語句SELECTZRZJE=SUM(RZJE)FROMDWDMB,CBXHBWHEREYSDW=DWDMANDDWMC='采油一礦二隊'ANDRZRQBETWEEN'2015-5-1'AND'2015-5-28';(2)執(zhí)行結(jié)果8.列出采油一礦2015-5-1到2015-5-28總的入賬金額。(1)SQL語句SELECTCYYKZRZJE=SUM(RZJE)FROMDWDMB,CBXHBWHEREYSDW=DWDMANDDWMCLIKE'采油一礦%'ANDRZRQBETWEEN'2015-5-1'AND'2015-5-28';(2)執(zhí)行結(jié)果9.有哪些人員參與了入賬操作。(1)SQL語句SELECTDISTINCTRZRFROMCBXHBWHERERZRISNOTNULL;(2)執(zhí)行結(jié)果10.列出2015-5-1到2015-5-28進行了結(jié)算但未入帳的項目。(1)SQL語句SELECTDJHFROMCBXHBWHERERZJEISNULLANDJSJEISNOTNULL;(2)執(zhí)行結(jié)果11.列出采油一礦二隊的所有項目,按入賬金額從高到低排列。(1)SQL語句SELECTDJH,RZJEFROMCBXHB,DWDMBWHEREDWMC='采油一礦二隊'ANDYSDW=DWDMORDERBYRZJEDESC;(2)執(zhí)行結(jié)果12.列出有哪些施工單位實施了項目,并計算各單位所有項目結(jié)算金額總和。(1)SQL語句SELECTDWMC,XMSL=COUNT(JSJE),GDWZJSJE=SUM(JSJE)FROMCBXHB,DWDMBWHEREYSDW=DWDMGROUPBYDWMC;(2)執(zhí)行結(jié)果13.找出消耗了材料三且消耗超過了2000元的項目,列出相應(yīng)消耗明細(利用子查詢)。(1)SQL語句SELECTDJH,WM,XHSL,DJFROMCLFBWHEREWMIN(SELECTWMFROMWMBWHEREMCGG='材料三')ANDDJ*XHSL>=2000;(2)執(zhí)行結(jié)果14.作業(yè)公司二隊參與了哪些項目。(1)SQL語句SELECTDJHFROMCBXHBWHERESGDW='作業(yè)公司作業(yè)二隊';(2)執(zhí)行結(jié)果15.作業(yè)公司一隊和二隊參與了哪些項目(利用union)。(1)SQL語句SELECTDJH,SGDWFROMCBXHBWHERESGDW='作業(yè)公司作業(yè)二隊'UNIONSELECTDJH,SGDWFROMCBXHBWHERESGDW='作業(yè)公司作業(yè)一隊';(2)執(zhí)行結(jié)果16.采油一礦的油井是哪些作業(yè)隊參與施工的。(1)SQL語句SELECTDISTINCTSGDWFROMYSJB,DWDMB,CBXHBWHERECBXHB.YSDW=DWDMB.DWDMANDDWDMB.DWDM=YSJB.DWDMANDDWMCLIKE'采油一礦%'ANDJINGBEI='油井';(2)執(zhí)行結(jié)果三.利用QueryAnalyzer完成以下操作:1.建立數(shù)據(jù)表(包含3個屬性列:★施工單位、★年月、◆結(jié)算金額)保存各個施工單位每月的結(jié)算金額總和。(1)SQL語句CREATETABLESJB(SGDWVARCHAR(20),NYVARCHAR(20),JSJEMONEY);(2)執(zhí)行結(jié)果2.用子查詢將各個施工單位每月的結(jié)算金額總和插入到所建立的數(shù)據(jù)表中。(1)SQL語句INSERTINTOSJB(SGDW,NY,JSJE)(SELECTSGDW,YEAR(JSRQ)*100+MONTH(JSRQ),SUM(JSJE)FROMCBXHBGROUPBYSGDW,YEAR(JSRQ)*100+MONTH(JSRQ));(2)執(zhí)行結(jié)果3.用帶子查詢的修改語句將采油一礦油井作業(yè)項目的結(jié)算人改為“李兵”。4.用帶子查詢的刪除語句刪除采油一礦油井作業(yè)項目。5.撤消上述兩個操作。(1)SQL語句BEGINTRANSACTIONUPDATECBXHBSETJSR='李兵'WHEREYSDWIN(SELECTDWDMFROMDWDMBWHEREDWDM=YSDWANDJHLIKE'y%'ANDDWMCLIKE'采油一礦%');SELECTDJH,YSDW,JH,JSRFROMCBXHBDELETEFROMCBXHBWHEREJHLIKE'y%'ANDYSDWIN(SELECTDWDMFROMDWDMBWHEREDWDM=YSDWANDDWMCLIKE'采油一礦%');SELECTDJH,YSDW,JHFROMCBXHB;ROLLBACKSELECTYSDW,YSDW,JH,JSRFROMCBXHB;SELECTDJH,YSDW,JHFROMCBXHB;(2)執(zhí)行結(jié)果a.用帶子查詢的修改語句將采油一礦油井作業(yè)項目的結(jié)算人改為“李兵”b.用帶子查詢的刪除語句刪除采油一礦油井作業(yè)項目。c.撤銷實驗五SQL練習(xí)3
一.利用QueryAnalyzer完成以下操作:1.向在實驗四中所定義的數(shù)據(jù)表增加“備注”列,其數(shù)據(jù)類型為字符型,并查看新增列的值。(1)SQL語句ALTERTABLESJBADDBEIZHUCHAR(20);SELECT*FROMSJB;(2)執(zhí)行結(jié)果2.對上述數(shù)據(jù)表增加主碼約束條件,并觀察在數(shù)據(jù)表中存在數(shù)據(jù)的情況下主碼約束是否創(chuàng)建成功,然后再次執(zhí)行實驗四中實驗內(nèi)容3.2的操作,并觀察記錄執(zhí)行結(jié)果。(1)SQL語句ALTERTABLESJBADDPRIMARYKEY(SGDW,NY,JSJE);TRUNCATETABLESJBSELECT*FROMSJB;INSERTINTOSJB(SGDW,NY,JSJE)(SELECTSGDW,YEAR(JSRQ)*100+MONTH(JSRQ),SUM(JSJE)FROMCBXHBGROUPBYSGDW,YEAR(JSRQ)*100+MONTH(JSRQ));(2)執(zhí)行結(jié)果3.刪除上述數(shù)據(jù)表中的數(shù)據(jù),然后再刪除該數(shù)據(jù)表,對這兩個操作進行比較。(1)SQL語句/*刪除數(shù)據(jù)表中的數(shù)據(jù)*/DELETEFROMSJBWHERESGDW='作業(yè)公司作業(yè)一隊';DELETEFROMSJBWHERESGDW='作業(yè)公司作業(yè)二隊';DELETEFROMSJBWHERESGDW='作業(yè)公司作業(yè)三隊';SELECT*FROMSJB;/*刪除表*/DROPTABLESJB;(2)執(zhí)行結(jié)果二.利用QueryAnalyzer完成以下任務(wù):1.對實驗三中所定義的6個數(shù)據(jù)表增加主碼約束條件,并觀察在數(shù)據(jù)表中存在數(shù)據(jù)的情況下主碼約束是否創(chuàng)建成功,然后執(zhí)行以下2個操作,觀察并記錄實體完整性的檢查和違約處理。=1\*GB3①insertinto材料費表values('zy2015001','wm004',100,10)=2\*GB3②insertinto材料費表values('zy2015002',NULL,200,10)注:“材料費表”根據(jù)自己所命名的表名進行相應(yīng)的替換。(1)SQL語句ALTERTABLEDWDMBALTERCOLUMNDWDMVARCHAR(10)NOTNULL;ALTERTABLEYSJBALTERCOLUMNJHVARCHAR(10)NOTNULL;ALTERTABLESGDWBALTERCOLUMNSGDWMCVARCHAR(20)NOTNULL;ALTERTABLEWMBALTERCOLUMNWMVARCHAR(10)NOTNULL;ALTERTABLECBXHBALTERCOLUMNDJHVARCHAR(10)NOTNULL;ALTERTABLECLFBALTERCOLUMNDJHVARCHAR(10)NOTNULL;ALTERTABLECLFBALTERCOLUMNWMVARCHAR(10)NOTNULL;ALTERTABLEDWDMBADDPRIMARYKEY(DWDM);ALTERTABLEYSJBADDPRIMARYKEY(JH);ALTERTABLESGDWBADDPRIMARYKEY(SGDWMC);ALTERTABLEWMBADDPRIMARYKEY(WM);ALTERTABLECBXHBADDPRIMARYKEY(DJH);ALTERTABLECLFBADDPRIMARYKEY(DJH,WM);(2)執(zhí)行結(jié)果2.對實驗三中所定義的6個數(shù)據(jù)表增加相應(yīng)的參照完整性約束,并觀察在數(shù)據(jù)表中存在數(shù)據(jù)的情況下參照完整性約束是否創(chuàng)建成功,然后執(zhí)行以下操作,觀察并記錄參照完整性的檢查和違約處理。=1\*GB3①將(y007油井112203002)插入到油水井表。=2\*GB3②insertinto材料費表values('zy2015007','wm006',100,10)=3\*GB3③將作業(yè)項目編號zy2015001的施工單位修改為“作業(yè)公司作業(yè)五隊”。=4\*GB3④將單位代碼表中的(112202002采油二礦二隊)刪除,查看油水井表和作業(yè)項目表中的數(shù)據(jù)有何變化。=5\*GB3⑤將物碼表中的(wm004材料四袋)修改為(wm04材料四袋)。=6\*GB3⑥撤銷上述成功的更新操作。注:“材料費表”根據(jù)自己所命名的表名進行相應(yīng)的替換。(1)SQL語句ALTERTABLECLFBADDCONSTRAINTCLF_1FOREIGNKEY(DJH)REFERENCESCBXHB(DJH);ALTERTABLECLFBADDCONSTRAINTCLF_2FOREIGNKEY(WM)REFERENCESWMB(WM);ALTERTABLECBXHBADDCONSTRAINTCBXHB_1FOREIGNKEY(YSDW)REFERENCESDWDMB(DWDM);ALTERTABLECBXHBADDCONSTRAINTCBXHB_2FOREIGNKEY(JH)REFERENCESYSJB(JH);ALTERTABLECBXHBADDCONSTRAINTCBXHB_3FOREIGNKEY(SGDW)REFERENCESSGDWB(SGDWMC);ALTERTABLEYSJBADDCONSTRAINTYSJB_1FOREIGNKEY(DWDM)REFERENCESDWDMB(DWDM);BEGINTRANSACTION/*①將(y007油井112203002)插入到油水井表。*/INSERTINTOYSJBVALUES('y007','油井','112203002');/*消息547,級別16,狀態(tài)0,第3行INSERT語句與FOREIGNKEY約束"YSJB_1"沖突。該沖突發(fā)生于數(shù)據(jù)庫"zyxt",表"dbo.DWDMB",column'DWDM'。*//*②insertinto材料費表values('zy2015007','wm006',100,10)*/INSERTINTOCLFBVALUES('zy2015007','wm006',100,10);/*消息547,級別16,狀態(tài)0,第9行INSERT語句與FOREIGNKEY約束"CLF_1"沖突。該沖突發(fā)生于數(shù)據(jù)庫"zyxt",表"dbo.CBXHB",column'DJH'。*//*③將作業(yè)項目編號zy2015001的施工單位修改為“作業(yè)公司作業(yè)五隊”。*/UPDATECBXHBSETSGDW='作業(yè)公司五隊'WHEREDJH='zy2015001';/*消息547,級別16,狀態(tài)0,第15行UPDATE語句與FOREIGNKEY約束"CBXHB_3"沖突。該沖突發(fā)生于數(shù)據(jù)庫"zyxt",表"dbo.SGDWB",column'SGDWMC'。*//*④將單位代碼表中的(采油二礦二隊)刪除,查看油水井表和作業(yè)項目表中的數(shù)據(jù)有何變化。*/DELETEFROMDWDMBWHEREDWDM='112202002';/*消息547,級別16,狀態(tài)0,第23行DELETE語句與REFERENCE約束"CBXHB_1"沖突。該沖突發(fā)生于數(shù)據(jù)庫"zyxt",表"dbo.CBXHB",column'YSDW'。*//*⑤將物碼表中的(wm004材料四袋)修改為(wm04材料四袋)。*/UPDATEWMBSETWM='wm04'WHEREWM='wm004';/*消息547,級別16,狀態(tài)0,第30行UPDATE語句與REFERENCE約束"CLF_2"沖突。該沖突發(fā)生于數(shù)據(jù)庫"zyxt",表"dbo.CLFB",column'WM'。*/ROLLBACK;(2)執(zhí)行結(jié)果3.對實驗三中所定義的6個數(shù)據(jù)表按以下要求增加相應(yīng)的完整性約束條件,并觀察在數(shù)據(jù)表中存在數(shù)據(jù)的情況下完整性約束是否創(chuàng)建成功。=1\*GB3①單位代碼表的單位名稱不能取空值、且取值唯一。=2\*GB3②油水井表的井別只允許取“油井”或“水井”,單位代碼不能取空值。=3\*GB3③物碼表的名稱規(guī)格不能取空值、且取值唯一,計量單位不能取空值。=4\*GB3④材料費表的消耗數(shù)量不能取空值,單價不能取空值。=5\*GB3⑤對作業(yè)項目表根據(jù)實際應(yīng)用的要求定義適當(dāng)?shù)挠脩舳x的完整性約束條件。(1)SQL語句/*①單位代碼表的單位名稱不能取空值、且取值唯一。*/ALTERTABLEDWDMBALTERCOLUMNDWMCVARCHAR(20)NOTNULL;ALTERTABLEDWDMBADDCONSTRAINTDWMCUNIQUEUNIQUE(DWMC);/*②油水井表的井別只允許取“油井”或“水井”,單位代碼不能取空值。*/ALTERTABLEYSJBADDCONSTRAINTYSJNCHECKCHECK(JINGBEIIN('油井','水井'));ALTERTABLEYSJBALTERCOLUMNDWDMVARCHAR(10)NOTNULL;/*③物碼表的名稱規(guī)格不能取空值、且取值唯一,計量單位不能取空值。*/ALTERTABLEWMBALTERCOLUMNMCGGVARCHAR(10)NOTNULL;ALTERTABLEWMBADDCONSTRAINTMCGGUNIQUEUNIQUE(MCGG);ALTERTABLEWMBALTERCOLUMNJLDWVARCHAR(10)NOTNULL;/*④材料費表的消耗數(shù)量不能取空值,單價不能取空值。*/ALTERTABLECLFBALTERCOLUMNXHSLINTNOTNULL;ALTERTABLECLFBALTERCOLUMNDJMONEYNOTNULL;/*⑤對作業(yè)項目表根據(jù)實際應(yīng)用的要求定義適當(dāng)?shù)挠脩舳x的完整性約束條件。*/ALTERTABLECBXHBALTERCOLUMNYSRVARCHAR(10)NOTNULL;(2)執(zhí)行結(jié)果三.利用QueryAnalyzer完成以下操作:1.定義一個視圖,用于保存作業(yè)項目表和材料費表的全部列。(1)SQL語句CREATEVIEWCBXHB_CLFBASSELECTCBXHB.*,WM,XHSL,DJFROMCBXHB,CLFBWHERECBXHB.DJH=CLFB.DJH;(2)執(zhí)行結(jié)果2.查詢上面定義的視圖,可任意組合查詢條件,構(gòu)造出2個查詢。(1)SQL語句SELECTDJH,WMFROMCBXHB_CLFBWHEREWM='wm002';SELECTDJH,XHSLFROMCBXHB_CLFBWHEREDJH='zy2015001'ANDWM='wm001';(2)執(zhí)行結(jié)果3.定義一個反映作業(yè)項目預(yù)算狀態(tài)的視圖,并向該視圖插入('zy2015008','112202002','y005',10000,'張三','2015-07-02'),查看作業(yè)項目表的數(shù)據(jù)有何變化。(1)SQL語句CREATEVIEWYSZTASSELECTDJH,YSDW,JH,YSJE,YSR,YSRQFROMCBXHB;(2)執(zhí)行結(jié)果4.撤銷上述成功的更新操作。(1)SQL語句BEGINTRANSACTIONGOINSERTINTOYSZT(DJH,YSDW,JH,YSJE,YSR,YSRQ)VALUES('zy2015008','112202002','y005',10000,'張三','2015-07-02');SELECT*FROMYSZTWHEREDJH='zy2015008'ROLLBACKSELECT*FROMYSZTWHEREDJH='zy2015008'(2)執(zhí)行結(jié)果實驗六其它數(shù)據(jù)庫對象的管理一.利用QueryAnalyzer進行如下事務(wù)處理練習(xí)(把下列五條語句作為一個事務(wù)處理,只有五條語句全部成功執(zhí)行才做提交,并給出成功的提示信息;否則就做回退處理,并給出具體的錯誤提示信息。insertinto作業(yè)項目表values('zy2015006','112202002','y005',10000,'張三','07-01-2015','07-04-2015','07-25-2015','作業(yè)公司作業(yè)一隊','堵漏',7000,2500,1000,1400,11900,'李四','07-26-2015',11900,'王五','07-28-2015')insertinto材料費表values('zy2015006','wm001',200,10)insertinto材料費表values('zy2015006','wm002',200,10)insertinto材料費表values('zy2015006','wm003',200,10)insertinto材料費表values('zy2015006','wm004',100,10)注:“作業(yè)項目表”、“材料費表”根據(jù)自己所命名的表名進行相應(yīng)的替換。(1)SQL語句BEGINTRANSACTIONGOINSERTINTOCBXHBVALUES('zy2015006','112202002','y005',10000,'張三','2015-07-01','2015-07-04','2015-07-25','作業(yè)公司作業(yè)一隊','堵漏',2500,1000,1400,11900,'李四','2015-07-26',11900,'王五','07-28-2015',7000)INSERTINTOCLFBVALUES('zy2015006','wm001',200,10);INSERTINTOCLFBVALUES('zy2015006','wm002',200,10);INSERTINTOCLFBVALUES('zy2015006','wm003',200,10);INSERTINTOCLFBVALUES('zy2015006','wm004',100,10);IF@@ERROR<>0BEGINPRINT'語句執(zhí)行失敗'ROLLBACKENDELSEBEGINPRINT'語句執(zhí)行成功'COMMITEND(2)執(zhí)行結(jié)果二.利用QueryAnalyzer進行如下游標練習(xí):定義一個游標,用于存放作業(yè)項目表的全部行數(shù)據(jù),并打印以下表頭和各行數(shù)據(jù)。表頭:單據(jù)號預(yù)算單位井號預(yù)算金額預(yù)算人預(yù)算日期開工日期完工日期施工單位施工內(nèi)容材料費人工費設(shè)備費其它費用結(jié)算金額結(jié)算人結(jié)算日期入賬金額入賬人入賬日期執(zhí)行以上所定義的游標,查看是否能正確輸出結(jié)果(1)SQL語句BEGINTRANSACTIONDECLAREZYXMB_YBCURSORFORSELECT*FROMCBXHBOPENZYXMB_YBDECLARE@DJHVARCHAR(10)DECLARE@YSDWVARCHAR(10)DECLARE@JHVARCHAR(10)DECLARE@YSJEVARCHAR(10)DECLARE@YSRVARCHAR(10)DECLARE@YSRQVARCHAR(20)DECLARE@KGRQVARCHAR(20)DECLARE@WGRQVARCHAR(20)DECLARE@SGDWVARCHAR(20)DECLARE@SGNRVARCHAR(10)DECLARE@RGFVARCHAR(10)DECLARE@SBFVARCHAR(10)DECLARE@QTFYVARCHAR(10)DECLARE@JSJEVARCHAR(10)DECLARE@JSRVARCHAR(10)DECLARE@JSRQVARCHAR(20)DECLARE@RZJEVARCHAR(10)DECLARE@RZRVARCHAR(10)DECLARE@RZRQVARCHAR(20)DECLARE@CLFVARCHAR(10)PRINT'作業(yè)項目編號'+'預(yù)算單位'+'井號'+'預(yù)算金額'+'預(yù)算人'+'預(yù)算日期'+'開工日期'+'完工日期'+'施工單位名稱'+'施工內(nèi)容'+'人工費'+'設(shè)備費'+'其它費用'+'結(jié)算金額'+'結(jié)算人'+'結(jié)算日期'+'入賬金額'+'入賬人'+'入賬日期'+'材料費'FETCHNEXTFROMZYXMB_YBINTO@DJH,@YSDW,@JH,@YSJE,@YSR,@YSRQ,@KGRQ,@WGRQ,@SGDW,@SGNR,@RGF,@SBF,@QTFY,@JSJE,@JSR,@JSRQ,@RZJE,@RZR,@RZRQ,@CLFWHILE(@@FETCH_STATUS=0)BEGINPRINT''+@DJH+''+@YSDW+''+@JH+''+@YSJE+''+@YSR+''+@YSRQ+''+@KGRQ+''+@WGRQ+''+@SGDW+''+@SGNR+''+@RGF+''+@SBF+''+@QTFY+''+@JSJE+''+@JSR+''+@JSRQ+''+@RZJE+''+@RZR+''+@RZRQ+''+@CLFFETCHNEXTFROMZYXMB_YBINTO@DJH,@YSDW,@JH,@YSJE,@YSR,@YSRQ,@KGRQ,@WGRQ,@SGDW,@SGNR,@RGF,@SBF,@QTFY,@JSJE,@JSR,@JSRQ,@RZJE,@RZR,@RZRQ,@CLFENDROLLBACK;(2)執(zhí)行結(jié)果三.利用QueryAnalyzer定義一個存儲過程,要求完成以下功能:生成某單位(單位可以是采油廠或采油礦或采油隊)某段時間內(nèi)的成本運行情況(輸入?yún)?shù):單位代碼起始日期結(jié)束日期)。輸出格式***單位**時間---**時間成本運行情況預(yù)算金額結(jié)算金額入賬金額未結(jié)算金額未入賬金額****.******.******.******.******.**其中:未結(jié)算金額=預(yù)算金額-結(jié)算金額未入賬金額=結(jié)算金額-入賬金額分三種情況(單位分別為:采油廠、采油礦、采油隊)執(zhí)行以上定義的存儲過程,查看執(zhí)行輸出結(jié)果。(1)SQL語句IFOBJECT_ID('_someDepCost','p')isnotnullDROPPROCEDURE_someDepCost;GOCREATEPROCEDURE_someDepCost@DW_DMVARCHAR(10),@STARTTIMEDATETIME,@ENDTIMEDATETIMEASDECLARE@DW_MCVARCHAR(20);DECLARE@YS_MONEYMONEY,@JS_MONEYMONEY,@RZ_MONEYMONEY,@WJS_MONEYMONEY,@WRZ_MONEYMONEY;SELECT@DW_MC=DWMCFROMDWDMBWHEREDWDM=@DW_DMSET@YS_MONEY=(SELECTSUM(YSJE)FROMCBXHBWHEREYSDWLIKE@DW_DM+'%'AND(YSRQBETWEEN@STARTTIMEAND@ENDTIME))SET@JS_MONEY=(SELECTSUM(JSJE)FROMCBXHBWHEREYSDWLIKE@DW_DM+'%'AND(JSRQBETWEEN@STARTTIMEAND@ENDTIME))SET@RZ_MONEY=(SELECTSUM(RZJE)FROMCBXHBWHEREYSDWLIKE@DW_DM+'%'AND(RZRQBETWEEN@STARTTIMEAND@ENDTIME))SET@WJS_MONEY=(SELECTSUM(YSJE)FROMCBXHBWHERE(JSRQBETWEEN@STARTTIMEAND@ENDTIME)AND(JSJEISNULL))SET@WRZ_MONEY=(SELECTSUM(JSJE)FROMCBXHBWHERE(JSRQBETWEEN@STARTTIMEAND@ENDTIME)AND(RZJEISNULL))--NULL處理SET@WJS_MONEY=@YS_MONEY-@JS_MONEYSET@WRZ_MONEY=@JS_MONEY-@RZ_MONEYIF@YS_MONEYISNULLSET@YS_MONEY=0IF@JS_MONEYISNULLSET@JS_MONEY=0IF@RZ_MONEYISNULLSET@RZ_MONEY=0IF@WJS_MONEYISNULLSET@WJS_MONEY=0IF@WRZ_MONEYISNULLSET@WRZ_MONEY=0DECLARE@RESULTVARCHAR(100)SET@RESULT=CONVERT(VARCHAR,@YS_MONEY)+''+CONVERT(VARCHAR,@JS_MONEY)+''+CONVERT(VARCHAR,@RZ_MONEY)+''+CONVERT(VARCHAR,@WJS_MONEY)+''+CONVERT(VARCHAR,@WRZ_MONEY)--輸出結(jié)果PRINT@DW_MC+'單位'+CONVERT(VARCHAR,@STARTTIME,102)+'--'+CONVERT(VARCHAR,@ENDTIME,102)+'成本運營情況'PRINT'預(yù)算單位結(jié)算金額入賬金額未結(jié)算金額未入賬金額'PRINT@RESULTGOEXECUTE_someDepCost@DW_DM='1122',@STARTTIME='2015-05-01',@ENDTIME='2015-05-29';EXECUTE_someDepCost@DW_DM='112201',@STARTTIME='2015-05-01',@ENDTIME='2015-05-29';EXECUTE_someDepCost@DW_DM='112201001',@STARTTIME='2015-05-01',@ENDTIME='2015-05-29';(2)執(zhí)行結(jié)果四.利用QueryAnalyzer針對作業(yè)項目表定義三個觸發(fā)器,分別完成以下功能:1.對作業(yè)項目表插入一行數(shù)據(jù)時,自動計算并插入結(jié)算金額字段(結(jié)算金額=材料費+人工費+設(shè)備費+其它費用)。(1)SQL語句IFOBJECT_ID('CBXHB_T1','TR')ISNOTNULLDROPTRIGGERCBXHB_T1GOCREATETRIGGERCBXHB_T1ONCBXHBAFTERINSERTASDECLARE@JS_MONEYMONEY;DECLARE@TEMP1MONEY,@TEMP2MONEY,@TEMP3MONEY,@TEMP4MONEY;SELECT@TEMP1=CLF,@TEMP2=RGF,@TEMP3=SBF,@TEMP4=QTFYFROMINSERTED;SET@JS_MONEY=@TEMP1+@TEMP2+@TEMP3+@TEMP4;UPDATECBXHBSETJSJE=@JS_MONEYWHEREDJH=(SELECTDJHFROMINSERTED);GO--測試INSERTINTOCBXHBVALUES('zy2015007','112201001','y001',10000.00,'張三','2015-05-01','2015-05-04','2015-05-25','作業(yè)公司作業(yè)一隊','堵漏',2500.00,1000.00,1400.00,0,'李四','2015-05-26',11900.00,'王五','2015-05-28',7000);SELECT*FROMCBXHBWHEREDJH='zy2015007'(2)執(zhí)行結(jié)果2.當(dāng)修改作業(yè)表的某行數(shù)據(jù)時自動修改結(jié)算金額字段。(1)SQL語句IFOBJECT_ID('CBXHB_T2','TR')ISNOTNULLDROPTRIGGERCBXHB_T2GOCREATETRIGGERCBXHB_T2ONCBXHBAFTERUPDATEASDECLARE@JS_MONEYMONEY;DECLARE@TEMP1MONEY,@TEMP2MONEY,@TEMP3MONEY,@TEMP4MONEY;SELECT@TEMP1=CLF,@TEMP2=RGF,@TEMP3=SBF,@TEMP4=QTFYFROMINSERTED;SET@JS_MONEY=@TEMP1+@TEMP2+@TEMP3+@TEMP4;UPDATECBXHBSETJSJE=@JS_MONEYWHEREDJH=(SELECTDJHFROMINSERTED);GO--測試BEGINTRANSACTIONUPDATECBXHBSETCLF=10000WHEREDJH='zy2015007'SELECTDJH,JSJE,CLF,RGF,SBF,QTFYFROMCBXHBWHEREDJH='zy2015007'ROLLBACKSELECTDJH,JSJE,CLF,RGF,SBF,QTFYFROMCBXHBWHEREDJH='zy2015007'(2)執(zhí)行結(jié)果3.當(dāng)刪除作業(yè)表中一行數(shù)據(jù)時,自動刪除材料費表中相應(yīng)明細數(shù)據(jù)。(1)SQL語句IFOBJECT_ID('CBXHB_T3','TR')ISNOTNULLDROPTRIGGERCBXHB_T3GOCREATETRIGGERCBXHB_T3ONCBXHBINSTEADOFDELETEASDELETEFROMCLFBWHEREDJH=(SELECTDJHFROMDELETED);DEL
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年氨基酸和核苷酸項目建議書
- 中西語言與文化知到課后答案智慧樹章節(jié)測試答案2025年春中國礦業(yè)大學(xué)
- 四級人力資源管理師-四級人力資源管理師考試《理論知識》模擬試卷7
- 四級人力資源管理師-四級人力資源管理師考試《理論知識》考前沖刺卷4
- 三級人力資源管理師-《企業(yè)人力資源管理師(理論知識)》考前強化模擬卷3
- 岳麓版高中歷史高三三輪考前技能篇第1課選擇題解題技巧(教案1)
- 兒童音樂劇走進小學(xué)音樂教學(xué)中的實踐探索
- 新型戊二烯酮(查爾酮)類抗植物病毒藥物分子的設(shè)計合成及作用機制研究
- 倉儲返利合同范本
- 人才公寓裝修合同范例
- 跨境電商行業(yè)深度研究報告
- 小額納稅人證明模板
- 《總體國家安全觀學(xué)習(xí)綱要》全書PPT
- 北京市商業(yè)地圖
- 軟件項目進度計劃完整參考模板
- 面包生產(chǎn)工藝流程圖
- 特種設(shè)備使用單位名稱變更申請表(共2頁)
- CASS勘測定界操作指導(dǎo)方案
- 員工考勤表(通用版)
- 3號鋼筋加工場桁吊安裝方案
- 貫徹九項準則《醫(yī)療機構(gòu)工作人員廉潔從業(yè)九項準則》PPT
評論
0/150
提交評論