sqlserver数据库实验代码.doc

上传人:w****2 文档编号:6641061 上传时间:2020-03-01 格式:DOC 页数:19 大小:179KB
返回 下载 相关 举报
sqlserver数据库实验代码.doc_第1页
第1页 / 共19页
sqlserver数据库实验代码.doc_第2页
第2页 / 共19页
sqlserver数据库实验代码.doc_第3页
第3页 / 共19页
点击查看更多>>
资源描述
重 庆 交 通 大 学学 生 实 验 报 告实验课程名称 数据库应用与设计 开课实验室 xxxxxxxxx 学 院 xxx 年级 2011 专业班 xxxx 学 生 姓 名 xxxxxx 学 号 xxxxxx 开 课 时 间 2013 至 2014 学年第 2 学期总 成 绩教师签名实验2 建立表和定义完整性约束实验名称建立模式、表和定义完整性约束实验内容在实验一建立的数据库的基础上,参照下图和下表建立表并定义完整性约束。仓库号城市面积供应商号供应商名地址 仓库职工号经理工资 职工 供应商职工号供应商号订购单号订购日期金额 订购单订购单号序号产品名称单价数量 订购单明细表名字段名字段类型关键字约束说明仓库仓库号6个字符是前2位为英文,后4位为数字字符城市10个字符唯一,不允许为空面积数值大于等于50职工职工号8个字符是前6位参照仓库表的仓库号,后2位为数字字符经理参照职工号,说明该职工的经理是谁,允许空值工资货币大于等于1000,小于等于10000供应商供应商号4个字符是首位为大写字母S,后三位为数字字符供应商名16个字符地址30个字符订购单职工号参照职工表得职工号,不允许空值供应商号参照供应商表得供应商号,允许空值订购单号6个字符是前2位为英文大写字母OR,后四位为数字字符订购日期日期默认为当前日期金额货币默认空值,根据订购单明细的单价和数量计算订购单明细订购单号是参照订购单表的订购单号,不允许空值序号2位数字是产品名称20个字符单价货币大于0,默认空值数量整数大于0,不允许空值实验目的 熟练掌握表的建立和数据完整性速描定义方法,实践DBMS提供的数据完整性功能,加深对数据完整性的理解。实验方法 在实验一建立数据库的基础上用CREATESCHEMA命令建立模式,用CREATETABLE命令建立表并定义数据完整性约束,用ALTERTABLE命令修改表结构。实验要求1、用CREATESCHEMA命令建立模式(自己命名模式名称)。2、在定义的模式下参照图1和表1使用CREATETABLE命令建立表并定义完整性约束。3、使用ALTERTABLE命令按如下要求修改表结构:a)为订购单增加一个新的字段“完成日期”,类型为日期时间型,默认是空值。b)为订单明细表的“数量”字段重新定义约束:大于0、小于等于1000的正整数,不允许为空值。c)将供应商表的供应商名字段的类型修改为varchar(30)。实验步骤create table 仓库(仓库号nchar(6) primary keycheck(仓库号like A-ZA-Z0-90-90-90-9),城市nchar(10)not null unique,面积float check(面积=50);create table 职工(职工号nchar(8)primary key check(职工号like_0-90-9),仓库号 as convert (nchar(6),substring(职工号,1,6) persisted not null foreign key references 仓库(仓库号),经理nchar(8) foreign key references 职工(职工号),工资money check(工资=1000 and 工资0),数量int not null check(数量0);create trigger dgdmx on 订购单明细after insertas begindeclare 订购单号nchar(6) select 订购单号=订购单号from inserted update 订购单set 金额=(select sum(单价*数量) from 订购单明细where 订购单号=订购单号)where 订购单号=订购单号end实验3 数据操作和完整性约束的作用实验名称 数据操作笔完整性约束的作用实验内容 在实验二的基础上完成数据的插入操作,然后进行部分修改和删除操作,在这些操作中体会数据完整性约束的作用。实验目的 熟练掌握SQL的INSERT,UPDATE和DELETE命令,深刻理解数据完整性约束的作用以及约束时机。实验方法 在实验二的基础上首先用INSERT命令插入各个表的记录,然后使用UPDATE和DELETE命令对部分记录进行修改和删除操作。实验要求1、自行设计各个表的记录,其中仓库表至少5条记录,职工表至少10条记录、供应商表至少5条记录,订购单表至少20条记录,订购单明细表至少50条记录。2、使用INSERT命令完成记录的插入操作,要求分别设计若干违反实体完整性、参照完整性和用户定义完整性约束的插入操作,并分析原因。3、设计若干删除操作,体会执行删除操作时检查参照完整性规则的效果(要求涉及拒绝删除、空值删除和级联删除等不同的处理方式)。4、设计若干更新操作,体会执行更新操作时检查实体完整性规则、参照完整性规则和用户定义完整性规则的效果。5、将x城市仓库的职工的工资提高10%。6、用UPDATE语句完成订购单表金额字段的计算(提示:某张订购单的金额为该订购单所有订购项目(订购单明细)单价乘以数量的总和)。7、设计23个删除操作,它需要另外一个表中的数据作为删除条件(例如,按指定的供应商名称删除订购单记录)。8、在实验报告中给出具体的记录和设计的操作,并针对各种数据完整性检查,给出具体的分析和讨论。实验步骤insert into 仓库(仓库号,城市,面积) values (GH1111,重庆,99);insert into 仓库(仓库号,城市,面积) values (GH2222,北京,199);insert into 仓库(仓库号,城市,面积) values (GH3333,上海,299);insert into 仓库(仓库号,城市,面积) values (GH4444,厦门,399);insert into 仓库(仓库号,城市,面积) values (GH5555,杭州,499);insert into 职工(职工号,经理,工资)values (GH111111,GH111111,9999);insert into 职工(职工号,经理,工资)values (GH111122,GH111122,9999);insert into 职工(职工号,经理,工资)values (GH222211,GH222211,9999);insert into 职工(职工号,经理,工资)values (GH222222,GH222222,9999);insert into 职工(职工号,经理,工资)values (GH333311,GH333311,9999);insert into 职工(职工号,经理,工资)values (GH333322,GH333322,9999);insert into 职工(职工号,经理,工资)values (GH444411,GH444411,9999);insert into 职工(职工号,经理,工资)values (GH444422,GH444422,9999);insert into 职工(职工号,经理,工资)values (GH555511,GH555511,9999);insert into 职工(职工号,经理,工资)values (GH555522,GH555522,9999);insert into 供应商(供应商号,供应商名,地址)values (S111,高回报,杭州);insert into 供应商(供应商号,供应商名,地址)values (S222,高回报,杭州);insert into 供应商(供应商号,供应商名,地址)values (S333,高回报,杭州);insert into 供应商(供应商号,供应商名,地址)values (S444,高回报,杭州);insert into 供应商(供应商号,供应商名,地址)values (S555,高回报,杭州);insert into 订购单(职工号,供应商号,订购单号)values (GH111111,S111,OR1111);insert into 订购单(职工号,供应商号,订购单号)values (GH111111,S111,OR1112);insert into 订购单(职工号,供应商号,订购单号)values (GH111122,S111,OR1113);insert into 订购单(职工号,供应商号,订购单号)values (GH111122,S111,OR1114);insert into 订购单(职工号,供应商号,订购单号)values (GH222211,S222,OR2222);insert into 订购单(职工号,供应商号,订购单号)values (GH222211,S222,OR2221);insert into 订购单(职工号,供应商号,订购单号)values (GH222222,S222,OR2223);insert into 订购单(职工号,供应商号,订购单号)values (GH222222,S222,OR2224);insert into 订购单(职工号,供应商号,订购单号)values (GH333311,S333,OR3333);insert into 订购单(职工号,供应商号,订购单号)values (GH333311,S333,OR3331);insert into 订购单(职工号,供应商号,订购单号)values (GH333322,S333,OR3332);insert into 订购单(职工号,供应商号,订购单号)values (GH333322,S333,OR3334);insert into 订购单(职工号,供应商号,订购单号)values (GH444411,S444,OR4444);insert into 订购单(职工号,供应商号,订购单号)values (GH444411,S444,OR4441);insert into 订购单(职工号,供应商号,订购单号)values (GH444422,S444,OR4442);insert into 订购单(职工号,供应商号,订购单号)values (GH444422,S444,OR4443);insert into 订购单(职工号,供应商号,订购单号)values (GH555511,S555,OR5555);insert into 订购单(职工号,供应商号,订购单号)values (GH555511,S555,OR5551);insert into 订购单(职工号,供应商号,订购单号)values (GH555522,S555,OR5552);insert into 订购单(职工号,供应商号,订购单号)values (GH555522,S555,OR5553);insert into 订购单明细(订购单号,序号,产品名称,单价,数量)values (OR1111,01,哈根达斯,50,100);insert into 订购单明细(订购单号,序号,产品名称,单价,数量)values (OR1111,02,哈根达斯,50,100);insert into 订购单明细(订购单号,序号,产品名称,单价,数量)values (OR1111,03,哈根达斯,50,100);insert into 订购单明细(订购单号,序号,产品名称,单价,数量)values (OR1111,04,哈根达斯,50,100);insert into 订购单明细(订购单号,序号,产品名称,单价,数量)values (OR1111,05,哈根达斯,50,100);insert into 订购单明细(订购单号,序号,产品名称,单价,数量)values (OR1111,06,哈根达斯,50,100);insert into 订购单明细(订购单号,序号,产品名称,单价,数量)values (OR1111,07,哈根达斯,50,100);insert into 订购单明细(订购单号,序号,产品名称,单价,数量)values (OR1111,08,哈根达斯,50,100);insert into 订购单明细(订购单号,序号,产品名称,单价,数量)values (OR1111,09,哈根达斯,50,100);insert into 订购单明细(订购单号,序号,产品名称,单价,数量)values (OR1111,10,哈根达斯,50,100);insert into 订购单明细(订购单号,序号,产品名称,单价,数量)values (OR2222,11,哈根达斯,50,100);insert into 订购单明细(订购单号,序号,产品名称,单价,数量)values (OR2222,12,哈根达斯,50,100);insert into 订购单明细(订购单号,序号,产品名称,单价,数量)values (OR2222,13,哈根达斯,50,100);insert into 订购单明细(订购单号,序号,产品名称,单价,数量)values (OR2222,14,哈根达斯,50,100);insert into 订购单明细(订购单号,序号,产品名称,单价,数量)values (OR2222,15,哈根达斯,50,100);insert into 订购单明细(订购单号,序号,产品名称,单价,数量)values (OR2222,16,哈根达斯,50,100);insert into 订购单明细(订购单号,序号,产品名称,单价,数量)values (OR2222,17,哈根达斯,50,100);insert into 订购单明细(订购单号,序号,产品名称,单价,数量)values (OR2222,18,哈根达斯,50,100);insert into 订购单明细(订购单号,序号,产品名称,单价,数量)values (OR2222,19,哈根达斯,50,100);insert into 订购单明细(订购单号,序号,产品名称,单价,数量)values (OR2222,20,哈根达斯,50,100);insert into 订购单明细(订购单号,序号,产品名称,单价,数量)values (OR3333,21,哈根达斯,50,100);insert into 订购单明细(订购单号,序号,产品名称,单价,数量)values (OR3333,22,哈根达斯,50,100);insert into 订购单明细(订购单号,序号,产品名称,单价,数量)values (OR3333,23,哈根达斯,50,100);insert into 订购单明细(订购单号,序号,产品名称,单价,数量)values (OR3333,24,哈根达斯,50,100);insert into 订购单明细(订购单号,序号,产品名称,单价,数量)values (OR3333,25,哈根达斯,50,100);insert into 订购单明细(订购单号,序号,产品名称,单价,数量)values (OR3333,26,哈根达斯,50,100);insert into 订购单明细(订购单号,序号,产品名称,单价,数量)values (OR3333,27,哈根达斯,50,100);insert into 订购单明细(订购单号,序号,产品名称,单价,数量)values (OR3333,28,哈根达斯,50,100);insert into 订购单明细(订购单号,序号,产品名称,单价,数量)values (OR3333,29,哈根达斯,50,100);insert into 订购单明细(订购单号,序号,产品名称,单价,数量)values (OR3333,30,哈根达斯,50,100);insert into 订购单明细(订购单号,序号,产品名称,单价,数量)values (OR4444,31,哈根达斯,50,100);insert into 订购单明细(订购单号,序号,产品名称,单价,数量)values (OR4444,32,哈根达斯,50,100);insert into 订购单明细(订购单号,序号,产品名称,单价,数量)values (OR4444,33,哈根达斯,50,100);insert into 订购单明细(订购单号,序号,产品名称,单价,数量)values (OR4444,34,哈根达斯,50,100);insert into 订购单明细(订购单号,序号,产品名称,单价,数量)values (OR4444,35,哈根达斯,50,100);insert into 订购单明细(订购单号,序号,产品名称,单价,数量)values (OR4444,36,哈根达斯,50,100);insert into 订购单明细(订购单号,序号,产品名称,单价,数量)values (OR4444,37,哈根达斯,50,100);insert into 订购单明细(订购单号,序号,产品名称,单价,数量)values (OR4444,38,哈根达斯,50,100);insert into 订购单明细(订购单号,序号,产品名称,单价,数量)values (OR4444,39,哈根达斯,50,100);insert into 订购单明细(订购单号,序号,产品名称,单价,数量)values (OR4444,40,哈根达斯,50,100);insert into 订购单明细(订购单号,序号,产品名称,单价,数量)values (OR5555,41,哈根达斯,50,100);insert into 订购单明细(订购单号,序号,产品名称,单价,数量)values (OR5555,42,哈根达斯,50,100);insert into 订购单明细(订购单号,序号,产品名称,单价,数量)values (OR5555,43,哈根达斯,50,100);insert into 订购单明细(订购单号,序号,产品名称,单价,数量)values (OR5555,44,哈根达斯,50,100);insert into 订购单明细(订购单号,序号,产品名称,单价,数量)values (OR5555,45,哈根达斯,50,100);insert into 订购单明细(订购单号,序号,产品名称,单价,数量)values (OR5555,46,哈根达斯,50,100);insert into 订购单明细(订购单号,序号,产品名称,单价,数量)values (OR5555,47,哈根达斯,50,100);insert into 订购单明细(订购单号,序号,产品名称,单价,数量)values (OR5555,48,哈根达斯,50,100);insert into 订购单明细(订购单号,序号,产品名称,单价,数量)values (OR5555,49,哈根达斯,50,100);insert into 订购单明细(订购单号,序号,产品名称,单价,数量)values (OR5555,50,哈根达斯,50,100);update 职工set 工资=工资*(1+0.1) where substring(职工号,1,6) in (select 仓库号from 仓库where 城市=北京);实验4 数据查询实验名称 使用SQLSELECT语句的数据查询操作。实验内容 在实验二和实验三的基础上完成规定的查询操作。实验目的:熟练掌握SQLSELECT命令。实验方法在实验二和实验三的基础上使用SQLSELECT命令完成实验要求中所规定的各种查询。实验要求用SQLSELECT命令完成以下查询(1)(12)是一般简单查询:1. 职工表查询所有工资值(考虑去掉和不去掉重复值两种情况)。2. 查询仓库表中全部信息。3. 查询工资多于x元的职工号。4.查询哪些仓库有工资多于y元的职工。5.给出在仓库x或y(x,y是仓库号)工作,并且工资少于z元的职工号。6.查询工资在xy元范围内的职工信息(xy)。7.从供应商表中查询出全部公司的信息(不要工厂或其他供应商的信息,即供应商名最后两个汉字是“公司”的记录)。8.查询城市不是x的全部仓库信息。9.查询尚未确定供应商的订购单(即订购单的供应商号为空值的记录)。10.查询已经确定了供应商的订购单信息。11.按职工的工资值升序列出全部职工信息。12.先按仓库号升序,再按工资降序列出全部职工信息。(13)(21)使用连接查询:13.查询工资多于x元的职工号和他们所在的城市。14.查询工作在面积大于x的仓库的职工号以及这些职工工作所在的城市。15.根据职工表列出上一级经理及其职工(被其领导)的清单(即列出谁领导谁的清单)。16.列出仓库表和职工表的广义笛卡儿积的去处结果。17.根据仓库表和职工表的广义笛卡儿积得到仓库表和职工表进行自然连接的结果。18.查询供应商订购单信息,查询结果中包括供应商号、供应商名、订购单号和订购日期这4个字段。19.查询供应商订购单信息,查询结果中包括供应商号、供应商名、订购单号和订购日期这4个字段,要求结果中列出所有供应商信息(包括目前没有订购单的)。20.查询供应商订购单信息,查询结果中包括供应商号、供应商名、订购单号和订购日期这4个字段,要求结果中能够反映目前没有确定供应商的订购单情况。21.查询供应商订购单信息,查询结果中包括供应商号、供应商名、订购单号和订购日期这4个字段,要求结果即能反映目前没有订购半日的供应商信息,又能反映目前没有确定供应商的订购单情况。(22) (31)使用嵌套查询(注意使用ANY,ALL和EXISTS):22.查询哪些城市至少有一个仓库的职工的工资为x元。23. 查询所有职工的工资都多于x元的仓库的信息。24.查询和职工x挣同样工资的所有职工信息。25.查询哪些城市的仓库向地址为x的供应商发出了订购单。26.查询地址为x的供应商目前有y城市仓库的订购单的供应商的名称(分别用嵌套查询和连接查询完成,分析各自的效率)。27. 查询有职工的工资大于或等于x仓库中任何一名职工的工资的仓库号。28. 查询有职工的工资大于或等于x仓库中所有职工的工资的仓库号。29. 列出每人职工经手的具有最高金额的订购单信息。30. 查询目前还没有职工的仓库的信息。31. 查询目前至少有一个职工的仓库的信息。(32) (42)汇总和分组查询:32.查询目前仓库所在城市的数目。33.查询目前需要支付的职工工资的总数。34.查询x和y两个城市的仓库职工的工资总和。35.查询所有职工的工资都多于x元的仓库的平均面积。36.查询工资大于x元的职工所经手的订购单的最高金额。37.查询每个仓库的职工的平均工资。38.查询每个仓库的订购单的最高金额、最低金额和平均金额。39.查询至少有5个订购项目的每张订购单的平均金额。40.列出职工全部记录并计算各仓库的平均工资和工资小计,最后给出全体职工的平均工资和工资总和(使用COMPUTEBY和COMPUTE)。41.列出全部订购单明细并计算各订购单的金额,最后给出所有订购单的平均金额和金额总计(使用COMPUTEBY和COMPUTE)。42. 列出全部订购单记录并计算所有订购单的平均金额和金额总计(使用COMPUTE)。实验步骤1.select 工资from 职工;2.select * from 仓库;3.select 职工号from 职工where 工资9999;4.select 仓库号from 仓库where 仓库号in (select 仓库号from 职工where 工资9999);5.select 职工号from 职工where 工资9000 and 工资10000;14.select 职工号,城市from 职工join 仓库on 面积300;15.select 经理,职工号from 职工where 经理=GH111111;16.select distinct * from 职工,仓库;17.select distinct * from 职工cross join 仓库where substring(职工号,1,6)=仓库.仓库号;18.select 供应商.供应商号,供应商名,订购单号,订购日期from 供应商join 订购单on 供应商.供应商号=订购单.供应商号;19.select 供应商.供应商号,供应商名,订购单号,订购日期from 供应商left join 订购单on 供应商.供应商号=订购单.供应商号;20.select 供应商.供应商号,供应商名,订购单号,订购日期from 供应商right join 订购单on 供应商.供应商号=订购单.供应商号;21.select 供应商.供应商号,供应商名,订购单号,订购日期from 供应商full join 订购单on 供应商.供应商号=订购单.供应商号;22.select 城市from 仓库where 仓库号in (select substring(职工号,1,6) from 职工where 工资=9999);23.select * from 仓库where not exists (select * from 职工where 工资=any(select 工资from 职工where substring(职工号,1,6)=GH1111);28.select substring(职工号,1,6) from 职工where 职工.工资=all(select 工资from 职工where substring(职工号,1,6)=GH1111);29.select * from 订购单where 金额in (select max(金额) from 订购单group by 职工号);30.select * from 仓库where 仓库号not in (select substring(职工号,1,6) from 职工);31.select * from 仓库where 仓库号in (select substring(职工号,1,6) from 职工); 32.select count(城市) from 仓库;33.select sum(工资) from 职工;34.select sum(工资) from 职工where substring(职工号,1,6) in (select 仓库号from 仓库where 城市=北京 or 城市=上海);35.select avg(面积) from 仓库where 仓库号in (select substring(职工号,1,6) from 职工where 工资10000);36.select max(金额) from 订购单where 职工号in (select 职工号from 职工where 工资10000);37.select avg(工资) from 职工where substring(职工号,1,6) in (select 仓库号from 仓库);38.select max(金额) from 订购单where substring(职工号,1,6) in (select 仓库号from 仓库); select min(金额) from 订购单where substring(职工号,1,6) in (select 仓库号from 仓库); select avg(金额) from 订购单where substring(职工号,1,6) in (select 仓库号from 仓库);39.select avg(单价*数量) from 订购单明细group by 订购单号having count(序号)=5;40.select 职工.职工号,经理,工资from 职工join 仓库on substring(职工号,1,6)=仓库.仓库号order by 仓库.仓库号compute avg(工资),sum(工资) by 仓库.仓库号compute avg(工资),sum(工资);41.select 订购单明细.订购单号,序号,产品名称,单价,数量,单价*数量from 订购单明细join 订购单on 订购单明细.订购单号=订购单.订购单号order by 订购单.订购单号compute sum(单价*数量) by 订购单.订购单号compute avg(单价*数量),sum(单价*数量);42.select 订购单.职工号,供应商号,订购单号,订购日期,金额from 订购单compute avg(金额),sum(金额);实验5 视图的应用实验名称 视图的建立和应用。实验内容 在实验三和实验三的基础上定义视图,并在视图上完成查询、插入、更新和删除操作。实验目的 掌握视图定义和应用的方法,体会视图和基本表的异同之处。实验方法 在实验二和实验三的基础上用CREATEVIEW命令定义视图,然后使用SELECT命令完成查询,使用INSERT,UPDATE和DELETE命令分别完成插入、更新和删除操作。实验要求1、在实验二建立的基本表的基础上,按如下要求设计和建立视图:a)基于单个表按投影操作定义视图。b)基于单个表按选择操作定义视图。c)基于单个表按选择和投影操作定义视图。d)基于多个表根据连接操作定义视图。e)基于多个表根据嵌套查询定义视图。f)定义含有虚字段的视图。2、分别在定义的视图上设计一些查询(包括基于视图和基本表的连接或嵌套查询)。3、在不同的视图上分别设计一些插入、更新和删除操作,分情况讨论哪些操作可以成功完成,哪些操作不能完成,并分析原因。4、在实验报告中要给出具体的视图定义要求和操作要求,并针对各种情况做出具体的分析和讨论。实验步骤1.create view view1asselect 职工号,工资from 职工2.create view view2asselect * from 职工where 工资100003.create view view3asselect 订购单号,金额from 订购单where 职工号=GH2222224.create view view4as select 仓库.仓库号,城市from 仓库join 职工on substring(职工号,1,6)=仓库.仓库号join 订购单on 订购单.职工号=职工.职工号where 面积2005.create view view5asselect 城市from 仓库where 仓库.仓库号in (select 职工.仓库号from 职工where 职工.职工号in (select 订购单.职工号from 订购单where 金额10000)6.create view view6asselect 订购单号,sum(单价*数量) 金额from 订购单明细group by 订购单号select view1.职工号from view1 join view2 on view1.职工号=view2.职工号where view2.工资10000select view4.城市from view4 where view4.仓库号in (select view2.仓库号from view2 where view2.工资10000)insert into view1 values(GH555533,9999.0000)update view4 set 城市=邯郸 where 仓库号=GH3333delete view3 where 订购单号=OR2223实验6 游标实验名称 游标的设计和使用实验内容 在SQL Server环境下使用T-SQL的游标功能完成指定的操作。实验目的 理解和掌握游标的使用方法实验方法 在SQL Server环境下使用游标完成指定的操作。实验要求1、 定义一个游标,其内容是按单价升序列出的全部订购单及其明细信息。2、 逐一读出游标中的记录,并显示。实验步骤1. DECLARE 职工号nchar(8),供应商号nchar(4), 订购单号nchar(6),订购日期datetime,金额moneyDECLARE COMPUTER_CURSOR CURSOR FOR SELECT 职工号,供应商号,订购单号,订购日期,金额from 订购单OPEN COMPUTER_CURSOR PRINT 职工号,供应商号,订购单号,订购日期,金额FETCH FROM COMPUTER_CURSOR INTO 职工号,供应商号,订购单号,订购日期,金额WHILE FETCH_STATUS=0BEGINPRINT 职工号+ +供应商号+ + 订购单号+ +convert(nchar(17),订购日期)+ +convert(nchar(11),金额)FETCH FROM COMPUTER_CURSOR INTO 职工号,供应商号, 订购单号,订购日期,金额ENDCLOSE COMPUTER_CURSOR 2. DECLARE 订购单号nchar(4),序号tinyint, 产品名称nchar(20),单价money,数量intDECLARE COMPUTER_CURSOR1 CURSOR FOR SELECT 订购单号,序号,产品名称,单价,数量from 订购单明细order by 单价ascOPEN COMPUTER_CURSOR1 PRINT 订购单号,序号,产品名称,单价,数量FETCH FROM COMPUTER_CURSOR1 INTO 订购单号,序号, 产品名称,单价,数量WHILE FETCH_STATUS=0BEGINPRINT 订购单号+ +convert(nchar(2),序号)+ + 产品名称+ +convert(nchar(9),单价)+ +convert(nchar(3),数量)FETCH FROM COMPUTER_CURSOR1 INTO 订购单号,序号, 产品名称,单价,数量ENDCLOSE COMPUTER_CURSOR1实验7 存储过程实验名称 存储过程的设计和使用实验内容 在SQL Server环境下设计、创建并执行存储过程。实验目的 理解和掌握数据库存储过程的创建和调用方法。实验方法 在SQL Server环境下,按要求创建和调用存储过程完成指定的操作。实验要求1、 建立如下存储过程(1) 查询工资范围在x元到y元范围内的职工信息。(2) 查询在某年某月某日之后签订的订购单的有关供应商信息。(3) 更新操作,将某仓库的订购单的订购日期统一修改为一个指定日期。2、 在客户端以存储过程和输入SQL语句的方式分别执行相同的查询或操作,比较使用和不使用存储过程的区别。实验步骤1.create procedure dbo.uspgetallcourse11x int,y intas select 职工.仓库号,职工.职工号,职工.工资,仓库.城市from 职工,仓库 where 职工.工资=x and 职工.工资x order by 订购单号execute dbo.uspgetday12 2014-4-10 3.create procedure dbo.uspgetday11x datetimeas update 订购单 set 订购日期=x where substring(订购单.职工号,1,6)=GH1111execute dbo.uspgetday112014-5-9 20:50:41实验8 触发器实验名称 DML触发器的设计和应用实验内容 在SQL Server环境下设计、创建DML触发器,并设定相关操作使触发器运行。实验目的 理解和掌握数据库中触发器的创建方法,体会触发器执行的条件和作用。实验方法 在SQL Server环境下,按要求设计DML触发器,并使用相关操作使触发器运行。实验要求1、为职工表建立一个更新触发器,当修改工资超过6%时给出警示信息。2、为订购单表建立一个插入更新触发器,约束规则是:当订购单金额小于3000时必须使用本地供应商,如果不满足要求,则拒绝操作,并给出错误信息。3、设计并执行相关的插入操作和更新操作,体会DML触发器的效果和作用。实验步骤 1. CREATE TRIGGER tri1_insert_update1 ON 职工 AFTER insert,updateAS declare 工资money,工资moneyselect 工资= 工资from insertedselect 工资= 工资from deletedif abs(工资-工资)/工资0.06BEGIN rollback transactionraiserror(修改工资超过%,1,16) END2.CREATE TRIGGER tri2_insert_update ON 订购单 AFTER insert,updateAS declare 金额moneydeclare 仓库地址varchar(10)declare 供应商地址varchar(30)select 金额=金额from insertedselect 仓库地址=城市from 仓库where 仓库号in (select substring(职工号,1,6) from inserted)select 供应商地址=地址from 供应商where 供应商号in (select 供应商号from inserted)if 金额3000BEGINif 仓库地址供应商地址 begin rollback transaction raiserror(发出订购单的仓库和供应商不在同一个城市,1,16) endEND3. update 职工set 工资=3000 where 职工号=GH222222insert into 订购单values(GH111111, S111, OR1111, getdate(), 2500)实验12 数据库设计实验名称
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 临时分类 > 人文社科


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!