




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、重 庆 交 通 大 学学 生 实 验 报 告实验课程名称 数据库应用与设计 开课实验室 xxxxxxxxx 学 院 xxx 年级 2011 专业班 xxxx 学 生 姓 名 xxxxxx 学 号 xxxxxx 开 课 时 间 2013 至 2014 学年第 2 学期总 成 绩教师签名实验2 建立表和定义完整性约束实验名称建立模式、表和定义完整性约束实验内容在实验一建立的数据库的基础上,参照下图和下表建立表并定义完整性约束。仓库号城市面积供应商号供应商名地址 仓库职工号经理工资 职工 供应商职工号供应商号订购单号订购日期金额 订购单订购单号序号产品名称单价数量 订购单明细表名字段名字段类型关键字
2、约束说明仓库仓库号6个字符是前2位为英文,后4位为数字字符城市10个字符唯一,不允许为空面积数值大于等于50职工职工号8个字符是前6位参照仓库表的仓库号,后2位为数字字符经理参照职工号,说明该职工的经理是谁,允许空值工资货币大于等于1000,小于等于10000供应商供应商号4个字符是首位为大写字母S,后三位为数字字符供应商名16个字符地址30个字符订购单职工号参照职工表得职工号,不允许空值供应商号参照供应商表得供应商号,允许空值订购单号6个字符是前2位为英文大写字母OR,后四位为数字字符订购日期日期默认为当前日期金额货币默认空值,根据订购单明细的单价和数量计算订购单明细订购单号是参照订购单表的
3、订购单号,不允许空值序号2位数字是产品名称20个字符单价货币大于0,默认空值数量整数大于0,不允许空值实验目的 熟练掌握表的建立和数据完整性速描定义方法,实践DBMS提供的数据完整性功能,加深对数据完整性的理解。 实验方法 在实验一建立数据库的基础上用CREATE SCHEMA命令建立模式,用CREATE TABLE命令建立表并定义数据完整性约束,用ALTER TABLE命令修改表结构。实验要求1、用CREATE SCHEMA命令建立模式(自己命名模式名称)。 2、在定义的模式下参照图1和表1使用CREATE TABLE命令
4、建立表并定义完整性约束。3、使用ALTER TABLE命令按如下要求修改表结构: 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,面积f
5、loat 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 工资<=10000);create table 供应商(供应商号nchar(
6、4)primary keycheck(供应商号like'S0-90-90-9'),供应商名nchar(16),地址nchar(30);create table 订购单(职工号nchar(8) not null foreign key references 职工(职工号),供应商名nchar(16),订购单号nchar(6) primary key check(订购单号like'OR0-90-90-90-9'),订购日期datetime default getdate(),金额money default null);create table 订购单明细(订购单号n
7、char(6) not null foreign key references 订购单(订购单号),序号tinyint,primary key(订购单号,序号),产品名称nchar(20),单价money default null check(单价>0),数量int not null check(数量>0);create trigger dgdmx on 订购单明细after insertas begindeclare 订购单号nchar(6) select 订购单号=订购单号from inserted update 订购单set 金额=(select sum(单价*数量) fro
8、m 订购单明细where 订购单号=订购单号)where 订购单号=订购单号end实验3 数据操作和完整性约束的作用实验名称 数据操作笔完整性约束的作用 实验内容 在实验二的基础上完成数据的插入操作,然后进行部分修改和删除操作,在这些操作中体会数据完整性约束的作用。 实验目的 熟练掌握SQL的INSERT,UPDATE和DELETE命令,深刻理解数据完整性约束的作用以及约束时机。 实验方法 在实验二的基础上首先用INSERT命令插入各个表的记录,然后使用UPDATE和DELETE命令对部分记录进行修改和删除操作。 实验要求1、自行设计各个表的记录,其中仓
9、库表至少5条记录,职工表至少10条记录、供应商表至少5条记录,订购单表至少20条记录,订购单明细表至少50条记录。2、使用INSERT命令完成记录的插入操作,要求分别设计若干违反实体完整性、参照完整性和用户定义完整性约束的插入操作,并分析原因。3、设计若干删除操作,体会执行删除操作时检查参照完整性规则的效果(要求涉及拒绝删除、空值删除和级联删除等不同的处理方式)。4、设计若干更新操作,体会执行更新操作时检查实体完整性规则、参照完整性规则和用户定义完整性规则的效果。5、将x城市仓库的职工的工资提高10%。6、用UPDATE语句完成订购单表金额字段的计算(提示:某张订购单的金额为该订购单所有订购项
10、目(订购单明细)单价乘以数量的总和)。7、设计23个删除操作,它需要另外一个表中的数据作为删除条件(例如,按指定的供应商名称删除订购单记录)。8、在实验报告中给出具体的记录和设计的操作,并针对各种数据完整性检查,给出具体的分析和讨论。实验步骤insert into 仓库(仓库号,城市,面积) values ('GH1111','重庆',99);insert into 仓库(仓库号,城市,面积) values ('GH2222','北京',199);insert into 仓库(仓库号,城市,面积) values ('GH3
11、333','上海',299);insert into 仓库(仓库号,城市,面积) values ('GH4444','厦门',399);insert into 仓库(仓库号,城市,面积) values ('GH5555','杭州',499);insert into 职工(职工号,经理,工资)values ('GH111111','GH111111',9999);insert into 职工(职工号,经理,工资)values ('GH111122','G
12、H111122',9999);insert into 职工(职工号,经理,工资)values ('GH222211','GH222211',9999);insert into 职工(职工号,经理,工资)values ('GH222222','GH222222',9999);insert into 职工(职工号,经理,工资)values ('GH333311','GH333311',9999);insert into 职工(职工号,经理,工资)values ('GH333322'
13、;,'GH333322',9999);insert into 职工(职工号,经理,工资)values ('GH444411','GH444411',9999);insert into 职工(职工号,经理,工资)values ('GH444422','GH444422',9999);insert into 职工(职工号,经理,工资)values ('GH555511','GH555511',9999);insert into 职工(职工号,经理,工资)values ('GH55
14、5522','GH555522',9999);insert into 供应商(供应商号,供应商名,地址)values ('S111','高回报','杭州');insert into 供应商(供应商号,供应商名,地址)values ('S222','高回报','杭州');insert into 供应商(供应商号,供应商名,地址)values ('S333','高回报','杭州');insert into 供应商(供应商号,供应商名
15、,地址)values ('S444','高回报','杭州');insert into 供应商(供应商号,供应商名,地址)values ('S555','高回报','杭州');insert into 订购单(职工号,供应商号,订购单号)values ('GH111111','S111','OR1111');insert into 订购单(职工号,供应商号,订购单号)values ('GH111111','S111',
16、9;OR1112');insert into 订购单(职工号,供应商号,订购单号)values ('GH111122','S111','OR1113');insert into 订购单(职工号,供应商号,订购单号)values ('GH111122','S111','OR1114');insert into 订购单(职工号,供应商号,订购单号)values ('GH222211','S222','OR2222');insert into 订购单
17、(职工号,供应商号,订购单号)values ('GH222211','S222','OR2221');insert into 订购单(职工号,供应商号,订购单号)values ('GH222222','S222','OR2223');insert into 订购单(职工号,供应商号,订购单号)values ('GH222222','S222','OR2224');insert into 订购单(职工号,供应商号,订购单号)values ('GH
18、333311','S333','OR3333');insert into 订购单(职工号,供应商号,订购单号)values ('GH333311','S333','OR3331');insert into 订购单(职工号,供应商号,订购单号)values ('GH333322','S333','OR3332');insert into 订购单(职工号,供应商号,订购单号)values ('GH333322','S333',
19、9;OR3334');insert into 订购单(职工号,供应商号,订购单号)values ('GH444411','S444','OR4444');insert into 订购单(职工号,供应商号,订购单号)values ('GH444411','S444','OR4441');insert into 订购单(职工号,供应商号,订购单号)values ('GH444422','S444','OR4442');insert into 订购单
20、(职工号,供应商号,订购单号)values ('GH444422','S444','OR4443');insert into 订购单(职工号,供应商号,订购单号)values ('GH555511','S555','OR5555');insert into 订购单(职工号,供应商号,订购单号)values ('GH555511','S555','OR5551');insert into 订购单(职工号,供应商号,订购单号)values ('GH
21、555522','S555','OR5552');insert into 订购单(职工号,供应商号,订购单号)values ('GH555522','S555','OR5553');insert into 订购单明细(订购单号,序号,产品名称,单价,数量)values ('OR1111','01','哈根达斯','50','100');insert into 订购单明细(订购单号,序号,产品名称,单价,数量)values (
22、39;OR1111','02','哈根达斯','50','100');insert into 订购单明细(订购单号,序号,产品名称,单价,数量)values ('OR1111','03','哈根达斯','50','100');insert into 订购单明细(订购单号,序号,产品名称,单价,数量)values ('OR1111','04','哈根达斯','50','100
23、');insert into 订购单明细(订购单号,序号,产品名称,单价,数量)values ('OR1111','05','哈根达斯','50','100');insert into 订购单明细(订购单号,序号,产品名称,单价,数量)values ('OR1111','06','哈根达斯','50','100');insert into 订购单明细(订购单号,序号,产品名称,单价,数量)values ('OR1111&
24、#39;,'07','哈根达斯','50','100');insert into 订购单明细(订购单号,序号,产品名称,单价,数量)values ('OR1111','08','哈根达斯','50','100');insert into 订购单明细(订购单号,序号,产品名称,单价,数量)values ('OR1111','09','哈根达斯','50','100');ins
25、ert into 订购单明细(订购单号,序号,产品名称,单价,数量)values ('OR1111','10','哈根达斯','50','100');insert into 订购单明细(订购单号,序号,产品名称,单价,数量)values ('OR2222','11','哈根达斯','50','100');insert into 订购单明细(订购单号,序号,产品名称,单价,数量)values ('OR2222','
26、12','哈根达斯','50','100');insert into 订购单明细(订购单号,序号,产品名称,单价,数量)values ('OR2222','13','哈根达斯','50','100');insert into 订购单明细(订购单号,序号,产品名称,单价,数量)values ('OR2222','14','哈根达斯','50','100');insert into 订
27、购单明细(订购单号,序号,产品名称,单价,数量)values ('OR2222','15','哈根达斯','50','100');insert into 订购单明细(订购单号,序号,产品名称,单价,数量)values ('OR2222','16','哈根达斯','50','100');insert into 订购单明细(订购单号,序号,产品名称,单价,数量)values ('OR2222','17',
28、39;哈根达斯','50','100');insert into 订购单明细(订购单号,序号,产品名称,单价,数量)values ('OR2222','18','哈根达斯','50','100');insert into 订购单明细(订购单号,序号,产品名称,单价,数量)values ('OR2222','19','哈根达斯','50','100');insert into 订购单明细(订购单号,
29、序号,产品名称,单价,数量)values ('OR2222','20','哈根达斯','50','100');insert into 订购单明细(订购单号,序号,产品名称,单价,数量)values ('OR3333','21','哈根达斯','50','100');insert into 订购单明细(订购单号,序号,产品名称,单价,数量)values ('OR3333','22','哈根达斯
30、9;,'50','100');insert into 订购单明细(订购单号,序号,产品名称,单价,数量)values ('OR3333','23','哈根达斯','50','100');insert into 订购单明细(订购单号,序号,产品名称,单价,数量)values ('OR3333','24','哈根达斯','50','100');insert into 订购单明细(订购单号,序号,产品名称,单价
31、,数量)values ('OR3333','25','哈根达斯','50','100');insert into 订购单明细(订购单号,序号,产品名称,单价,数量)values ('OR3333','26','哈根达斯','50','100');insert into 订购单明细(订购单号,序号,产品名称,单价,数量)values ('OR3333','27','哈根达斯','50
32、','100');insert into 订购单明细(订购单号,序号,产品名称,单价,数量)values ('OR3333','28','哈根达斯','50','100');insert into 订购单明细(订购单号,序号,产品名称,单价,数量)values ('OR3333','29','哈根达斯','50','100');insert into 订购单明细(订购单号,序号,产品名称,单价,数量)values
33、 ('OR3333','30','哈根达斯','50','100');insert into 订购单明细(订购单号,序号,产品名称,单价,数量)values ('OR4444','31','哈根达斯','50','100');insert into 订购单明细(订购单号,序号,产品名称,单价,数量)values ('OR4444','32','哈根达斯','50','
34、;100');insert into 订购单明细(订购单号,序号,产品名称,单价,数量)values ('OR4444','33','哈根达斯','50','100');insert into 订购单明细(订购单号,序号,产品名称,单价,数量)values ('OR4444','34','哈根达斯','50','100');insert into 订购单明细(订购单号,序号,产品名称,单价,数量)values ('OR4
35、444','35','哈根达斯','50','100');insert into 订购单明细(订购单号,序号,产品名称,单价,数量)values ('OR4444','36','哈根达斯','50','100');insert into 订购单明细(订购单号,序号,产品名称,单价,数量)values ('OR4444','37','哈根达斯','50','100')
36、;insert into 订购单明细(订购单号,序号,产品名称,单价,数量)values ('OR4444','38','哈根达斯','50','100');insert into 订购单明细(订购单号,序号,产品名称,单价,数量)values ('OR4444','39','哈根达斯','50','100');insert into 订购单明细(订购单号,序号,产品名称,单价,数量)values ('OR4444',&
37、#39;40','哈根达斯','50','100');insert into 订购单明细(订购单号,序号,产品名称,单价,数量)values ('OR5555','41','哈根达斯','50','100');insert into 订购单明细(订购单号,序号,产品名称,单价,数量)values ('OR5555','42','哈根达斯','50','100');insert in
38、to 订购单明细(订购单号,序号,产品名称,单价,数量)values ('OR5555','43','哈根达斯','50','100');insert into 订购单明细(订购单号,序号,产品名称,单价,数量)values ('OR5555','44','哈根达斯','50','100');insert into 订购单明细(订购单号,序号,产品名称,单价,数量)values ('OR5555','45'
39、;,'哈根达斯','50','100');insert into 订购单明细(订购单号,序号,产品名称,单价,数量)values ('OR5555','46','哈根达斯','50','100');insert into 订购单明细(订购单号,序号,产品名称,单价,数量)values ('OR5555','47','哈根达斯','50','100');insert into 订购单明细(订
40、购单号,序号,产品名称,单价,数量)values ('OR5555','48','哈根达斯','50','100');insert into 订购单明细(订购单号,序号,产品名称,单价,数量)values ('OR5555','49','哈根达斯','50','100');insert into 订购单明细(订购单号,序号,产品名称,单价,数量)values ('OR5555','50','哈根达
41、斯','50','100');update 职工set 工资=工资*(1+0.1) where substring(职工号,1,6) in (select 仓库号from 仓库where 城市='北京');实验4 数据查询实验名称 使用SQL SELECT语句的数据查询操作。 实验内容 在实验二和实验三的基础上完成规定的查询操作。 实验目的:熟练掌握SQL SELECT命令。 实验方法在实验二和实验三的基础上使用SQL SELECT命令完成实验要求中所规定的各种查询。实验要求用S
42、QL SELECT命令完成以下查询(1)(12)是一般简单查询: 1. 职工表查询所有工资值(考虑去掉和不去掉重复值两种情况)。2. 查询仓库表中全部信息。3. 查询工资多于x元的职工号。 4. 查询哪些仓库有工资多于y元的职工。 5. 给出在仓库x或y(x,y是仓库号)工作,并且工资少于z元的职工号。 6. 查询工资在xy元范围内的职工信息(x>y)。 7. 从供应商表中查询出全部公司的信息(不要工厂或其他供应商的信息,即供应商名最后两个汉字是“公司”
43、的记录)。 8. 查询城市不是x的全部仓库信息。 9. 查询尚未确定供应商的订购单(即订购单的供应商号为空值的记录)。 10. 查询已经确定了供应商的订购单信息。 11. 按职工的工资值升序列出全部职工信息。 12. 先按仓库号升序,再按工资降序列出全部职工信息。 (13)(21)使用连接查询: 13. 查询工资多于x元的职工号和他们所在的城市。 14. 查询工作在面积大于x的仓库的职工号以及这些职工工作所在的城市。 15.
44、 根据职工表列出上一级经理及其职工(被其领导)的清单(即列出谁领导谁的清单)。 16. 列出仓库表和职工表的广义笛卡儿积的去处结果。 17. 根据仓库表和职工表的广义笛卡儿积得到仓库表和职工表进行自然连接的结果。 18. 查询供应商订购单信息,查询结果中包括供应商号、供应商名、订购单号和订购日期这4个字段。 19. 查询供应商订购单信息,查询结果中包括供应商号、供应商名、订购单号和订购日期这4个字段,要求结果中列出所有供应商信息(包括目前没有订购单的)。 20. 查询供应商订购单信息,
45、查询结果中包括供应商号、供应商名、订购单号和订购日期这4个字段,要求结果中能够反映目前没有确定供应商的订购单情况。 21. 查询供应商订购单信息,查询结果中包括供应商号、供应商名、订购单号和订购日期这4个字段,要求结果即能反映目前没有订购半日的供应商信息,又能反映目前没有确定供应商的订购单情况。(22) (31)使用嵌套查询(注意使用ANY,ALL和EXISTS): 22. 查询哪些城市至少有一个仓库的职工的工资为x元。 23. 查询所有职工的工资都多于x元的仓库的信息。 24. 查询和职工x挣同样工资的所有职工
46、信息。 25. 查询哪些城市的仓库向地址为x的供应商发出了订购单。 26. 查询地址为x的供应商目前有y城市仓库的订购单的供应商的名称(分别用嵌套查询和连接查询完成,分析各自的效率)。 27. 查询有职工的工资大于或等于x仓库中任何一名职工的工资的仓库号。 28. 查询有职工的工资大于或等于x仓库中所有职工的工资的仓库号。 29. 列出每人职工经手的具有最高金额的订购单信息。 30. 查询目前还没有职工的仓库的信息。 31. 查询目前至少有一个职
47、工的仓库的信息。 (32) (42)汇总和分组查询: 32. 查询目前仓库所在城市的数目。 33. 查询目前需要支付的职工工资的总数。 34. 查询x和y两个城市的仓库职工的工资总和。 35. 查询所有职工的工资都多于x元的仓库的平均面积。 36. 查询工资大于x元的职工所经手的订购单的最高金额。 37. 查询每个仓库的职工的平均工资。 38. 查询每个仓库的订购单的最高金额、最低金额和平均金额。 39. 查询至少
48、有5个订购项目的每张订购单的平均金额。 40. 列出职工全部记录并计算各仓库的平均工资和工资小计,最后给出全体职工的平均工资和工资总和(使用COMPUTEBY和COMPUTE)。 41. 列出全部订购单明细并计算各订购单的金额,最后给出所有订购单的平均金额和金额总计(使用COMPUTEBY和COMPUTE)。 42. 列出全部订购单记录并计算所有订购单的平均金额和金额总计(使用COMPUTE)。实验步骤1.select 工资from 职工;2.select * from 仓库;3.select 职工号from 职工where 工资&
49、gt;9999;4.select 仓库号from 仓库where 仓库号in (select 仓库号from 职工where 工资>9999);5.select 职工号from 职工where 工资<10000 and 仓库号='GH1111' or 仓库号='GH3333'6.select * from 职工where 工资>9000 and 工资<10000;7.select * from 供应商where 供应商名like '%回报%'8.select * from 仓库where 城市!='重庆'9
50、.select * from 订购单where 供应商号is NULL;10.select * from 订购单where 供应商号is not NULL;11.select * from 职工order by 工资asc;12.select * from 职工order by 仓库号asc; select * from 职工order by 工资desc;13.select 职工号,城市from 职工join 仓库on 工资>10000;14.select 职工号,城市from 职工join 仓库on 面积>300;15.select 经理,职工号from 职工where 经理=
51、'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 供应商.供应商号,供应商名,订购单号,订购日
52、期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 工资<=9999 and 仓库.仓库号=substring(职工号,1,6);
53、24.select * from 职工where 工资in (select 工资from 职工where 职工号='GH222222'); 25.select 城市from 仓库where 仓库号in (select substring(职工号,1,6) from 订购单where 供应商号in (select 供应商号from 供应商where 地址='杭州');26.select 供应商名from 供应商where 地址='杭州' and 供应商号in (select 供应商号from 订购单where substring(职工号,1,6)
54、in (select 仓库号from 仓库where 城市='重庆'); select distinct 供应商名from 供应商join 订购单on 供应商.供应商号=订购单.供应商号join 仓库on substring(订购单.职工号,1,6)=仓库.仓库号where 供应商.地址='杭州' and 仓库.城市='重庆'27.select substring(职工号,1,6) from 职工where 职工.工资>=any(select 工资from 职工where substring(职工号,1,6)='GH1111'
55、;);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 sub
56、string(职工号,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(金额)
57、 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 订购
58、单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 订购单
59、明细join 订购单on 订购单明细.订购单号=订购单.订购单号order by 订购单.订购单号compute sum(单价*数量) by 订购单.订购单号compute avg(单价*数量),sum(单价*数量);42.select 订购单.职工号,供应商号,订购单号,订购日期,金额from 订购单compute avg(金额),sum(金额);实验5 视图的应用实验名称 视图的建立和应用。 实验内容 在实验三和实验三的基础上定义视图,并在视图上完成查询、插入、更新和删除操作。 实验目的 掌握视图定义和应用的方法,体会视图和基本表的异同之处。实验方法 在实验二和实验三的
60、基础上用CREATE VIEW命令定义视图,然后使用SELECT命令完成查询,使用INSERT,UPDATE和DELETE命令分别完成插入、更新和删除操作。 实验要求1、 在实验二建立的基本表的基础上,按如下要求设计和建立视图: a) 基于单个表按投影操作定义视图。 b) 基于单个表按选择操作定义视图。 c) 基于单个表按选择和投影操作定义视图。 d) 基于多个表根据连接操作定义视图。 e) 基于多个表根据嵌套查询定义视图。 f) 定义含有虚字段
61、的视图。 2、 分别在定义的视图上设计一些查询(包括基于视图和基本表的连接或嵌套查询)。 3、 在不同的视图上分别设计一些插入、更新和删除操作,分情况讨论哪些操作可以成功完成,哪些操作不能完成,并分析原因。 4、 在实验报告中要给出具体的视图定义要求和操作要求,并针对各种情况做出具体的分析和讨论。实验步骤1.create view view1asselect 职工号,工资from 职工2.create view view2asselect * from 职工where 工资>100003.create view view3ass
62、elect 订购单号,金额from 订购单where 职工号='GH222222'4.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.
63、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.
64、0000')update view4 set 城市='邯郸' where 仓库号='GH3333'delete view3 where 订购单号='OR2223'实验6 游标实验名称 游标的设计和使用实验内容 在SQL Server环境下使用T-SQL的游标功能完成指定的操作。实验目的 理解和掌握游标的使用方法实验方法 在SQL Server环境下使用游标完成指定的操作。实验要求1、 定义一个游标,其内容是按单价升序列出的全部订购单及其明细信息。2、 逐一读出游标中的记录,并显示。实验步骤1. DECLARE 职工号nchar(8),供应
65、商号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 职工号+' '+供应商号+' '+ 订购单号+
66、9; '+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 '
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论