4. 上机练习(排序和索引部分)
数据库上机练习题
数据库上机练习题数据库上机练习题在学习数据库课程时,上机练习题是非常重要的一部分。
通过上机练习,我们可以巩固理论知识,提高实践能力,并且更好地理解数据库的概念和应用。
本文将介绍一些常见的数据库上机练习题,帮助读者更好地应对这些挑战。
一、基本查询数据库的基本查询是我们在实际应用中最常用的功能之一。
在上机练习中,我们通常需要编写SQL语句来实现一些简单的查询操作。
比如,查询某个表中的所有记录、按条件筛选记录、排序等等。
举个例子,假设我们有一个学生表,包含学生的学号、姓名、性别和年龄等字段。
我们可以通过以下SQL语句查询所有学生的信息:SELECT * FROM students;如果我们只想查询女生的信息,可以使用以下语句:SELECT * FROM students WHERE gender = '女';二、表的连接在实际应用中,我们经常需要从多个表中获取数据,并进行关联和处理。
上机练习中,表的连接是一个常见的考点。
通过表的连接,我们可以根据某个字段将两个或多个表关联起来,从而获取更丰富的信息。
举个例子,假设我们有一个学生表和一个课程表,学生表中包含学生的学号和姓名,课程表中包含课程的编号和名称。
我们可以使用以下SQL语句查询每个学生所选的课程:SELECT , FROM studentsINNER JOIN coursesON students.student_id = courses.student_id;三、子查询子查询是数据库中非常有用的一种技术,它可以将一个查询的结果作为另一个查询的输入。
在上机练习中,我们经常需要使用子查询来解决一些复杂的问题。
举个例子,假设我们有一个订单表和一个产品表,订单表中包含订单的编号和产品的编号,产品表中包含产品的编号和价格。
我们可以使用以下SQL语句查询每个订单的总金额:SELECT order_id,(SELECT SUM(price) FROM products WHERE products.product_id =orders.product_id) AS total_priceFROM orders;四、数据更新除了查询,数据库还提供了数据更新的功能。
计算机二级VF上机模拟题
计算机二级VF上机模拟题计算机二级VF上机模拟题一、基本操作题(共4小题,第1和2题是7分、第3和4题是8分)在考生文件夹下完成下列操作(在"成绩管理"数据库中完成):1、为"学生"表在"学号"字段上建立升序主索引,索引名和索引表达式均为学号。
2、为"学生"表的"性别"字段定义有效性规则,规则表达式为:性别$"男女",出错提示信息是:"性别必须是男或女"。
3、在"学生"表的"性别"和"年龄"字段之间插入一个"出生日期"字段,数据类型为"日期型"(修改表结构)。
4、用SQL的UPDATE命令将学生"王三风"的出生日期修改为1983年5月1日,并将该语句粘贴在SQL2.TXT文件中(第一行、只占一行)。
二、简单应用(2小题,每题20分,计40分)1、根据考生文件夹下的txl表和jsh表建立一个查询query2,查询出单位是"南京大学" 的所有教师的姓名、职称、电话,要求查询去向是表,表名是query2.dbf,并执行该查询。
2、建立表单enterf,表单中有两个命令按钮,按钮的`名称分别为cmdin和cmdout,标题分别为"进入"和"退出"。
三、综合应用(1小题,计30分)在考生文件夹下有仓库数据库CK3,包括如下所示两个表文件:CK(仓库号C(4),城市C(8),面积N(4));ZG(仓库号C(4),职工号C(4),工资N(4))。
设计一个名为ZG3的菜单,菜单中有两个菜单项"统计"和"退出"。
程序运行时,单击"统计"菜单项应完成下列操作:检索出所有职工的工资都大于1220元的职工所管理的仓库信息,将结果保存在wh1数据表(WH1为自由表)文件中,该文件的结构和CK数据表文件的结构一致,并按面积升序排序。
计算机二级《VFP》上机操作试题及答案
计算机二级《VFP》上机操作试题及答案计算机二级《VFP》上机操作试题及答案一、基本操作题(共18分)在考生文件夹下完成下列操作:(1)新建“点歌”数据库,将考生文件夹下的所有自由表添加到该数据库中。
(2)新建一个项目“点歌系统”,将“点歌”数据库添加进该项目。
(3)为“歌曲”表创建一个主索引,索引名为PK,索引表达式为“歌曲id”;再创建一个普通索引,索引名和索引表达式均为“演唱者”,以上索引都为升序。
(4)为“歌手,,表创建一个主索引,索引名和索引表达式都为“歌手id”,升序。
为“歌曲”和“歌手”表创建永久联系,并设置参照完整性约束:更新规则为“级联”,其他默认。
二、简单应用题(共24分)在考生文件夹下完成下列操作:(1)在考生文件夹下利用查询设计器创建一个查询,从表中查询演唱“粤语”歌曲的歌手。
查询结果包含歌手的姓名、语言和点歌码三个字段;各记录按“点歌码”降序排序,点歌码相同的再按“演唱者”升序排序;查询去向为表ta。
最后将查询保存在qa.qpr文件中,并运行该查询。
(2)使用一对多报表向导建立报表,要求父表为“歌手”,子表为“歌曲”。
从父表中选择字段“姓名”和“地区”,从子表中选择字段“歌曲名称”和“点歌码”,两个表通过“歌手id”和“演唱者”建立联系,按“姓名”升序排序,其他默认,生成的报表名为“歌手报表”。
三、综合应用题(共18分)在考生文件夹下完成下列操作:为了查询不同歌手演唱的歌曲,请设计一个表单mform.scx,其界面如下图所示:表单控件名为formone表单的标题为“歌曲查询”。
表单左侧有一个标签控件Labelone,显示内容为“输入歌手姓名”,一个文本框控件Textone用于输入歌手姓名, 个命令按钮Commanda和Commandb分别显示“查询”和“退出”,以及一个表格控件Gridone。
表单运行时,用户首先在文本框中输入歌手“刘德华”,然后单击“查询”按钮,如果输入正确,在表单右侧以表格形式显示此歌手的演唱的歌曲信息,包括歌曲名称、语言和歌,按点歌码升序排序,并将此信息存入tb.dbf文件中。
vfp上机练习题_索引与排序
vfp上机练习题_索引与排序排序与索引将sb.dbf复制到D盘根目录下的xxx文件夹(xxx可用任意字母代替),执行命令:SET DEFAULT TO D:\XXX。
一、表的排序命令SORT示例1:将所有设备按部门降序排列,部门相同时按价格升序排列USE SBSORT TO bmjg ON 部门/D,价格/AUSE bmjgLIST示例2:将所有设备按部门升序排列,部门相同按启用日期降序排列,要求只包含编号、名称、启用日期及部门4个字段。
USE sbSORT TO bmrq ON 部门/A,启用日期/D FIELDS 编号,名称,启用日期,部门USE bmrqLIST2(表的索引命令建立索引的命令示例1:为设备表以价格字段作为索引关键字建立普通索引,要求降序排列USE sbINDEX ON 价格 TAG jg DESCENDINGLIST示例2:为设备表以编号作为索引关键字建立候选索引,要求升序排列USE sbINDEX ON 编号 TAG bh ASCENDING CANDIDATELIST示例3:为设备表以启用日期作为索引关键字建立普通索引,要求降序排列USE sbINDEX ON 启用日期 TAG qyrq DESCENDINGLIST示例4:为设备表建立索引,要求按部门升序排列,部门相同时按启用日期升序排列USE SBINDEX ON 部门+DTOS(启用日期) TAG bmrq ASCENDINGLIST示例5:为设备表建立索引,要求按部门降序排列,部门相同时按价格降序排列USE sbINDEX ON 部门+str(价格,9,2) TAG bmjg1 DESCENDINGLIST示例6:为设备表建立索引,要求按部门升序排列,部门相同时按价格降序排列USE sbINDEX ON val(部门)-价格/1000000 TAG bmjg2 ASCENDINGLIST示例7:为设备表建立索引,要求按部门降序排列,部门相同时按价格升序排列USE sbINDEX ON val(部门)-价格/1000000 TAG bmjg3 DESCENDINGLIST注意:比较示例6和示例7确定主控索引的命令示例1:确定jg为当前主控索引SET ORDER TO TAG jg示例2:确定bmjg2为当前主控索引SET ORDER TO bmjg2二、用SELECT-SQL命令建立查询1(单表查询示例查询所有设备信息SELECT * FROM sb查询价格在一万元以上的设备信息SELECT * FROM sb WHERE 价格>=10000查询价格在一万元以上、十万元以下的设备的编号、名称及价格SELECT 编号,名称,价格 FROM sb WHERE 价格>=10000 AND 价格<=100000 查询所有设备的编号、名称及价格,并按价格降序排列SELECT 编号,名称,价格 FROM sb ORDER BY 价格 DESCENDING查询按价格由高到低排列后的前3条记录SELECT * FROM sb ORDER BY 价格 DESCENDING TOP 3 ? 查询价格在一万元以上的设备台数SELECT COUNT(*) AS 万元以上设备台数 FROM sb WHERE 价格>=10000 查询主要设备和非主要设备的台数SELECT 主要设备,COUNT(*) AS 设备台数 FROM sb GROUP BY 主要设备查询资产总额SELECT SUM(价格) AS 资产总额 FROM sb ? 查询各部门资产额SELECT 部门,SUM(价格) AS 部门资产额 FROM sb GROUP BY 部门查询各部门资产额,仅列出部门资产在一万元以上的记录,并按部门资产额降序排列SELECT 部门,SUM(价格) AS 部门资产额 FROM sb GROUP BY 部门;HAVING SUM(价格)>=10000 ORDER BY 2 DESCENDING ? 查询各设备的累计增值金额SELECT 编号,SUM(增值) AS 累计增值金额 FROM zz GROUP BY 编号查询累计大修费用在五千元以上的设备编号及累计大修费用SELECT 编号,SUM(费用) AS 累计大修费用 FROM dx GROUP BY 编号;HAVING 累计大修费用>=50002(多表查询示例查询所有设备的编号、名称、价格及所在部门的名称 ? SELECT sb.编号,sb.名称 AS 设备名称,sb.价格,bmdm.名称 AS 部门名称;FROM sb,bmdm WHERE sb.部门=bmdm.代码SELECT sb.编号,sb.名称 AS 设备名称,sb.价格,bmdm.名称 AS 部门名称;FROM sb JOIN bmdm ON sb.部门=bmdm.代码 ? 查询部门资产额在十万元以上的部门名称及资产额,并按资产额降序排列SELECT bmdm.名称,SUM(sb.价格) AS 部门资产额 FROM sb,bmdm;WHERE sb.部门=bmdm.代码 GROUP BY 部门;HAVING 部门资产额>=100000 ORDER BY 2 DESCENDING ? SELECT bmdm.名称,SUM(sb.价格) AS 部门资产额;FROM sb JOIN bmdm ON sb.部门=bmdm.代码 GROUP BY 部门;HAVING 部门资产额>=100000 ORDER BY 2 DESCENDING ? 查询增值设备的名称及累计增值金额,并按累计增值金额降序排列SELECT sb.名称,SUM(zz.增值) AS 累计增值金额 FROM sb,zz;WHERE sb.编号=zz.编号 GROUP BY zz.编号 ORDER BY 2 DESCENDINGSELECT sb.名称,SUM(zz.增值) AS 累计增值金额FROM sb;JOIN zz ON sb.编号=zz.编号 GROUP BY zz.编号 ORDER BY 2 DESCENDING 查询累计大修费用在五千元以上的设备名称及累计大修费用SELECT sb.名称,SUM(dx.费用) AS 累计大修费用 FROM sb,dx;WHERE sb.编号=dx.编号 GROUP BY dx.编号 HAVING 累计大修费用>5000SELECT sb.名称,SUM(dx.费用) AS 累计大修费用 FROM sb JOIN dx;ON sb.编号=dx.编号 GROUP BY dx.编号 HAVING 累计大修费用>5000 查询增值设备的名称、所在部门名称及累计增值金额 ? SELECT sb.名称 AS 设备名称,bmdm.名称 AS 部门名称,;SUM(zz.增值) AS 累计增值金额 FROM sb,bmdm,zz;WHERE sb.部门=bmdm.代码 AND sb.编号=zz.编号;GROUP BY zz.编号SELECT sb.名称 AS 设备名称,bmdm.名称 AS 部门名称,;SUM(zz.增值) AS 累计增值金额;FROM sb JOIN bmdm ON sb.部门=bmdm.代码 JOIN zz ON sb.编号=zz.编号;GROUP BY zz.编号查询大修过的设备名称、所在部门名称及累计大修费用SELECT sb.名称 AS 设备名称,bmdm.名称 AS 部门名称,;SUM(dx.费用) AS 累计大修费用 FROM sb,bmdm,dx;WHERE sb.部门=bmdm.代码 AND sb.编号=dx.编号;GROUP BY dx.编号SELECT sb.名称 AS 设备名称,bmdm.名称 AS 部门名称,;SUM(dx.费用) AS 累计大修费用;FROM sb JOIN bmdm ON sb.部门=bmdm.代码 JOIN dx ON sb.编号=dx.编号; GROUP BY dx.编号三、用查询设计器建立查询1(建立查询的命令CREATE QUERY <查询文件名>MODIFY QUERY <查询文件名〉示例:CREATE QUERY cx1MODIFY QUERY cx2注意:查询文件的扩展名为.qpr2(运行查询的命令DO <查询文件名〉示例:DO cx1.qprDO cx2.qpr注意:命令中查询文件的扩展名不可省略3(练习用查询设计器建立单表及多表查询。
浙江大学C语言上机练习参考答案汇总
上机练习——精选推荐
上机练习1.查询学生选课表中的全部数据。
答:select * from SC2.查询计算机系的学生的姓名、年龄。
答:select sname,sage from student where sdept = '计算机系'3. 查询成绩在70~80分之间的学生的学号、课程号和成绩。
答:select sno,cno,grade from sc on where grade between 70 and 801.查询计算机系年龄在18~20之间且性别为“男”的学生的姓名、年龄。
答:select sname,sage from studentwhere sdept = '计算机系' and sage between 18 and 20 and ssex = '男'2.查询“C001”号课程的最高分。
答:select max(grade) from sc where cno = 'C001'6. 查询计算机系学生的最大年龄和最小年龄。
答:select max(sage) as max_age, min(sage) as min_age from student where sdept = '计算机系'7. 统计每个系的学生人数。
答:select sdept,count(*) from student group by sdept8. 统计每门课程的选课人数和考试最高分。
答:select cno, count(*),max(grade) from sc group by cno9. 统计每个学生的选课门数和考试总成绩,并按选课门数升序显示结果。
答:select sno,count(*), sum(grade) from sc group by sno order by count(*) asc10. 查询总成绩超过200分的学生,要求列出学号和总成绩。
计算机二级VFP 实验7 排序与索引(答案)
实验五排序命令一、实验目的1、排序命令sort、index二、实验内容1、排序命令sortuse 学生listsort to rx on 入校总分/d fields 学号,姓名,入校总分(其中:sort ——对当前表排序To rx ——生成的新表文件名on 入校总分/d ——按“入校总分”字段值从高到低(降序)排列记录顺序fields 学号,姓名,入校总分——新表包含的字段use rx && 打开生成的新表“rx”list && 查看“入校总分”表记录的排列顺序Use 学生Sort to dd on 性别/a,出生年月/d fields 学号,姓名,性别,出生年月ListUse dd 注意查看dd表的结构(字段)与记录顺序根据要求写出命令:对“学生“中的男生记录按出生年月降序排列。
2、排序命令index(知识点:索引文件、索引类型)注意:两条命令格式的差别use 学生index on 入校总分to zf && 按入校总分建立单索引文件zflist && 显示建立索引后的记录顺序请问:在默认目录下增加的文件名和扩展名是什么?Zf .idxuse 学生index on 姓名tag xm descending&& 以姓名降序排列,建立索引标识为xm 的复合索引。
Go top?recno() &&返回的记录号是 5Skip -1?recno() &&返回的记录号是 5请问:在默认目录下增加的文件名和扩展名是什么?结构复合索引文件:学生 .cdx 索引标识xm根据下列要求写出相应命令1)、对课程.dbf按课程名称字段建立索引标识名为kc 的候选索引;Use 课程Index on 课程名称tag kc candidate2)、对课程.dbf按课时字段为建立名为Ks的单索引文件;Use 课程Index on 课时to ks根据要求写出命令:将课程表中所有姓“李”的记录物理删除:use 课程delete for left(任课教师,2)="李"利用学生成绩.dbf,计算每个学生的总成绩,其中“听力”和“口语”各占总分的30%,笔试占总分的40%。
vfp索引练习题
vfp索引练习题作为程序员或数据分析师,熟练运用VFP (Visual FoxPro) 索引功能是非常重要的。
索引可以大幅提高查询和排序的效率,使得数据处理更加迅速和高效。
为了帮助大家熟悉和掌握VFP索引的使用,本文将介绍一些VFP索引的练习题。
1. 普通索引首先,我们来练习创建一个普通索引。
请按照以下步骤操作:Step 1:创建一个新的VFP表格,包含以下字段:- 学生姓名 (Name):字符型,长度为50- 学生年龄 (Age):整型- 学生性别 (Gender):字符型,长度为10Step 2:随机生成一些学生记录,并将它们添加到表格中。
Step 3:使用VFP的CREATE INDEX命令创建一个基于学生姓名(Name)字段的索引。
Step 4:尝试执行一些针对学生姓名的查询,并观察查询效率的提升。
2. 联合索引接下来,我们将练习创建一个联合索引,以提高多字段查询的效率。
请按照以下步骤操作:Step 1:在上一步创建的表格中添加一个字段:学生学号(StudentID),整型。
Step 2:使用VFP的CREATE INDEX命令创建一个基于学生姓名(Name) 和学生学号 (StudentID) 字段的联合索引。
Step 3:尝试执行一些针对学生姓名和学号的查询,并观察查询效率的提升。
3. 分组索引最后,我们将练习创建一个分组索引,以优化分组和汇总操作的效率。
请按照以下步骤操作:Step 1:在上一步创建的表格中添加一个字段:科目 (Subject),字符型,长度为50。
Step 2:使用VFP的CREATE INDEX命令创建一个基于科目(Subject) 字段的分组索引。
Step 3:尝试执行一些根据科目进行分组和汇总的查询,并观察查询效率的提升。
通过完成以上三个练习题,相信你对VFP索引的使用有了更深入的理解。
索引的选择与设计对于数据库的性能至关重要,合理使用索引可以极大地提高查询和排序的效率,从而提升整个系统的性能。
VFP上机练习题_索引与排序
排序与索引将sb.dbf复制到D盘根目录下的xxx文件夹(xxx可用任意字母代替),执行命令:SET DEFAULT TO D:\XXX。
一、表的排序命令SORT示例1:将所有设备按部门降序排列,部门相同时按价格升序排列USE SBSORT TO bmjg ON 部门/D,价格/AUSE bmjgLIST示例2:将所有设备按部门升序排列,部门相同按启用日期降序排列,要求只包含编号、名称、启用日期及部门4个字段。
USE sbSORT TO bmrq ON 部门/A,启用日期/D FIELDS 编号,名称,启用日期,部门USE bmrqLIST2.表的索引命令⑴建立索引的命令示例1:为设备表以价格字段作为索引关键字建立普通索引,要求降序排列USE sbINDEX ON 价格 TAG jg DESCENDINGLIST示例2:为设备表以编号作为索引关键字建立候选索引,要求升序排列USE sbINDEX ON 编号 TAG bh ASCENDING CANDIDATELIST示例3:为设备表以启用日期作为索引关键字建立普通索引,要求降序排列USE sbINDEX ON 启用日期 TAG qyrq DESCENDINGLIST示例4:为设备表建立索引,要求按部门升序排列,部门相同时按启用日期升序排列USE SBINDEX ON 部门+DTOS(启用日期) TAG bmrq ASCENDINGLIST示例5:为设备表建立索引,要求按部门降序排列,部门相同时按价格降序排列USE sbINDEX ON 部门+str(价格,9,2) TAG bmjg1 DESCENDINGLIST示例6:为设备表建立索引,要求按部门升序排列,部门相同时按价格降序排列USE sbINDEX ON val(部门)-价格/1000000 TAG bmjg2 ASCENDINGLIST示例7:为设备表建立索引,要求按部门降序排列,部门相同时按价格升序排列USE sbINDEX ON val(部门)-价格/1000000 TAG bmjg3 DESCENDINGLIST注意:比较示例6和示例7⑵确定主控索引的命令示例1:确定jg为当前主控索引SET ORDER TO TAG jg示例2:确定bmjg2为当前主控索引SET ORDER TO bmjg2二、用SELECT-SQL命令建立查询1.单表查询示例⑴查询所有设备信息SELECT * FROM sb⑵查询价格在一万元以上的设备信息SELECT * FROM sb WHERE 价格>=10000⑶查询价格在一万元以上、十万元以下的设备的编号、名称及价格SELECT 编号,名称,价格 FROM sb WHERE 价格>=10000 AND 价格<=100000 ⑷查询所有设备的编号、名称及价格,并按价格降序排列SELECT 编号,名称,价格 FROM sb ORDER BY 价格 DESCENDING⑸查询按价格由高到低排列后的前3条记录SELECT * FROM sb ORDER BY 价格 DESCENDING TOP 3⑹查询价格在一万元以上的设备台数SELECT COUNT(*) AS 万元以上设备台数 FROM sb WHERE 价格>=10000⑺查询主要设备和非主要设备的台数SELECT 主要设备,COUNT(*) AS 设备台数 FROM sb GROUP BY 主要设备⑻查询资产总额SELECT SUM(价格) AS 资产总额 FROM sb⑼查询各部门资产额SELECT 部门,SUM(价格) AS 部门资产额 FROM sb GROUP BY 部门⑽查询各部门资产额,仅列出部门资产在一万元以上的记录,并按部门资产额降序排列SELECT 部门,SUM(价格) AS 部门资产额 FROM sb GROUP BY 部门;HAVING SUM(价格)>=10000 ORDER BY 2 DESCENDING⑾查询各设备的累计增值金额SELECT 编号,SUM(增值) AS 累计增值金额 FROM zz GROUP BY 编号⑿查询累计大修费用在五千元以上的设备编号及累计大修费用SELECT 编号,SUM(费用) AS 累计大修费用 FROM dx GROUP BY 编号;HAVING 累计大修费用>=50002.多表查询示例⑴查询所有设备的编号、名称、价格及所在部门的名称① SELECT sb.编号,sb.名称 AS 设备名称,sb.价格,bmdm.名称 AS 部门名称;FROM sb,bmdm WHERE sb.部门=bmdm.代码② SELECT sb.编号,sb.名称 AS 设备名称,sb.价格,bmdm.名称 AS 部门名称;FROM sb JOIN bmdm ON sb.部门=bmdm.代码⑵查询部门资产额在十万元以上的部门名称及资产额,并按资产额降序排列① SELECT bmdm.名称,SUM(sb.价格) AS 部门资产额 FROM sb,bmdm;WHERE sb.部门=bmdm.代码 GROUP BY 部门;HAVING 部门资产额>=100000 ORDER BY 2 DESCENDING② SELECT bmdm.名称,SUM(sb.价格) AS 部门资产额;FROM sb JOIN bmdm ON sb.部门=bmdm.代码 GROUP BY 部门;HAVING 部门资产额>=100000 ORDER BY 2 DESCENDING⑶查询增值设备的名称及累计增值金额,并按累计增值金额降序排列① SELECT sb.名称,SUM(zz.增值) AS 累计增值金额 FROM sb,zz;WHERE sb.编号=zz.编号 GROUP BY zz.编号 ORDER BY 2 DESCENDING② SELECT sb.名称,SUM(zz.增值) AS 累计增值金额FROM sb;JOIN zz ON sb.编号=zz.编号 GROUP BY zz.编号 ORDER BY 2 DESCENDING ⑷查询累计大修费用在五千元以上的设备名称及累计大修费用① SELECT sb.名称,SUM(dx.费用) AS 累计大修费用 FROM sb,dx;WHERE sb.编号=dx.编号 GROUP BY dx.编号 HAVING 累计大修费用>5000② SELECT sb.名称,SUM(dx.费用) AS 累计大修费用 FROM sb JOIN dx;ON sb.编号=dx.编号 GROUP BY dx.编号 HAVING 累计大修费用>5000⑸查询增值设备的名称、所在部门名称及累计增值金额① SELECT sb.名称 AS 设备名称,bmdm.名称 AS 部门名称,;SUM(zz.增值) AS 累计增值金额 FROM sb,bmdm,zz;WHERE sb.部门=bmdm.代码 AND sb.编号=zz.编号;GROUP BY zz.编号② SELECT sb.名称 AS 设备名称,bmdm.名称 AS 部门名称,;SUM(zz.增值) AS 累计增值金额;FROM sb JOIN bmdm ON sb.部门=bmdm.代码 JOIN zz ON sb.编号=zz.编号;GROUP BY zz.编号⑹查询大修过的设备名称、所在部门名称及累计大修费用① SELECT sb.名称 AS 设备名称,bmdm.名称 AS 部门名称,;SUM(dx.费用) AS 累计大修费用 FROM sb,bmdm,dx;WHERE sb.部门=bmdm.代码 AND sb.编号=dx.编号;GROUP BY dx.编号② SELECT sb.名称 AS 设备名称,bmdm.名称 AS 部门名称,;SUM(dx.费用) AS 累计大修费用;FROM sb JOIN bmdm ON sb.部门=bmdm.代码 JOIN dx ON sb.编号=dx.编号;GROUP BY dx.编号三、用查询设计器建立查询1.建立查询的命令⑴ CREATE QUERY <查询文件名>⑵ MODIFY QUERY <查询文件名〉示例:CREATE QUERY cx1MODIFY QUERY cx2注意:查询文件的扩展名为.qpr2.运行查询的命令DO <查询文件名〉示例:DO cx1.qprDO cx2.qpr注意:命令中查询文件的扩展名不可省略3.练习用查询设计器建立单表及多表查询。
计算机二级VisualFoxPro上机考试题库及答案解析68(汇总)
计算机二级VisualFoxPro上机考试题库及答案解析68一、根本操作在考生文件夹下已有order、orderitem和goods三个表。
其中,order表包含订单的根本信息,orderitem表包含订单的详细信息,goods表包含商品〔图书〕的相关信息。
在考生文件夹下完成如下操作:1、创立一个名为"订单管理"的数据库,并将已有的order、orderitem和goods 三个表添加到该数据库中。
2、在表设计器中为order表建立一个普通索引,索引名为nf,索引表达式为"year(签订日期)"。
3、通过"订单号"在order表和orderitem表之间建立一个一对多的永久联系,它们的索引名均为"订单号"。
4、为上述建立的联系设计参照完整性约束,更新规那么为"限制",删除规那么为"级联",插入规那么为"限制"。
二、简单应用1、利用查询设计器创立查询,从order、orderitem和goods表中查询2001年签订的所有订单的信息,查询结果依次包含订单号、客户名、签订日期、商品名、单价和数量等六项内容。
各记录按订单号降序排序;订单号一样按商品名降序排序。
查询去向为表tableone。
最后将查询保存在queryone.qpr文件中,并运行该查询。
2、在考生文件夹下已有表单文件myform.scx,其中包含一个标签、一个文本框和一个命令按钮〔不要改变它们的名称〕。
如以下图所示:请设置"确定"按钮的click事件代码,使得当表单运行时,单击命令按钮可以查询在文本框中输入的指定客户的所有订单的信息,查询结果依次包含订单号、签订日期、商品名、单价和数量等五项内容。
各记录按订单号升序排序;订单号一样按商品名升序排序,并将查询结果存放在表tabletwo中。
mysql上机练习题
mysql上机练习题MySQL是一种常用的关系型数据库管理系统,广泛应用于开发和管理各种数据库。
本文将为大家提供一些MySQL上机练习题,以帮助读者巩固和提升自己的MySQL技能。
题目一:创建数据库和数据表在MySQL中创建一个名为"student"的数据库,并在该数据库中创建一个名为"score"的数据表。
数据表包括以下字段:字段名数据类型备注id int 学号name varchar 姓名chinese int 语文成绩math int 数学成绩english int 英语成绩题目二:插入数据向上述的"score"数据表中插入以下数据:学号姓名语文成绩数学成绩英语成绩1 小明 90 85 922 小红 78 92 883 小亮 85 90 95题目三:查询数据从"score"数据表中查询所有学生的姓名和数学成绩。
题目四:更新数据将学号为2的学生英语成绩修改为90。
题目五:删除数据从"score"数据表中删除学号为3的学生。
题目六:查询统计数据查询"score"数据表中语文成绩大于等于90分的学生数量。
题目七:排序数据按照数学成绩从高到低的顺序,查询"score"数据表中的所有学生信息。
题目八:连接查询创建一个名为"course"的数据表,包括以下字段:字段名数据类型备注id int 课程编号name varchar 课程名称将下列数据插入到"course"数据表中:课程编号课程名称1 语文2 数学3 英语通过连接查询,查询"score"数据表中各个学生的姓名、课程名称和成绩。
题目九:使用函数查询"score"数据表中各个学生的总成绩,按照总成绩从高到低排序。
题目十:使用子查询查询"score"数据表中成绩最高的学生姓名和各科成绩。
Excel考试上机操作题
Excel考试上机操作题问题一:数据排序请按照以下要求对数据进行排序:1. 将A列数据按照从小到大的顺序排序;2. 将B列数据按照从大到小的顺序排序;3. 将C列数据按照字母顺序排序。
操作步骤:1. 选中A列的数据;2. 点击【数据】选项卡中的【排序】按钮;3. 在弹出的排序对话框中,选择排序的列为A,并选择从小到大的顺序;4. 点击【确定】按钮,完成A列数据的排序;5. 选中B列的数据;6. 点击【数据】选项卡中的【排序】按钮;7. 在弹出的排序对话框中,选择排序的列为B,并选择从大到小的顺序;8. 点击【确定】按钮,完成B列数据的排序;9. 选中C列的数据;10. 点击【数据】选项卡中的【排序】按钮;11. 在弹出的排序对话框中,选择排序的列为C,并选择按字母顺序排序;12. 点击【确定】按钮,完成C列数据的排序。
问题二:自动筛选请按照以下要求进行自动筛选:1. 只显示F列数据中大于等于500的记录;2. 只显示G列数据中小于等于100的记录。
操作步骤:1. 选中数据表格中的任意一个单元格;2. 点击【数据】选项卡中的【筛选】按钮;3. 在弹出的筛选对话框中,选择F列,然后选择【大于等于】,并输入500;4. 点击【确定】按钮,完成F列筛选;5. 再次点击【筛选】按钮,打开筛选对话框;6. 在筛选对话框中,选择G列,然后选择【小于等于】,并输入100;7. 点击【确定】按钮,完成G列筛选。
问题三:图表制作请按照以下要求制作柱状图:1. 将A列数据作为横轴;2. 将B列数据作为纵轴;3. 添加图表标题为"销售情况";4. 设置纵轴标题为"销售额"。
操作步骤:1. 选中A列的数据和B列的数据;2. 点击【插入】选项卡中的【柱状图】按钮;3. 在弹出的图表选择对话框中,选择柱状图样式;4. 完成图表的绘制后,选中图表;5. 在【设计】选项卡中,点击【添加图表元素】按钮,选择【图表标题】;6. 输入图表标题为"销售情况";7. 在【设计】选项卡中,点击【添加轴标题】按钮,选择【主纵轴标题】;8. 输入纵轴标题为"销售额"。
SQLServer2008数据库应用教程课后答案
SQLServer2008数据库应⽤教程课后答案第1章数据库基础⼀、单项选择题1.C 2.A 3.C 4.D 5.D6.B 7.A 8.B 9.B 10.D11.C 12.A 13.C 14.B 15.A16.B 17.A 18.D 19.B 20.B21.A; D 22.A 23.C 24.D 25.B26.B 27.B 28.D 29.B 30.B⼆、填空题1.概念;数据2.属性3.码4.⼀对⼀联系;⼀对多(或多对⼀)联系;多对多联系5.候选码6.候选码7.关系名(属性1,属性2,…,属性n)8.关系数据结构;关系操作集合;关系完整性约束9.实体;参照;⽤户定义的;实体;参照10.空植11.需求分析阶段;概念结构设计阶段;逻辑结构设计阶段;物理结构设计阶段;数据库实施阶段;数据库运⾏和维护阶段12.准确了解并分析⽤户对系统的要求,尤其是⽤户的信息要求、处理要求、安全性与完整性要求,确定所要开发的应⽤系统的⽬标,产⽣⽤户和设计者都能接受的需求说明书,做为下⼀步数据库概念结构设计的基础。
13.将需求分析得到的⽤户需求抽象为信息结构即概念模型。
14.将概念结构进⼀步转化为某⼀DBMS⽀持的数据模型,并对其进⾏优化。
15.为逻辑数据模型选取⼀个最适合应⽤环境的物理结构,包括数据库在物理设备上的存储结构和存取⽅法。
三、指出以下各缩写的英⽂意思和中⽂意思1.DB:DataBase2.DBMS:Database Management System3.RDBMS:4.DBS:DataBase System5.DBA:Relational Database Management System6.NF:Normal Form7.DDL:Data Definition Language四、按题⽬要求回答问题1.答:2.答:3.答:(1)关系R是2NF。
因为R的候选码为课程名,⽽课程名→教师名,教师名→教师地址,所以课程名→教师地址,即存在⾮主属性教师地址对候选码课程名的传递函数依赖,因此R不是3NF。
计算机等级考试上机试题
上机试题目录整数排序题 (4)☆题目1(整数排序题) (4)☆题目2 正整数排序 (4)☆题目3(整数统计排序题) (5)☆题目4(整数统计排序题) (5)题目5(整数运算排序题) (6)★题目6(整数各位统计排序题) (6)题目7(整数统计排序题) (7)★题目8(整数排序题) (7)★题目9(整数各位数字运算排序题) (8)题目10(整数各位数运算排序题) (8)★☆题目11 (整数各位数运算及排序题) (9)整数统计运算题 (9)★☆题目12整数统计运算题) (9)☆题目13(整数统计运算题) (10)☆题目14(整数统计运算题) (10)题目15(整数统计运算题) (11)题目16(整数统计运算题) (11)题目17(整数统计运算题) (12)☆题目18(整数统计运算题) (12)题目19(整数统计运算题) (12)题目20(整数各位数字运算题) (13)☆题目21(整数各位数字运算题) (13)题目22(整数各位数字运算题) (14)☆题目23(整数各位数字运算题) (14)题目24(整数各位数字运算题) (15)☆题目25(整数各位数字统计运算题) (15)★☆题目26(整数各位运算题) (15)题目27(整数各位数运算题) (16)☆题目28(整数各位数运算题) (16)☆题目29(整数各位运算统计题) (17)☆题目30 (18)题目31 (18)整数各位打散组合运算题 (19)★☆题目32(整数各位打散组合运算题) (19)☆题目33(整数各位打散组合运算题) (19)★☆题目34(整数各位打散组合运算题) (20)题目35(整数各位打散组合运算题) (20)★题目36(整数各位打散组合运算题题) (21)题目39(整数各位打散组合运算题) (23)素数题 (23)题目40(素数题) (23)题目41(素数统计排序题) (24)★☆题目42(素数题) (24)★题目43(素数题) (25)★题目44(素数题) (26)★题目45(数字运算题) (26)★题目46(数字统计排序题) (27)☆题目47(数字统计排序题) (27)字符型题 (28)题目48字符型题 (28)★题目49(字符处理——倒序输出) (29)★题目50(字符排序题) (29)★☆题目51(替换字符题) (30)☆题目52(亲朋字符替换题) (30)字符串处理题 (31)★☆题目53(字符串排序题) (31)☆题目54(字符串字母移位题) (32)★☆题目55(字符串左右排序交换题) (32)题目56(字符串左右排序交换题) (33)★题目57(字符串移位题) (33)题目58(字符串排序题) (34)★题目59(字符串左右排序题) (34)★题目60(字符ASCII值移位替换题) (35)方差运算题 (36)★☆题目61(方差运算题) (36)☆题目62(方差运算题) (36)☆题目63(方差运算题) (37)☆题目64(整数各位数运算题) (38)★题目65(字符替换题) (38)★☆题目66(字符替换题) (39)★题目67(字符替换题) (39)题目68(字符替换题) (39)题目69(字符替换题) (40)☆题目70(字符替换题) (40)★题目71(字符替换题) (41)☆题目72(字符替换题) (41)☆题目73(字符替换题) (42)★题目74(字符替换题) (42)★题目75(字符替题) (42)★☆题目76(字符替换题) (43)☆题目77(结构体操作题) (43)★☆题目78(结构体运算题题) (44)☆题目81(结构体运算题) (45)题目82(结构体运算题) (45)题目83 结构体运算题 (45)题目84(结构体运算题) (46)★题目85(结构体运算题) (46)题目86(结构体排列题) (47)选票问题 (47)题目87(选票问题) (47)★☆题目88(选票问题) (48)☆题目89(选票问题) (48)★☆题目90(级数运算题) (49)其他问题 (49)☆题目91(单词个数统计题) (49)★题目92(Fibonacci数列题) (50)☆题目93(迭代方法求方程题) (50)★题目94(平方根问题) (51)题目95 (实数运算题) (52)题目96(完全平方数问题) (53)★题目97 (回文数问题) (53)★题目98(出圈题) (54)☆题目99(SIX/NINE问题) (54)三级网络上机题型整数排序题☆题目1(整数排序题)在文件in.dat中有200个正整数,且每个数均在1000至9999之间。
上机操作题模拟试卷12(题后含答案及解析)
上机操作题模拟试卷12(题后含答案及解析) 全部题型 2. 基本操作题 3. 简单应用题 4. 综合应用题基本操作题1.(1)打开考生文件夹下的数据库SPORT,首先永久删除该数据库中的temp 表,然后将“金牌榜”、“获奖牌情况”和“国家”3个自由表加入该数据库中。
(2)在表设计器中,为表“金牌榜”建立一个普通索引,索引名和索引表达式均为“金牌数”。
(3)使用SQL语句为表“金牌榜”增加一个字段“奖牌总数”(整数型),同时为该字段设置有效性规则:奖牌总数>=0。
请将该SQL语句存储在文件one.prg中,否则不得分。
(4)使用SQL语句更改表“金牌榜”所有记录的“奖牌总数”字段值,该值应为“金牌数”、“银牌数”、“铜牌数”3项之和。
请将该SQL语句存储在文件two.prg中,否则不得分。
正确答案:本题考查了数据库的基本操作;表索引的建立;SQL定义功能和操作功能。
在数据库中删除和添加表时,可以打开数据库设计器操作,注意删除表时选择正确的操作。
表索引可以在表设计器中建立。
利用SQL 定义功能的表结构修改语句ALTER TABLE可以为表新增字段,增加字段的关键字为ADD;利用SQLuPDATE语句可以更新表中记录,套用两种SQL语句的固定语法即可完成本题的SQL语句编写。
【操作步骤】(1)①在命令窗口执行命令:MODIFY DATABASEsport,打开数据库设计器。
②右击数据库设计器中的temp表,选择【删除】快捷菜单命令,在弹出的Visual FoxPro对话框中单击“删除”按钮,将“temp”表永久性删除。
③在数据库设计器中右击鼠标,选择【添加表】快捷菜单命令,在弹出的“打开”对话框中双击“金牌榜”表,将表添加到数据库中,以同样的方法将“获奖牌情况”表和“国家”表添加到数据库中。
(2)①在命令窗口输入如下代码,打开表设计器:USE 金牌榜MODI FY STRUCTURE ②在表设计器的“字段”选项卡中选中“金牌数”字段名,然后在“索引”列的下拉框选择“升序”排序方式,单击“确定”按钮保存表结构修改。
上机操作题模拟试卷15(题后含答案及解析)
上机操作题模拟试卷15(题后含答案及解析) 全部题型 2. 基本操作题 3. 简单应用题 4. 综合应用题基本操作题1.在考生文件夹下完成下列操作(在“成绩管理”数据库中完成):(1)为“学生”表在“学号”字段上建立升序主索引,索引名为学号。
(2)为“学生”表的“性别”字段定义有效性规则,规则表达式为:性别$”男女”,出错提示信息是:“性别必须是男或女”。
(3)在“学生”表的“性别”和“年龄”字段之间插入一个“出生日期”字段,数据类型为“日期型”(修改表结构)。
(4)用SQL,的IYPDATE命令将学生“王三风”的出生日期修改为1983年5月1日,并将该语句粘贴在sqLtxt文件中(第一行且只占一行)。
正确答案:本题考查了表索引的建立;字段有效性规则的建立;表结构修改和SQL更新语句。
表索引也可以在表设计器中建立,在表设计器的“字段”选项卡中可先建立一个普通索引,然后在“索引”选项卡中修改索引类型。
字段有效性规则是在表设计器中建立的,“默认值”、“规则”和“信息”的设置均属于字段有效性规则范围,在输入各有效性规则的值时要注意对应的数据类型,且在表设计器中可在字段任意间位置插入新字段。
利用SQL uPDATE语句可以更新表中记录,本题只需熟记SQL更新语句,直接套用即可完成表记录的更新。
【操作步骤】(1)①在命令窗口执行命令:MOD工FY DATABASE 成缝管理,打开“成绩管理”数据库设计器。
②右击数据库设计器中的“学生”表,选择【修改】快捷菜单命令,打开“学生”表设计器,在“字段”选项卡中选中“学号”,在“索引”列中选择“升序”,然后将“索引”选项卡中“学号”的“类型”更改为“主索引”。
(2)接上小题操作,在“学生”表设计器中选中“字段”选项卡中的“性别”字段,在“字段有效性”的“规则”文本框中输入:性别$It男女”,在“信息”文本框中输入:”性别必须是男或女”。
(3)接上小题操作,在“学生”表设计器中选中“字段”选项卡中的“年龄”字段,然后单击表设计器右边的“插入”按钮,插入一个新字段行,修改“字段名”为:出生日期,修改“类型”为:日期型。
上机操作题模拟试卷36(题后含答案及解析)
上机操作题模拟试卷36(题后含答案及解析) 全部题型 2. 基本操作题 3. 简单应用题 4. 综合应用题基本操作题1.在考生文件夹下的数据库salary db中完成如下操作:(1)在数据库salary db中建立表dept,表结构如下:字段名类型宽度部门号字符型 2 部门名字符型20 随后在表中输入5条记录,记录内容如下:部门号部门名01 制造部02 销售部03 项目部04 采购部05 人事部(2)为dept表创建一个主索引(升序),索引名和索引表达式均是“部门号”。
(3)通过“部门号”字段建立salarys 表和dept表间的永久联系。
(4)为以上建立的联系设置参照完整性约束:更新规则为“级联”;删除规则为“限制”;插入规则为“限制”。
正确答案:本大题考查了数据库表的建立和索引的建立;表间永久联系的建立和参照完整性的设置。
在表设计器的“字段”选项卡中,可以通过选择“排序”下拉框中的“升序”或“降序”为指定的字段建立一个索引名与索引表达式相同的普通索引,如果要改变索引名或索引类型,则需要在“索引”选项卡中进行修改。
【操作步骤】(1)①命令窗口执行命令:MoD工FY DATABAsE salary—db,打开salary db数据库设计器。
②在数据库设计器中右击鼠标,选择【新建表】快捷菜单命令,在弹出的“新建表”对话框中单击“新建表”图标按钮,然后在弹出的“创建”对话框的“输入表名”框中输入“dept”,单击“保存”按钮打开表设计器。
③根据题意,在表设计器中逐行输入每个字段的字段名,并设置字段类型和宽度,然后单击“确定”按钮,此时系统会弹出一个对话框询问“现在输入数据记录吗?”,单击“是”按钮,在弹出的“dept”表编辑窗口中根据题目要求逐行输入每条记录的值。
(2)右击数据库设计器中的dept表,选择【修改】快捷菜单命令,打开dept表设计器,在“字段”选项卡中选中“部门号”,在“索引”列中选择“升序”,然后在“索引”选项卡中修改“索引类型”为主索引,建立“部门号”字段的主索引,单击“确定”按钮保存表结构修改。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一、排序练习(先打开表,然后排序,会生成一个新表)
1. use 学生
sort on 年龄/d to xs && 按年龄降序排序,对所有的记录进行排序
use xs
list
e 学生
sort on 年龄/a to xs1 for 院系编号="6" fields 姓名, 年龄, 院系编号&& 对满足条件的记录,按年龄升序排序,取了姓名, 年龄, 院系编号三个字段。
use xs1
list
e 学生
sort on 院系编号/d/c, 姓名/a to xs2 && 多个字段排序
use xs2
list
二、索引练习(先打开表,然后建索引,建立索引不会生成新表)
建立索引:主要目的是为了快速查询表中的数据
1.单索引文件中建立索引
use 学生
list
Index on 性别to xb
list && 看看建立的索引是否起作用
set index to && 关闭索引文件
list && 刚才建立的索引不起作用
Index on 年龄to nl unique
list
Index on 姓名to xm for 年龄>=19
list
2.结构复合索引文件中建立索引
use 学生
list
Index on 学号tag xh candidate descending && 按学号建立候选索引
list
index on 年龄tag nl for 院系编号="6" && 对满足条件的记录建立索引
list
index on 院系编号+姓名tag yxbhxm descending && 复合字段索引,先按院系编号降序,
院系编号相同的按姓名降序
list
index on 院系编号+str(年龄) tag yxbhnl descending
list
index on str(年龄)+姓名tag nlxm descending
list
3.非结构复合索引文件中建立索引
Use 学生
Index on 性别+姓名tag xbxm of xuesheng
list
index on 院系编号tag yxbh of xuesheng descending
使用索引:打开表,打开索引文件,确定主控索引
1. 打开索引文件
(a)用index命令建立索引成功后自动打开
(b)use 学生index xb, nl, xm, xuesheng
list
(c)use 学生
set index to xb, nl, xm, xuesheng
list
2.设置主控索引:只能有一个索引起作用
index order to 单索引文件名或index order to tag 索引名
use 学生
set order to nl && nl索引起作用
list
set order to xm && xm索引起作用
list
set order to tag yxbhxm && yxbhxm索引起作用
list
set order to tag yxbhnl && yxbhnl索引起作用
list
set order to tag nlxm && nlxm索引起作用
list
set order to tag yxbh of xuesheng
list
set order to tag xbxm of xuesheng
list
3. 取消主控索引
set order to
list
4.关闭索引文件
set index to 或close index
关闭当前工作区中打开的除结构复合索引文件外的所有索引文件,同时取消主控索引。
更新索引
1.当表中的数据发生变化时,这时已打开所有的索引文件中的索引都会随表中的数据改变
而自动改变;
2. 当表中的数据发生变化时,未打开的所有索引文件中的索引都得不到更新,这时应先将索引文件(所有未打开的索引文件)打开,再用reindex命令。
快速定位:在快速定位之前,应先对表进行索引
1. use 学生
Index on 姓名tag x m
list
seek "王"
? found()
display
skip
display
2. use 学生
Index on 年龄tag NL descending
list
seek 19
? found()
display
删除索引
1. delete tag yxbhxm
delete tag nlxm
delete tag all
如果复合索引文件中的所有索引都被删除了,该复合索引文件也就被删除了。
删除索引文件
1. delete file nl.idx
delete file xb.idx recycle
delete file xuesheng.cdx
注意:索引文件的扩展名不能省略
三、统计命令
1. 统计记录的个数count
use 学生
count for 性别= "男" to a && 统计满足条件的记录个数,并将结果存放到一个变量中? a
count for 院系编号= "6" to b
? b
2. 求和sum 只能对数值型字段进行操作
use 学生
sum to c
? c
sum for 院系编号= "6" to d
? d
3. 求平均值average 只能对数值型字段进行操作
use 学生
average to e
? e
average for 院系编号= "6" to f
? f
4. 计算命令calculate 只能对数值型字段进行操作
use 学生
calculate cnt(), max(年龄), min(年龄), sum(年龄), avg(年龄), var(年龄), std(年龄) to;
g,h,i,j,k,l,m
? g,h,i,j,k,l,m
5. 汇总命令total 只能对数值型字段进行操作,并将结果存储到一个新表中
use 成绩
index on 学号tag xh
list
total on 学号to 总成绩.dbf fields 成绩&&按学号对成绩字段汇总,即求每个学生的
总成绩。
将结果存储到一个新表中。
use 总成绩
list。