1、 网络数据库SQL Server 实训报告 日期: 2010 年 10 月 13 日 班 级: 09级计算机信息管理 学 号 姓 名 指导老师 实训地点 成绩 27 蔡锦标 罗小平 教A505 实训项目名称 实训五 表中数据的操作(一) 一、实训目的和要求 1、掌握使用企业管理器来操作表中数据的方法; 2、掌握使用select语句查询数据的方法; 3、掌握使用insert 语句插入数据的方法; 4、掌握使用update语句更新数据的方法; 5、掌握使用delete 语句删除数据的方法。 二、实训所需仪器、设备 硬件:计算
2、机 软件:操作系统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)显示表中共有哪些标准的“最低日工资”?
3、即筛选出不重复的“最低日工资”) 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”开头的记录
4、显示时以job_id的降序显示。 5、聚合函数的使用 (1)统计表中共涉及到多少个不同标准的“最低日工资”? (2)统计“最高日工资”高于200的记录个数 (3)统计所有记录的“最高日工资”的和。 (4)统计所有记录的“最高日工资”的平均值。 (5)显示“最高日工资”的最大值。 (6)显示“最低日工资”的最小值。 6、多表查询 (1)显示所有职员姓名和工种描述。 (2)显示当前空缺的工种。(即jobs2的job_id在employee还没有出现的记录) (二)insert 语句的练习 1、插入单条记录 向表jobs2加入一个新工种,工种描述是“writer”,最低日
5、工资为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中所有记录
6、 语句: 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) 显示
7、最低日工资”大于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%'
8、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) 显示表中
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
10、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 b
11、y 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) 统计表
12、中共涉及到多少个不同标准的“最低日工资”? 语句: 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) 统计所有记录的“最高日工资”的平均值。 语句:
13、 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) 显示所有职员姓
14、名和工种描述。 语句: 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加入一个新工种,工
15、种描述是“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、
16、将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 <
17、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






