资源描述
网络数据库SQL Server 实训报告
日期: 2010 年 10 月 13 日 班 级: 09级计算机信息管理
学 号
姓 名
指导老师
实训地点
成绩
27
蔡锦标
罗小平
教A505
实训项目名称
实训五 表中数据的操作(一)
一、实训目的和要求
1、掌握使用企业管理器来操作表中数据的方法;
2、掌握使用select语句查询数据的方法;
3、掌握使用insert 语句插入数据的方法;
4、掌握使用update语句更新数据的方法;
5、掌握使用delete 语句删除数据的方法。
二、实训所需仪器、设备
硬件:计算机
软件:操作系统Windows XP、SQL Server 2005
三、实训内容
(一) select语句的练习
1、纵向查询(即筛选记录)
(1)显示jobs2中所有记录。
(2)显示前5条记录。
(3)显示前10%条记录。
(4)显示“最低日工资”低于30的记录。
(5)显示“最低日工资”大于70且“最高日工资”小于200的记录。
(6)显示“工种描述”中包含“ Officier”或者 “Manager”的记录。
(7)显示“工种描述”中以”M”开头的记录。
(8)显示“工种描述”中最后一个字母以”r”结束的记录。
(9)显示表中共有哪些标准的“最低日工资”?(即筛选出不重复的“最低日工资”)
2、横向查询(即筛选字段)
(1)显示全部记录的job_id和job_desc两个字段内容。
(2)显示全部记录的min_lvl字段内容。
3、横纵向混合查询
(1)显示前5条记录的job_id和job_desc两个字段内容。
(2)显示“工种描述”中包含“M”的job_id和job_desc两个字段的内容。
4、排序(即order by的用法)
(1)以job_id的降序显示全部记录。
(2)以min_lvl的升序显示全部记录,在min_lvl相同的情况下以max_lvl的降序显示。
(3)筛选出job_desc字段中以”P”开头的记录,显示时以job_id的降序显示。
5、聚合函数的使用
(1)统计表中共涉及到多少个不同标准的“最低日工资”?
(2)统计“最高日工资”高于200的记录个数
(3)统计所有记录的“最高日工资”的和。
(4)统计所有记录的“最高日工资”的平均值。
(5)显示“最高日工资”的最大值。
(6)显示“最低日工资”的最小值。
6、多表查询
(1)显示所有职员姓名和工种描述。
(2)显示当前空缺的工种。(即jobs2的job_id在employee还没有出现的记录)
(二)insert 语句的练习
1、插入单条记录
向表jobs2加入一个新工种,工种描述是“writer”,最低日工资为20,最高日工资为100。
2、批量插入记录
将表jobs2中“最高日工资”高于200的记录再次插入到jobs2中。
(三)update语句的练习
1、将jobs2表中的所有“最低日工资”在原来的基础上加10
2、将jobs2表中的“最高日工资”低于100的在原来的基础上加10
(四)delete语句的练习
1、将jobs2表中的所有“最低日工资”低于20的记录删除。
2、将jobs2表中的“工种描述”包含“m”的记录删除。
四、实训步骤
(内容说明:1.大致的操作步骤;
2.源代码,要标注题号)
1. 纵向查询(即筛选记录)
(1) 显示jobs中所有记录。
语句:
use pubs
go
select * from jobs
(2) 显示前5条记录。
语句:
use pubs
go
select top 5 * from jobs
(3) 显示前10%条记录。
语句:
use pubs
go
select top 10 percent * from jobs
(4) 显示“最低日工资”低于30的记录。
语句:
use pubs
go
select job_id,job_desc, max_lvl ,min_lvl as 最低日工资 from jobs
where min_lvl<30
(5) 显示“最低日工资”大于70且“最高日工资”小于200的记录。
语句:
use pubs
go
select job_id,job_desc ,最低日工资=min_lvl,max_lvl as 最高日工资 from jobs
where min_lvl>70 and max_lvl<200
(6) 显示“工种描述”中包含“Officer”或者 “Manager”的记录。
语句:
use pubs
go
select job_id,job_desc as 工种描述,min_lvl,max_lvl from jobs
where job_desc like '%Officer%' or job_desc like '%Manager%'
(7) 显示“工种描述”中以”M”开头的记录。
语句:
use pubs
go
select job_id,job_desc as 工种描述,min_lvl,max_lvl from jobs
where job_desc like 'M%'
(8) 显示“工种描述”中最后一个字母以”r”结束的记录。
语句:
use pubs
go
select job_id,job_desc as 工种描述,min_lvl,max_lvl from jobs
where job_desc like '%r'
(9) 显示表中共有哪些标准的“最低日工资”?(即筛选出不重复的“最低日工资”)
语句:
use pubs
go
select distinct 最低日工资=min_lvl from jobs
2. 横向查询(即筛选字段)
(1) 显示全部记录的job_id和job_desc两个字段内容。
语句:
use pubs
go
select job_id,job_desc from jobs
(2) 显示全部记录的min_lvl字段内容。
语句:
use pubs
go
select min_lvl from jobs
3. 横纵向混合查询
(1) 显示前5条记录的job_id和job_desc两个字段内容。
语句:
use pubs
go
select top 5 job_id,job_desc from jobs
(2) 显示“工种描述”中包含“M”的job_id和job_desc两个字段的内容。
语句:
use pubs
go
select job_id,job_desc from jobs where job_desc like '%M%'
4. 排序(即order by的用法)
(1) 以job_id的降序显示全部记录。
语句:
use pubs
go
select * from jobs
order by job_id desc
(2) 以min_lvl的升序显示全部记录,在min_lvl相同的情况下以max_lvl的降序显示。
语句:
use pubs
go
select * from jobs
order by min_lvl asc,max_lvl desc
(3) 筛选出job_desc字段中以”P”开头的记录,显示时以job_id的降序显示。
语句:
use pubs
go
select job_desc from jobs
where job_desc like 'P%'
order by job_id desc
5. 聚合函数的使用
(1) 统计表中共涉及到多少个不同标准的“最低日工资”?
语句:
use pubs
go
select count(distinct min_lvl) from jobs
(2) 统计“最高日工资”高于200的记录个数
语句:
use pubs
go
select count(*) from jobs where max_lvl>200
(3) 统计所有记录的“最高日工资”的和。
语句:
use pubs
go
Select sum(max_lvl) as 最高日工资和 from jobs
(4) 统计所有记录的“最高日工资”的平均值。
语句:
use pubs
go
Select avg(max_lvl) from jobs
(5) 显示“最高日工资”的最大值。
语句:
use pubs
go
Select max(max_lvl) from jobs
(6) 显示“最低日工资”的最小值。
语句:
use pubs
go
Select min(min_lvl) from jobs
6. 多表查询
说明:在pubs数据库中有一个职员表employee,其中有姓名fname、工种编号job_id等字段,但没有工种描述job_desc字段,按要求完成下列查询:
(1) 显示所有职员姓名和工种描述。
语句:
use pubs
go
Select fname, jobs.job_desc from employee, jobs
where employee.job_id=jobs.job_id
(2) 显示当前空缺的工种。(即jobs的job_id在employee还没有出现的记录)
语句:
use pubs
go
select * from jobs where job_id not in (select job_id from employee)
(二)insert 语句的练习
1、插入单条记录
向表jobs2加入一个新工种,工种描述是“writer”,最低日工资为20,最高日工资为100。
语句:
use pubs
go
INSERT INTO jobs (job_desc, min_lvl, max_lvl) VALUES ('writer', 20, 100)
2、批量插入记录
将表jobs2中“最高日工资”高于200的记录再次插入到jobs2中。
语句:
use pubs
go
INSERT INTO jobs SELECT job_desc, min_lvl, max_lvl FROM jobs
WHERE (max_lvl > 200)
(三)update语句的练习
1、将jobs2表中的所有“最低日工资”在原来的基础上加10
语句:
use pubs
go
update jobs
set Min_lvl= Min_lvl+10
2、将jobs2表中的“最高日工资”低于100的在原来的基础上加10
语句:
use pubs
go
update jobs
set max_lvl= max_lvl+10
where max_lvl <100
(四)delete语句的练习
1、将jobs2表中的所有“最低日工资”低于20的记录删除。
语句:
use pubs
go
delete from jobs where min_lvl <20
2、将jobs2表中的“工种描述”包含“m”的记录删除。
语句:
use pubs
go
delete from jobs where job_desc like '%m%'
五、总结与分析
(内容说明:1.对此次实训原理的归纳;
2.对此次实训过程中出现问题的分析及解决办法;
3.此次实训的收获或体会等)
1. 这次实训主要是运用SQL语句实现一些简单的查询。
2. 实训过程中,出现的问题主要是对语句的不熟悉和不理解。一些查询的语句掌握的不够熟练,通过看书,认真理解语句,结合书本的例子,最后将问题解决。
3. 通过实训,我掌握了使用企业管理器来操作表中数据的方法;掌握了运用select、insert、update、delete等语句实现对数据的查询、插入、修改、删除的方法。基本达到实训目标。
8
展开阅读全文