资源描述
2012级计算机专业 集美大学计算机工程学院 20012~2013学年第一学期
《数据库原理》实验报告
题目: 实验二 建立数据库及表
学号:2010810072
成
绩
姓名: 罗忠霖
日期:2012/11/22
一、 实验使用环境:
Window7 、SQL Server 2005
二、 实验内容与完成情况:
1. 查询2013年3月10日以前进货且进货价大于500元的商品信息,进货价格按从大到小排序。
程序代码
select* from
Purchase
where (进货时间<'2012-03-10' and 进货价>500)
order by 进货价desc
运行结果
2.创建一个新表名为:总金额表。字段包含:商品名称,总金额,返回的结果集行的百分比为
程序代码
select top 50 percent
商品名称,(数量* 进货价) as 总金额
into newtable
from Purchase
select * from newtable--查看表信息
运行结果
3.汇总各部门的员工人数
程序代码
select 部门,count(*) as 员工人数
from Employees
group by 部门
运行结果
4.显示如下结果
程序代码
select 部门,性别,count(*)as 员工人数
from Employees
group by 性别,部门
运行结果
5.显示如下结果
程序代码
select 部门,性别,count(*) as 人数
from Employees
group by 部门,性别
with cube
运行结果
6.分别统计各个员工的销售总数:(使用COMPUTE)
程序代码
select 售货员工编号,商品编号,数量
from Sell
order by 售货员工编号
compute sum(数量) by 售货员工编号
运行结果
7.查询商品名称,销售编号及销售数量,包括没有销售的商品名称。
程序代码
select 商品名称,销售编号,Sell.数量
from Purchase left join Sell
on (Sell.商品编号)=(Purchase.商品编码)
运行结果
8.使用笛卡尔积连接两张表Purchase和Sell
程序代码
select *
from Purchase cross join Sell
运行结果
9.为新建的表创建唯一性聚集索引:
程序代码
create table 生产厂商表(
厂商编号int identity(1,1) not null,
厂商名称varchar(30) not null,
法人代表varchar(8) ,
厂商地址varchar(50)
)
create unique index weiyi on 生产厂商表(厂商编号asc)
运行结果
10.为Employees表的“姓名”字段创建一个名为“I_姓名”的非聚集索引,使用降序排列,填充因子为:
程序代码
create index I_姓名on Employees(编号desc)
运行结果
11.显示Employees表的I_姓名索引的碎片统计信息。
程序代码
运行结果
12.创建一个新视图v1,要求查询采购部的赵飞燕所采购商品的销售情况:并对视图v1取消加密:
程序代码
create view v1
with encryption
as
select 商品编码,商品名称,Sell.数量as 卖出数量,售出时间
from Purchase full join Sell
on Purchase.商品编码=Sell.商品编号
where 进货员工编号=(select 编号from Employees where(姓名='赵飞燕'and 部门='采购部'))
select * from v1--查看视图信息
运行结果
13.修改视图v1,要求查询该公司年月份商品的销售情况和每一笔销售的纯利润,并对视图v1取消加密。
程序代码
alter view v1
as
select
运行结果
14.将指定的全校学生信息表(execl表)导入到SQL Server的数据库中Pubs中,表名为Student。并修改相应的字段名类型。
1)执行代码:
select * from Student
where 班级in ('计算1011','计算1012,'计算1013','计算1014')
显示查询计划
程序代码
select * from Student
where 班级in ('计算1011','计算1012,'计算1013','计算1014')
运行结果
2)在班级字段中建立索引
建立索引:create index in1 on Student(班级)
执行代码:
select * from Student
where 班级in ('计算1011','计算1012,'计算1013','计算1014')
显示查询计划,根据以上结果给出结论
结果:和第一题的结果一样,这里就不截图了!
14题总结论:第一,通过创建唯一性索引,可以保证数据库表中每一行数据的唯一性。
第二,可以大大加快 数据的检索速度,这也是创建索引的最主要的原因。
第三,可以加速表和表之间的连接,特别是在实现数据的参考完整性方面特别有意义。
第四,在使用分组和排序 子句进行数据检索时,同样可以显著减少查询中分组和排序的
时间。
第五,通过使用索引,可以在查询的过程中,使用优化隐藏器,提高系统的性能。
三、 出现的的问题和解决方案(列出遇到的问题和解决办法,列出没有解决的问题)
遇到的问题
解决办法
第一个遇到的问题就是在做第二题时候,要返回结果中的百分之五十,我刚开始的时候出错了,因为我把top 数字 percent放错位置了
因为我错在把top 数字 percent放在结果列之后,所以我换了一下位置就解决了!
第二个问题就是在对数据进行导入的时候,没有导入全部数据,只显示部分!
因为我在导入数据的时候,我没有往下做,我单纯看预览来决定是否完全导入,因为预览只能显示部门结果,我怀疑自己是不是做错了,后来完完整整地做完所有步骤,发现自己没错
未解决的问题
第13题,我不知道查询公司年月份销售情况这句是什么意思,所以13题没有做!
11
展开阅读全文