收藏 分销(赏)

实验五-视图及查询.doc

上传人:仙人****88 文档编号:7382817 上传时间:2025-01-01 格式:DOC 页数:6 大小:71KB 下载积分:10 金币
下载 相关 举报
实验五-视图及查询.doc_第1页
第1页 / 共6页
实验五-视图及查询.doc_第2页
第2页 / 共6页


点击查看更多>>
资源描述
实验五 查询和视图 一、 实验目的 1. 掌握SQL语句的定义功能和数据操作功能。 2. 掌握SQL语句的查询功能,包括连接查询,内外嵌套查询,带计算的查询等。 3. 掌握利用设计器创建和使用查询。 4. 掌握利用设计器创建和使用本地视图。 二、实验准备和要求 1. 将老师发给你们的“学生管理(自由表)”文件夹复制到在D盘并改名为自己的学号后两位和姓名,并选择“工具/选项/文件位置”,把该文件夹设为VFP的默认工作目录。 2. 作业提交要求:SQL命令直接在实验指导文档中写出,用查询和视图设计器做的查询和视图和实验指导文档一同上传。 三、实验内容与步骤 1.SQL的定义功能 (1) 用SQL的定义命令创建一个职工表(文件名为:zg.dbf),表结构如下所示。 字段名 类型 宽度 小数点 职工号 C 4 姓名 C 8 性别 C 2 出生日期 d 工资 N 7 2 命令:CREAT TABLE zg("职工号" C(4),"姓名" C(8),"性别" C(2),"出生日期" D,"工资" N(7,2)) (2) 修改上题创建的zg表。 ① 增加“职称”字段,类型为字符型,宽度为6。 命令: ALTER TABLE zg ADD COLUMN "职称" C(6) ② 删除“出生日期”字段。 命令: alter table zg drop 出生日期 ③ 把“性别”字段的类型改为逻辑型。 命令: alter table zg alter 性别 l ④ 把“工资”字段改名为“实发工资”。 命令: alter table zg rename "工资" to "实发工资" 2.SQL的操作功能 ① 给课程表(kc)插入一条记录("2001","英语精读",2," ")。 命令: insert into kc (课程号,课程名,学分) values (“2001”,”英语精读”,2) ② 给女同学的入学分数增加10分。(提示:用Update 命令)。 命令: update xsqk set 入学分数=入学分数+10 where 性别=”女” ③ 把课程号为“1003”的学分改为4分。(提示:用Update 命令)。 命令: update kc set 学分=4 where 课程号="1003" ④ 给成绩表(cj)中不及格成绩的数据加上删除标记。查看是否执行,再去掉删除标记。 命令: delete from cj where "成绩"<"60" Recall all 3. SQL语言的查询功能 (1)简单查询 ① 查询所有男同学的个人记录。 命令: select * from xsqk where 性别="男" ② 查询所有同学的学号、姓名、性别、专业、年龄和入学分数。 命令: select 学号,姓名,性别,专业,2012-year(出生日期) as 年龄,入学分数 from xsqk ③ 查询成绩表中不重复同学的学号(即去掉重复的学号)。(提示:用Distinct短语) 命令: select distinct 学号 from cj (2)条件查询 ① 查询“计算机科学”专业男同学的信息。 命令: select * from xsqk where 专业="计算机科学" and 性别="男" ② 查询1988年出生的“工业工程”专业同学的学号、姓名、性别、入学成绩和出生日期信息。 命令: select 学号,姓名,性别,入学分数,出生日期 from xsqk where year(出生日期)=1988 and 专业="工业工程" (3)对查询结果进行排序。 ① 查询“市场营销”专业入学分数前3名同学的情况。 命令: select * from xsqk where 专业="市场营销" top 3 order by 入学分数 ② 查询所有男同学,并且是1988年出生的学生情况,要求查询结果按专业升序、入学分数降序排列。 命令: select * from xsqk where 性别="男" and year(出生日期)=1988 order by 专业 asc,入学分数 desc (4)使用分组统计函数 ① 统计输出每个同学各门课程的成绩最高分、最低分和平均分,并按平均分降序排序。 (提示:按“学号”分组) 命令: select 学号,max(成绩) as 最高分,min(成绩) as 最低分, avg(成绩) as 平均分 from cj order by 平均分 desc group by 学号 ② 统计输出各门课程的人数和期末考试各门课程成绩的最高分、最低分和平均分并按最高分升序排序。 (提示:按“课程号”分组排序) 命令: select 课程号,count (*) as 人数,max (成绩) as 最高分, min(成绩) as 最低分,avg(成绩) as 平均分 from cj order by 最高分 asc group by 课程号 (5)联结查询 ① 查询“市场营销”专业的同学的所有课程成绩。包括同学的学号、姓名、专业、课程号、学期和成绩。(提示:对xsqk、cj两表连接) 命令: select xsqk.学号,xsqk.姓名,xsqk.专业,cj.学号,cj.课程号,cj.学期,cj.成绩 from xsqk full join cj on xsqk.学号=cj.学号 where 专业="市场营销" ② 列出所有不及格同学的学号、姓名、专业、课程号、课程名和成绩。(提示:对xsqk、cj、kc三表连接) 命令: select xsqk.学号,xsqk.姓名,xsqk.专业,kc.课程号,kc.课程名,cj.成绩 from xsqk join cj join kc on cj.课程号=kc.课程号 on xsqk.学号=cj.学号 where 成绩<60 ③ 为“市场营销”专业建立一个包括每个同学学号、姓名、专业和各课程成绩平均分的查询,按平均分降序排列。(提示:对xsqk、cj两表连接,并按cj表中的学号分组) 命令: select xsqk.学号,姓名,专业,avg(cj.成绩) as 平均分 from xsqk join cj on xsqk.学号=cj.学号 where 专业="市场营销" order by 平均分 desc group by cj.学号 (6)嵌套查询 ① 列出“市场营销”专业同学的所有成绩表中的记录,包括学号、课程号、学期、成绩。(提示:学号作为内外查询连接的条件) 命令: select *from cj where 学号 in (select 学号 from xsqk where 专业=”市场营销”) ② 查询成绩表(cj)中至今没有一门课程成绩的同学的信息。包括学号、姓名、性别、专业、出生日期和入学分数等。(提示:学号作为内外查询连接的条件) 命令: select * from xsqk where 学号 not in (select 学号 from cj) ③ 查询学分最高的课程信息。( 提示:先用Max函数在kc表中求出最高学分是多少) 命令: select *from kc where 学分=(select max(学分) from kc) (7)查询结果的不同去向 ① 查询“1001”号课程考试分数前2名的信息。(用Top 2短语在浏览窗口内显示) 命令: ② 查询“计算机科学”专业的学生信息并将结果存人临时表ls1中。 (使用Into Cursor ls1) 命令: ③ 查询学号为“20070101”的学生的考试成绩信息并将结果存人永久表xhcj中。(使用Into Table xhcj短语输出) 命令: 4. 用查询设计器创建查询 (1)简单查询: 用查询设计器创建对1989年出生且入学分数大于570分同学的查询,按入学分数排序。(保存为“简单查询”)。 (2)计算查询(字段为表达式): 建立统计各专业同学的人数的查询,字段包括专业、人数(保存为“计算查询”)。 提示: ① 需要用xsqk一个表。 ② 人数用表达式 Count(*) as 人数 ③ 分组依据按专业分组。 (3)多表联结查询:建立一个包括每个同学学号、姓名、专业和各课程平均分、总分以及最高分数、最低分数的查询。按学号排序。(保存为“多表查询”) 提示: ① 需要用xsqk和cj二个表! ② 平均分、总分以及最高分数、最低分数选用AVG()、Sum()、Max()函数。 ③ 要按学号分组才能得到各个同学的平均分、最高分等。 5. 用视图设计器创建本地视图 (做视图设计器的准备工作:先建立数据库xsgl.dbc,将老师发给你们的表添加到数据库中;然后将每个表做索引,做完索引后在进行各表连接。) (1)单表视图:用视图设计器创建包括所有人学分数在550分至570分的同学的学号、姓名、性别、专业和入学分数字段的视图并按入学分数从高到低排列。将入学分数设置为可更新字段。存盘,保存为“单表视图”后打开视图,显示其中女同学的记录并把某个同学的成绩更改分数。 关闭视图,选择学生表,看是否能够把修改结果传递回表中? 提示:入学分数600至700的表示方法可以有两种: ① 入学分数>=600 .and. 入学分数<=700 ② 入学分数 between 600,700 (2)多表联结视图:用视图设计器创建包括同学学号、姓名、性别、专业、课程号、课程名、学分、学期和成绩字段的视图,将成绩设置为课更新字段,且按照课程号及学号排序。保存为“多表视图”。 提示: ① 需要用xsqk、kc和cj三个表! ② 关键字段必须从主关键字表中选取。 存盘后打开视图,用命令进行下列操作(视图的操作和数据表操作命令一样): ① 列出“市场营销”专业同学的所有成绩表 ② 列出“张晓伟”同学的成绩单,并在视图中修改张晓伟同学的成绩。 ③ 打开成绩表,查看张晓伟同学的成绩修改情况。
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 教育专区 > 小学其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服