upc数据库实验报告_第1页
upc数据库实验报告_第2页
upc数据库实验报告_第3页
upc数据库实验报告_第4页
upc数据库实验报告_第5页
已阅读5页,还剩44页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

实验三SQL练习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)执行结果二.油水井表(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)执行结果三.施工单位表(1)SQL语句CREATETABLESGDWB(SGDWMCVARCHAR(20));INSERTINTOSGDWBVALUES('作业公司作业一队');INSERTINTOSGDWBVALUES('作业公司作业二队');INSERTINTOSGDWBVALUES('作业公司作业三队');(2)执行结果四.物码表(1)SQL语句CREATETABLEWMB(WMVARCHAR(10),MCGGVARCHAR(10),JLDWVARCHAR(10));INSERTINTOWMBVALUES('wm001','材料一','吨');INSERTINTOWMBVALUES('wm002','材料二','米');INSERTINTOWMBVALUES('wm003','材料三','桶');INSERTINTOWMBVALUES('wm004','材料四','袋');(2)执行结果五.成本消耗表(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','作业公司作业一队','堵漏',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','作业公司作业二队','检泵',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','作业公司作业二队','调剖',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','作业公司作业三队','解堵',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','作业公司作业三队','防纱',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)执行结果六.材料费表(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)执行结果七.利用QueryAnalyzer完成以下操作:=1\*GB2⑴将编号为zy2015005的项目的人工费和结算金额增加100元。=2\*GB2⑵删除已经结算但未入帐的项目。=3\*GB2⑶撤消上述两个操作。1.SQL语句BEGINTRANSACTIONUPDATECBXHBSETRGF=RGF+100,JSJE=JSJE+100WHEREDJH='zy2015005';SELECTRGF,JSJEFROMCBXHBWHEREDJH='ZY2015005';DELETEFROMCBXHBWHERERZJEISNULL;SELECT*FROMCBXHBWHERERZJEISNULL;ROLLBACKTRANSACTIONSELECTRGF,JSJEFROMCBXHBWHEREDJH='ZY2015005';SELECT*FROMCBXHBWHERERZJEISNULL;2.执行结果=1\*GB2⑴将编号为zy2015005的项目的人工费和结算金额增加100元。=2\*GB2⑵删除已经结算但未入帐的项目。=3\*GB2⑶撤消上述两个操作。实验四SQL练习2一.利用QueryAnalyzer完成以下操作:1.在预算日期、结算日期和入账日期上分别建立索引,并在查询操作中体会索引的作用。(1)SQL语句CREATEINDEXYSRQSUOYINGONCBXHB(YSRQ);CREATEINDEXJSRQSUOYINGONCBXHB(JSRQ);CREATEINDEXRZRQSUOYINGONCBXHB(RZRQ);(2)执行结果2.在完成第2题的查询操作后,删除预算日期、结算日期和入账日期上的索引。(1)SQL语句DROPINDEXYSRQSUOYINGONCBXHB;DROPINDEXJSRQSUOYINGONCBXHB;DROPINDEXRZRQSUOYINGONCBXHB;(2)执行结果二.利用QueryAnalyzer完成以下操作:1.采油一矿二队2015-5-1到2015-5-28有哪些项目完成了预算,列出相应明细。(1)SQL语句SELECT*FROMDWDMB,CBXHBWHEREYSDW=DWDMANDDWMC='采油一矿二队'ANDYSRQ>='2015-5-1'ANDYSRQ<='2015-5-28';(2)执行结果2.采油一矿二队2015-5-1到2015-5-28有哪些项目完成了结算,列出相应明细。(1)SQL语句SELECT*FROMDWDMB,CBXHBWHEREYSDW=DWDMANDDWMC='采油一矿二队'ANDJSRQBETWEEN'2015-5-1'AND'2015-5-28';(2)执行结果3.采油一矿二队2015-5-1到2015-5-28有哪些项目完成了结算,列出相应的材料费消耗明细。(1)SQL语句SELECTCLFB.DJH,WM,XHSL,DJFROMDWDMB,CBXHB,CLFBWHEREYSDW=DWDMANDDWMC='采油一矿二队'ANDJSRQBETWEEN'2015-5-1'AND'2015-5-28'ANDCLFB.DJH=CBXHB.DJH;(2)执行结果4.采油一矿二队2015-5-1到2015-5-28有哪些项目完成了入账,列出相应明细。(1)SQL语句SELECT*FROMDWDMB,CBXHBWHEREYSDW=DWDMANDDWMC='采油一矿二队'ANDRZRQBETWEEN'2015-5-1'AND'2015-5-28';(2)执行结果5.列出采油一矿二队2015-5-1到2015-5-28总的预算金额。(1)SQL语句SELECTZYSJE=SUM(YSJE)FROMDWDMB,CBXHBWHEREYSDW=DWDMANDDWMC='采油一矿二队'ANDRZRQBETWEEN'2015-5-1'AND'2015-5-28';(2)执行结果6.列出采油一矿二队2015-5-1到2015-5-28总的结算金额。(1)SQL语句SELECTZJSJE=SUM(JSJE)FROMDWDMB,CBXHBWHEREYSDW=DWDMANDDWMC='采油一矿二队'ANDRZRQBETWEEN'2015-5-1'AND'2015-5-28';(2)执行结果7.列出采油一矿二队2015-5-1到2015-5-28总的入账金额。(1)SQL语句SELECTZRZJE=SUM(RZJE)FROMDWDMB,CBXHBWHEREYSDW=DWDMANDDWMC='采油一矿二队'ANDRZRQBETWEEN'2015-5-1'AND'2015-5-28';(2)执行结果8.列出采油一矿2015-5-1到2015-5-28总的入账金额。(1)SQL语句SELECTCYYKZRZJE=SUM(RZJE)FROMDWDMB,CBXHBWHEREYSDW=DWDMANDDWMCLIKE'采油一矿%'ANDRZRQBETWEEN'2015-5-1'AND'2015-5-28';(2)执行结果9.有哪些人员参与了入账操作。(1)SQL语句SELECTDISTINCTRZRFROMCBXHBWHERERZRISNOTNULL;(2)执行结果10.列出2015-5-1到2015-5-28进行了结算但未入帐的项目。(1)SQL语句SELECTDJHFROMCBXHBWHERERZJEISNULLANDJSJEISNOTNULL;(2)执行结果11.列出采油一矿二队的所有项目,按入账金额从高到低排列。(1)SQL语句SELECTDJH,RZJEFROMCBXHB,DWDMBWHEREDWMC='采油一矿二队'ANDYSDW=DWDMORDERBYRZJEDESC;(2)执行结果12.列出有哪些施工单位实施了项目,并计算各单位所有项目结算金额总和。(1)SQL语句SELECTDWMC,XMSL=COUNT(JSJE),GDWZJSJE=SUM(JSJE)FROMCBXHB,DWDMBWHEREYSDW=DWDMGROUPBYDWMC;(2)执行结果13.找出消耗了材料三且消耗超过了2000元的项目,列出相应消耗明细(利用子查询)。(1)SQL语句SELECTDJH,WM,XHSL,DJFROMCLFBWHEREWMIN(SELECTWMFROMWMBWHEREMCGG='材料三')ANDDJ*XHSL>=2000;(2)执行结果14.作业公司二队参与了哪些项目。(1)SQL语句SELECTDJHFROMCBXHBWHERESGDW='作业公司作业二队';(2)执行结果15.作业公司一队和二队参与了哪些项目(利用union)。(1)SQL语句SELECTDJH,SGDWFROMCBXHBWHERESGDW='作业公司作业二队'UNIONSELECTDJH,SGDWFROMCBXHBWHERESGDW='作业公司作业一队';(2)执行结果16.采油一矿的油井是哪些作业队参与施工的。(1)SQL语句SELECTDISTINCTSGDWFROMYSJB,DWDMB,CBXHBWHERECBXHB.YSDW=DWDMB.DWDMANDDWDMB.DWDM=YSJB.DWDMANDDWMCLIKE'采油一矿%'ANDJINGBEI='油井';(2)执行结果三.利用QueryAnalyzer完成以下操作:1.建立数据表(包含3个属性列:★施工单位、★年月、◆结算金额)保存各个施工单位每月的结算金额总和。(1)SQL语句CREATETABLESJB(SGDWVARCHAR(20),NYVARCHAR(20),JSJEMONEY);(2)执行结果2.用子查询将各个施工单位每月的结算金额总和插入到所建立的数据表中。(1)SQL语句INSERTINTOSJB(SGDW,NY,JSJE)(SELECTSGDW,YEAR(JSRQ)*100+MONTH(JSRQ),SUM(JSJE)FROMCBXHBGROUPBYSGDW,YEAR(JSRQ)*100+MONTH(JSRQ));(2)执行结果3.用带子查询的修改语句将采油一矿油井作业项目的结算人改为“李兵”。4.用带子查询的删除语句删除采油一矿油井作业项目。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)执行结果a.用带子查询的修改语句将采油一矿油井作业项目的结算人改为“李兵”b.用带子查询的删除语句删除采油一矿油井作业项目。c.撤销实验五SQL练习3

一.利用QueryAnalyzer完成以下操作:1.向在实验四中所定义的数据表增加“备注”列,其数据类型为字符型,并查看新增列的值。(1)SQL语句ALTERTABLESJBADDBEIZHUCHAR(20);SELECT*FROMSJB;(2)执行结果2.对上述数据表增加主码约束条件,并观察在数据表中存在数据的情况下主码约束是否创建成功,然后再次执行实验四中实验内容3.2的操作,并观察记录执行结果。(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)执行结果3.删除上述数据表中的数据,然后再删除该数据表,对这两个操作进行比较。(1)SQL语句/*删除数据表中的数据*/DELETEFROMSJBWHERESGDW='作业公司作业一队';DELETEFROMSJBWHERESGDW='作业公司作业二队';DELETEFROMSJBWHERESGDW='作业公司作业三队';SELECT*FROMSJB;/*删除表*/DROPTABLESJB;(2)执行结果二.利用QueryAnalyzer完成以下任务:1.对实验三中所定义的6个数据表增加主码约束条件,并观察在数据表中存在数据的情况下主码约束是否创建成功,然后执行以下2个操作,观察并记录实体完整性的检查和违约处理。=1\*GB3①insertinto材料费表values('zy2015001','wm004',100,10)=2\*GB3②insertinto材料费表values('zy2015002',NULL,200,10)注:“材料费表”根据自己所命名的表名进行相应的替换。(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)执行结果2.对实验三中所定义的6个数据表增加相应的参照完整性约束,并观察在数据表中存在数据的情况下参照完整性约束是否创建成功,然后执行以下操作,观察并记录参照完整性的检查和违约处理。=1\*GB3①将(y007油井112203002)插入到油水井表。=2\*GB3②insertinto材料费表values('zy2015007','wm006',100,10)=3\*GB3③将作业项目编号zy2015001的施工单位修改为“作业公司作业五队”。=4\*GB3④将单位代码表中的(112202002采油二矿二队)删除,查看油水井表和作业项目表中的数据有何变化。=5\*GB3⑤将物码表中的(wm004材料四袋)修改为(wm04材料四袋)。=6\*GB3⑥撤销上述成功的更新操作。注:“材料费表”根据自己所命名的表名进行相应的替换。(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,状态0,第3行INSERT语句与FOREIGNKEY约束"YSJB_1"冲突。该冲突发生于数据库"zyxt",表"dbo.DWDMB",column'DWDM'。*//*②insertinto材料费表values('zy2015007','wm006',100,10)*/INSERTINTOCLFBVALUES('zy2015007','wm006',100,10);/*消息547,级别16,状态0,第9行INSERT语句与FOREIGNKEY约束"CLF_1"冲突。该冲突发生于数据库"zyxt",表"dbo.CBXHB",column'DJH'。*//*③将作业项目编号zy2015001的施工单位修改为“作业公司作业五队”。*/UPDATECBXHBSETSGDW='作业公司五队'WHEREDJH='zy2015001';/*消息547,级别16,状态0,第15行UPDATE语句与FOREIGNKEY约束"CBXHB_3"冲突。该冲突发生于数据库"zyxt",表"dbo.SGDWB",column'SGDWMC'。*//*④将单位代码表中的(采油二矿二队)删除,查看油水井表和作业项目表中的数据有何变化。*/DELETEFROMDWDMBWHEREDWDM='112202002';/*消息547,级别16,状态0,第23行DELETE语句与REFERENCE约束"CBXHB_1"冲突。该冲突发生于数据库"zyxt",表"dbo.CBXHB",column'YSDW'。*//*⑤将物码表中的(wm004材料四袋)修改为(wm04材料四袋)。*/UPDATEWMBSETWM='wm04'WHEREWM='wm004';/*消息547,级别16,状态0,第30行UPDATE语句与REFERENCE约束"CLF_2"冲突。该冲突发生于数据库"zyxt",表"dbo.CLFB",column'WM'。*/ROLLBACK;(2)执行结果3.对实验三中所定义的6个数据表按以下要求增加相应的完整性约束条件,并观察在数据表中存在数据的情况下完整性约束是否创建成功。=1\*GB3①单位代码表的单位名称不能取空值、且取值唯一。=2\*GB3②油水井表的井别只允许取“油井”或“水井”,单位代码不能取空值。=3\*GB3③物码表的名称规格不能取空值、且取值唯一,计量单位不能取空值。=4\*GB3④材料费表的消耗数量不能取空值,单价不能取空值。=5\*GB3⑤对作业项目表根据实际应用的要求定义适当的用户定义的完整性约束条件。(1)SQL语句/*①单位代码表的单位名称不能取空值、且取值唯一。*/ALTERTABLEDWDMBALTERCOLUMNDWMCVARCHAR(20)NOTNULL;ALTERTABLEDWDMBADDCONSTRAINTDWMCUNIQUEUNIQUE(DWMC);/*②油水井表的井别只允许取“油井”或“水井”,单位代码不能取空值。*/ALTERTABLEYSJBADDCONSTRAINTYSJNCHECKCHECK(JINGBEIIN('油井','水井'));ALTERTABLEYSJBALTERCOLUMNDWDMVARCHAR(10)NOTNULL;/*③物码表的名称规格不能取空值、且取值唯一,计量单位不能取空值。*/ALTERTABLEWMBALTERCOLUMNMCGGVARCHAR(10)NOTNULL;ALTERTABLEWMBADDCONSTRAINTMCGGUNIQUEUNIQUE(MCGG);ALTERTABLEWMBALTERCOLUMNJLDWVARCHAR(10)NOTNULL;/*④材料费表的消耗数量不能取空值,单价不能取空值。*/ALTERTABLECLFBALTERCOLUMNXHSLINTNOTNULL;ALTERTABLECLFBALTERCOLUMNDJMONEYNOTNULL;/*⑤对作业项目表根据实际应用的要求定义适当的用户定义的完整性约束条件。*/ALTERTABLECBXHBALTERCOLUMNYSRVARCHAR(10)NOTNULL;(2)执行结果三.利用QueryAnalyzer完成以下操作:1.定义一个视图,用于保存作业项目表和材料费表的全部列。(1)SQL语句CREATEVIEWCBXHB_CLFBASSELECTCBXHB.*,WM,XHSL,DJFROMCBXHB,CLFBWHERECBXHB.DJH=CLFB.DJH;(2)执行结果2.查询上面定义的视图,可任意组合查询条件,构造出2个查询。(1)SQL语句SELECTDJH,WMFROMCBXHB_CLFBWHEREWM='wm002';SELECTDJH,XHSLFROMCBXHB_CLFBWHEREDJH='zy2015001'ANDWM='wm001';(2)执行结果3.定义一个反映作业项目预算状态的视图,并向该视图插入('zy2015008','112202002','y005',10000,'张三','2015-07-02'),查看作业项目表的数据有何变化。(1)SQL语句CREATEVIEWYSZTASSELECTDJH,YSDW,JH,YSJE,YSR,YSRQFROMCBXHB;(2)执行结果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)执行结果实验六其它数据库对象的管理一.利用QueryAnalyzer进行如下事务处理练习(把下列五条语句作为一个事务处理,只有五条语句全部成功执行才做提交,并给出成功的提示信息;否则就做回退处理,并给出具体的错误提示信息。insertinto作业项目表values('zy2015006','112202002','y005',10000,'张三','07-01-2015','07-04-2015','07-25-2015','作业公司作业一队','堵漏',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)注:“作业项目表”、“材料费表”根据自己所命名的表名进行相应的替换。(1)SQL语句BEGINTRANSACTIONGOINSERTINTOCBXHBVALUES('zy2015006','112202002','y005',10000,'张三','2015-07-01','2015-07-04','2015-07-25','作业公司作业一队','堵漏',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'语句执行失败'ROLLBACKENDELSEBEGINPRINT'语句执行成功'COMMITEND(2)执行结果二.利用QueryAnalyzer进行如下游标练习:定义一个游标,用于存放作业项目表的全部行数据,并打印以下表头和各行数据。表头:单据号预算单位井号预算金额预算人预算日期开工日期完工日期施工单位施工内容材料费人工费设备费其它费用结算金额结算人结算日期入账金额入账人入账日期执行以上所定义的游标,查看是否能正确输出结果(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'作业项目编号'+'预算单位'+'井号'+'预算金额'+'预算人'+'预算日期'+'开工日期'+'完工日期'+'施工单位名称'+'施工内容'+'人工费'+'设备费'+'其它费用'+'结算金额'+'结算人'+'结算日期'+'入账金额'+'入账人'+'入账日期'+'材料费'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)执行结果三.利用QueryAnalyzer定义一个存储过程,要求完成以下功能:生成某单位(单位可以是采油厂或采油矿或采油队)某段时间内的成本运行情况(输入参数:单位代码起始日期结束日期)。输出格式***单位**时间---**时间成本运行情况预算金额结算金额入账金额未结算金额未入账金额****.******.******.******.******.**其中:未结算金额=预算金额-结算金额未入账金额=结算金额-入账金额分三种情况(单位分别为:采油厂、采油矿、采油队)执行以上定义的存储过程,查看执行输出结果。(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)--输出结果PRINT@DW_MC+'单位'+CONVERT(VARCHAR,@STARTTIME,102)+'--'+CONVERT(VARCHAR,@ENDTIME,102)+'成本运营情况'PRINT'预算单位结算金额入账金额未结算金额未入账金额'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)执行结果四.利用QueryAnalyzer针对作业项目表定义三个触发器,分别完成以下功能:1.对作业项目表插入一行数据时,自动计算并插入结算金额字段(结算金额=材料费+人工费+设备费+其它费用)。(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','作业公司作业一队','堵漏',2500.00,1000.00,1400.00,0,'李四','2015-05-26',11900.00,'王五','2015-05-28',7000);SELECT*FROMCBXHBWHEREDJH='zy2015007'(2)执行结果2.当修改作业表的某行数据时自动修改结算金额字段。(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)执行结果3.当删除作业表中一行数据时,自动删除材料费表中相应明细数据。(1)SQL语句IFOBJECT_ID('CBXHB_T3','TR')ISNOTNULLDROPTRIGGERCBXHB_T3GOCREATETRIGGERCBXHB_T3ONCBXHBINSTEADOFDELETEASDELETEFROMCLFBWHEREDJH=(SELECTDJHFROMDELETED);DEL

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论