上机必会命令函数属性方法事件及上机分次题目(2011讲义)
更新时间:2024-07-12 05:45:01 阅读量: 综合文库 文档下载
- 上机命令题推荐度:
- 相关推荐
必会函数: Int() Mod() Round() Substr() Left() Right() Len() At()
Alltrim() Space() Date() Time() Year() Val() Str() Ctod() Dtoc() Eof() bof() recno() found() &函数 Iif()
第一讲 表单 一、控件的属性 一般属性:
Name,caption,backcolor,forecolor,left,top,width,height,fontname,fontsize, visible, Enabled,
Alignment,tabindex
特殊属性:
表单autocenter,showwindow, movable,scrollbars,windowtype(模式/无模式)
命令按钮设置访问键(或热键):caption属性键字母前加入“\\<” 命令按钮default, cancel
文本框、编辑框、组合框readonly, password, inputmask(x任意字符,9正负号和数字,#正负号数字空格) 选项按钮组buttoncount 编辑框scrollbars 文本框Value:
常用于程序设计
单选按钮组value:(命令按钮组value与之相似,但没有考题) 复选框value:
以上两个value用于分支程序 列表框Value:
常用于程序设计
列表框listcount 列表框columncount 列表框multiselect 列表框list(i) 列表框selected(i) 列表框rowsourcetype 列表框rowsource 组合框 style
计时器interval(单位为毫秒,注意转换) 表格columncount
表格recordsourcetype,recordsource 微调spinnerhighvalue,spinnerlowvalue 微调increment 微调value 页框pagecount
*表单数据环境—只要表单中涉及到表,不论题目有无数据环境的要求,都要添加数据环境表.
二、控件的方法: 表单Release, 三、控件的事件: Click 表单load 表单init 表单destory 计时器Timer
文本框列表框interactivechange 四、表单设计器和表单向导
五、程序结构语句 If Else
endif
Do case Case
Endcase
Do while Enddo
For
Endfor Scan Endscan
第一次上机
第3套基本操作(2)(3) 第5套基本操作 第53套基本操作 第15套基本操作(4) 第54套基本操作(1)(2) 第55套基本操作
第58套基本操作(1)(2) 第73套基本操作*
题目要求窗体高度为文本框中的值:双击―确定‖按钮,在其编辑窗口输入下面的语句:
thisform.height = val(thisform.text1.value)
或者:this.parent.height = val(this.parent.text1.value) 第23套简单应用(2)*
&&如果用户输入的用户名和口令一致,则在提示信息后关闭该表单;否则重新输入用户名和口令。
&&**********Error********************** if thisform.text1=thisform.text2
wait \欢迎使用??\
&&**********Error********************** thisform.close else
wait \用户名或口令不对,请重新输入??\endif
第一次讲解题
第1套简单应用(1)**
在―表单设计器‖中,建立一个计时器控件Timer1,在―属性‖的Interval处输入―200‖,再双击此计时器控件,在―Timer1.Timer‖编辑窗口中输入 THISFORM.Label1.Left=THISFORM.Label1.Left-10
If THISFORM.Label1.Left+THISFORM.Label1.Width <=0
THISFORM.Label1.Left=THISFORM.WIDTH ENDIF
第65套简单应用(2)**
Optiongroup1.Click 编辑窗口中输入
ThisForm.List1.RowSource = ThisForm.Optiongroup1.Value 或者: do case
Case thisform.optiongroup1.value=1 Thisform.list1.rowsource=‖*.DOC‖ Case thisform.optiongroup1.value=2 Thisform.list1.rowsource=‖*.XLS‖ Case thisform.optiongroup1.value=3 Thisform.list1.rowsource=‖*.TXT‖ endcase 第二次上机题目
第46套简单应用(1)**
在―表单设计器‖中,添加一个计时器控件,在―属性‖的Interval处输入―500‖。在―Timer1.Timer‖编辑窗口中输入―thisform.label1.caption=time()‖。
―暂停‖按钮Command1.Click中输入命令thisform.timer1.interval=0
―继续‖按钮Command.Click中输入命令thisform.timer1.interval=500
―退出‖按钮Command3.Click中输入Release Thisform
第4套综合应用**
do case
case thisForm.optiongroup1.value=1
thisForm.Text3.Value=val(thisForm.Text1.Value)+val(thisForm.Text2.Value) case thisForm.optiongroup1.value=2
thisForm.Text3.Value=val(thisForm.Text1.Value)-val(thisForm.Text2.Value) case thisForm.optiongroup1.value=3
thisForm.Text3.Value=val(thisForm.Text1.Value)*val(thisForm.Text2.Value) case thisForm.optiongroup1.value=4
thisForm.Text3.Value=val(thisForm.Text1.Value)/val(thisForm.Text2.Value) endcase
第67套简单应用(1)
表单two的Init事件中输入:
thisform.grid1.RecordSourceType=0 thisform.grid1.RecordSource=\
第28套简单应用(2)
第12套综合应用*
第40套综合应用 *以下是表单向导题目 第2套基本操作(2) 第10套简单应用(1) 第14套简单应用(1) 第11套综合应用
第二次必讲理论
第二讲查询和视图设计器
常用统计函数生成虚拟字段,也可以构造加减乘除表达式生成虚拟字段
Count() 形式count(*)
Sum() 形式sum(某个需要求和的字段) Avg() 形式avg(某个需要平均值的字段) Max() 形式max(某个需要最大值的字段) Min() 形式min(某个需要最小值的字段) 注意1、筛选和分组两种条件的区别
筛选是针对每一条记录应满足的条件
分组满足条件是分组后对统计结果的限定条件
2、分组统计求和求平均值与记录替换求和求平均值表达式的区别 对于记录替换的求和求平均值不能使用sum()和avg()等统计函数。 3、只要用统计函数形成虚拟字段,一般就要使用分组依据。根据题意,有个别题除外。
第5套简单应用(2)
第19套简单应用(2)
第32套简单应用(1)
第三次上机
第28套简单应用(1)
第36套综合应用
第7套综合应用
第8套综合应用
第43套综合应用
注意:36套查询结果在浏览窗口显示,43套查询结果在表格中显示.
第50套综合应用
注意:可以将(1)中要求通过查询设计器将查询结果选存入表results中,然后设置表格的recordsourcetype为0-表,recordsource为results
第63套基本应用
SELECT * FROM 歌手表 WHERE 歌手出生地=thisform.combo1.text INTO DBF birthplace
第51套综合应用
cn=\
cc=thisform.list2.ListCount FOR i=1 TO cc
x=allt(thisform.list2.listitem(i)) cn=cn+\课程名称='\ ENDFOR
cn=substr(cn,1,len(cn)-4)
*****上面的程序在Command3.Click中已有,考生只要添加下面的语句 select 姓名,课程名称,考试成绩 from student; join course join score ;
on course.课程编号=score.课程编号; on student.学号=score.学号 where &cn ;
order by 课程名称,考试成绩 desc into table zonghe
第三讲(一)SQL查询功能 一、语句结构 Sele…From… Where
Order by… desc (注意排序只能用在主查询中) Group by…having… 二、查询去向
Into array 数组名
引用时使用数组元素。以数组ab为例,如果就引用数组中的第一个元
素,则可以表为ab,也可以ab(1),也可以ab[1] Into cursor 临时表名 Into dbf|table 表名 To file 文本文件名 三、常用统计函数
Count() Sum() Avg() Max() Min()
三、多表联接查询只考内联接,均可转换为简单联接查询:
Sele…from 表1,表2,表3…where 表1.共同字段=表2.共同字段 and表2.共同字段=表3.共同字段 四、常用短语
Distinct
Top … [percent] (注意将其放在查询结果字段的前面,与order by联用) [not]Between…and…
[not]Like ―匹配字符串%‖ Like ―匹配字符串_‖ Is [not]null 五、嵌套查询
Sele…from…where 查询某字段>( sele 子查询值) >= < <= <> Sele…from…where 查询某字段>any( sele子查询值集合) any some all
Sele…from…where 查询某字段 [not]in( sele子查询某字段集合) Sele…from…where [not]exist( sele子查询多字段集合)
第四次上机题
以下各题,根据自己的掌握情况,选择直接写SQL语句或借助查询设计器完成 第56套综合应用(注意答案中的into cursor名是mylist ,可以不理会,按照题目要求做)
name=ThisForm.list1.value
SELECT 运动员名称, 项目名称,名次 FROM 获奖牌情况.国家 WHERE 国家.国家名称 = name; and 获奖牌情况.国家代码 = 国家.国家代码 Order by 名次 into dbf &name 本题查询复杂,建议使用查询设计器的常规方法完成.
注意:如果将查询设计器中的SQL代码粘贴到属性窗口中,不能有换行符.这样能实现功能,但扣2.5分,只有输入sele 国家名称 from 国家 into cursor ls 才能得满分.
另外:总结题目可得出,对于表格或列表框中的数据来源若是由sele…from…得出的,应要设定查询去向为临时表,即cursor表。
第11套综合应用
Bjh=thisform.combo1.value
ThisForm.Grid1.RecordSource=\班级号=bjh INTO CURSOR LSB\本题查询简单,建议用SQL语句完成. 注意:窗体名称和两个命令按钮的名称
此题与63基本应用区别:63题在组合框中获值后,直接查询没有给表格赋值,所以可一条语句完成,
本题要为表格赋值,所以分两句完成.另外,有些类似本题的题目,不分两条语句完成,执行出错,所以这类题均采用分二条语句完成,原因其后不能同时接入order by 和 into cursor二个子句. 如:thisform.grid1.recordsource=‖sele 姓名,性别 from 学生;
where班级号=thisfrom.text1.value order by 学号 into cursor abc‖ 上述语句执行出错.应该写为: xm=thisfrom.text1.value
thisform.grid1.recordsource=‖sele 姓名,性别 from 学生; where班级号=xm order by 学号 into cursor abc‖
第14套综合应用
nd=str(thisform.spinner1.value,4)
thisform.grid1.recordsource=\年度=nd into cursor abc\本题查询简单,建议用SQL语句完成.
第45套综合应用
name1=thisform.text1.value
thisform.grid1.RecordSource=\外币名称,持有数量 from view_rate where 姓名= name1 order by 持有数量 into cursor abc\
select 外币名称,持有数量 from view_rate where 姓名= name1 order by 持有数量 into dbf &name1 本题使用查询设计器的常规方法或者SQL语句完成均可.
第58套综合应用 第65套综合应用
第46套综合应用 第15套综合应用
嵌套查询专项
注意:有些嵌套查询可以转换为联接查询,由查询设计器按照通常方法完成,有些嵌套查询可以分二步,通过两次使用查询设计器完成,其中第一次给第二次提供必要的信息。
第40套简单应用(1)
(建议采用该方法)方法一:直接按照利用查询设计器获得SQL语言的方法 方法二:
SELECT 姓名 FROM 学生 WHERE 学号 IN (SELECT 学号 FROM 选课 WHERE 成绩>=70 GROUP BY 学号 HAVING COUNT(*)>=3) ORDER BY 姓名 INTO TABLE RESULTS
第38套简单应用(2)
(建议采用该方法)方法一:直接按照利用查询设计器获得SQL语言的方法 方法二: 嵌套查询
select 作者姓名,所在城市 from authors where 作者编号 in (sele 作者编号 from books group by 作者编号 having count(*)>=3) order by 作者姓名 into table new_view4
注意:以上两题没有统计生成虚拟字段,在分组依据满足条件中找不到相应的字段,所以需要构造表达式,表达式中就是count(*),后面不能写as 虚拟字段 第25套简单应用(1)
(建议采用该方法)方法一:由于该题并没有要求用SQL命令完成,所以可分别两次建查询设计来完成.第一次建立查询,求出平均总金额,记录下来;第二次建立查询,将平均总金额做为总金额筛选的条件实例 注意:该题虽然利用了统计函数,但是并不分组,而是将所有记录作为一个组。 方法二: 嵌套查询
SELECT * FROM order_list WHERE 总金额>(SELECT AVG(总金额) FROM order_list) ORDER BY 客户号 INTO TABLE results
第17套综合应用
(建议采用该方法)方法一: DO CASE
CASE THISFORM.OPTIONGROUP1.VALUE=1 SELECT * FROM 商品 WHERE 分类编码=‖1001‖ CASE THISFORM.OPTIONGROUP1.VALUE=2 SELECT * FROM 商品 WHERE 分类编码=‖2001‖ CASE THISFORM.OPTIONGROUP1.VALUE=3 SELECT * FROM 商品 WHERE 分类编码=‖3001‖ CASE THISFORM.OPTIONGROUP1.VALUE=4 SELECT * FROM 商品 WHERE 分类编码=‖4001‖ ENDCASE 方法二: 嵌套查询 DO CASE
CASE THISFORM.OPTIONGROUP1.VALUE=1
SELECT * FROM 商品 WHERE 分类编码=ANY(SELECT 分类编码 FROM 分类 WHERE 分类名称=\饮料\ CASE THISFORM.OPTIONGROUP1.VALUE=2
SELECT * FROM 商品 WHERE 分类编码=ANY(SELECT 分类编码 FROM 分类 WHERE 分类名称=\调味品\ CASE THISFORM.OPTIONGROUP1.VALUE=3
SELECT * FROM 商品 WHERE 分类编码=ANY(SELECT 分类编码 FROM 分类 WHERE 分类名称=\酒类\ CASE THISFORM.OPTIONGROUP1.VALUE=4
SELECT * FROM 商品 WHERE 分类编码=ANY(SELECT 分类编码 FROM 分类 WHERE 分类名称=\小家电\ ENDCASE
第三讲(一)SQL查询功能(续)
以下两道题必须用嵌套查询完成,没有其他方法 第50套简单应用(2)
在文件two.prg中存放:
SELECT 课程名称 FROM course WHERE 课程编号 IN (SELECT 课程编号 FROM score WHERE 成绩<60) TO FILE new
注意: 此句命令必须背下来,in和(sele…)之间有无空格均可.
此题可以用查询设计器作,但无法定义查询去向为为文本文件,所以还是需要将SQL语言粘到命令窗口,然后补充查询去向to file new后,执行命令.因此建议背下来.
第18套简单应用(1)(嵌套最难题)
1.1 SELECT * FROM orders ORDER BY 金额 WHERE 职工号+str(金额,10) IN (SELECT 职工号+str(MAX(orders.金额),10) FROM orders GROUP BY 职工号) INTO TABLE results
注意:此句命令必须背下来,没有其他方法可以代替,如用同一表进行自联接查询,生成表的结果虽然大部分与标准答案表相同,但评分系统不给分.
实际操作时,在没输入完命令时,如果需要查看所用表等有关信息时,可直接回车,使得已输入的部分命令能够保留在命令窗口中,以备后面操作时进行补充. 2.1 在文件view_b.txt中存放:
create view view_b as select * from employee where 职工号 not in (select 职工号 from orders) order by 仓库号 desc 注意:此句命令必须背下来.
第三讲(二)SQL定义功能 关于库
Create database Open database Close dagabase Add table Drop table 关于视图 Creat view as
Drop view(没有上机题) 关于表记录数据修改
Insert into… values(…,…) insert int …(…,…) values(…,…) Dele from…where pack
Update …set …=….where… 关于表结构建立
Create table 表名(…,字段名 类型符号(宽度数),…)
Create table 表名(…’字段名 类型符号(宽度数) primary key,…) Create table 表名(…,字段名 类型符号(宽度数) check 条件式,…)
Create table 表名(…,字段名 类型符号(宽度数) check 条件式 error 字符串,…) Create table 表名(…,字段名 类型符号(宽度数) default 常量,…) 关于表结构修改 (1)增加字段
Alter table 表名 add 字段名 类型符号(宽度数)
Alter table 表名 add 字段名 类型符号(宽度数) check 条件式
Alter table 表名 add 字段名 类型符号(宽度数) check 条件式 error 字符串 Alter table 表名 add 字段名 类型符号(宽度数) primary key tag索引名 (2)删除字段
Alter table 表名 drop [column] 字段名 (3)修改字段
Alter table 表名 rename 字段名 [column] to 新字段名 Alter table 表名 alter 字段名 类型符号(宽度数) Alter table 表名 alter 字段名 set check 条件式
Alter table 表名 alter 字段名 set check 条件式 error 字符串 Alter table 表名 alter 字段名 drop check
Alter table 表名 alter 字段名 set default 常量 Alter table 表名 alter 字段名 drop default
Alter table 表名 add primary key字段名tag 索引名 Alter table 表名 drop primary key tag 索引名 Alter table 表名 add unique 字段名 tag 索引名 Alter table 表名 drop unique tag 索引名 关于二表之间联系的建立(没有上机题)
Create table 表名1(…,关键字段名 类型符号(宽度数) primary key,…)
Create table 表名2(…字段名 类型符号(宽度数) ,… foreign key 关键字段名 tag 索引名reference 表名1)
第五次上机题
以下SQL定义题目 第15套基本操作
1.1、create database 外汇
3.1、CREATE TABLE rate (币种1代码 C(2), 币种2代码 C(2), 买入价 N(8,4), 卖出价 N(8,4))
第57套基本操作
3.1 在文件one.prg中存放: CREATE TABLE golden(国家代码 C(3),金牌数 I,银牌数 I, 铜牌数 I) 4.1 在文件two.prg中存放: INSERT INTO GOLDEN VALUES (\
第61套基本操作
3.1 在文件three.prg中存放: CREATE TABLE 分组情况表(组号 C(2),组名 C(10)) 4.1 在文件four.prg中存放: INSERT INTO 分组情况表 VALUES (\通俗唱法\
第1套基本操作
4.1、UPDATE 课程 SET 任课教师=\课程名=\数据库\
第62套基本操作
4.1
ALTER TABLE 评委表 ALTER 评委编号 SET CHECK LEFT(评委编号,2)=\
第39套基本操作
1.1 SELECT * FROM stock_sl INTO TABLE stock_bk
2.1 INSERT INTO stock_bk VALUE(\
或 INSERT INTO stock_bk (股票代码,买入价,现价,持有数量) VALUE(\4.36, 4.60, 5500) 3.1 UPDATE stock_bk SET 现价 = 8.88 WHERE 股票代码 = \4.1 DELETE FROM stock_bk WHERE 股票代码 = \
第76套基本操作
2.1 ALTER TABLE 课程表 ADD UNIQUE 课程号 TAG temp 并把该语句存放到one.prg中。
第43套简单应用
update 教师 set 新工资=原工资*1.20 where 职称=\教授\ update 教师 set 新工资=原工资 where 职称!=\教授\
insert into 教师 values(\林红\讲师\
第14套基本操作
2.1、ALTER TABLE s_t ADD COLUMN 备注 C(30) 3.1、ALTER TABLE s_t ALTER 年度 SET DEFAULT \
第51套基本操作
1.1 UPDATE student SET 院系 = \经济\学号 = \
虽然题目要求不是一定用SQL语句完成,但建议使用SQL语句.原因为这是一种类型题,可以更新一个记录,也可以更新多条记录.如将学号首位是‖99‖的院系改为‖经济‖,则相应的语句为:
UPDATE student SET 院系 = \经济\学号 = \
2.1 ALTER TABLE score RENAME COLUMN 成绩 TO 考试成绩 3.1 ALTER TABLE student ADD UNIQUE 学号 TAG 学号
第56套基本操作
3.1 在文件one.prg中存放: ALTER TABLE 金牌榜 ADD 奖牌总数 I CHECK 奖牌总数>=0 4.1 在文件two.prg中存放: UPDATE 金牌榜 SET 奖牌总数=金牌数+银牌数+铜牌数
第58套基本操作
3.1 在文件three.prg中存放: ALTER TABLE 学院表 ADD 教师人数 I CHECK 教师人数>=0 4.1 在文件four.prg中存放: update teacher set 工资=8000 where 姓名=\
以下学生练习 第71套基本操作
2.1 在文件two.prg中存放: UPDATE TABB SET 日期 = {^2005.10.01}
第77套基本操作
4.1
ALTER TABLE 教师表 ALTER 职工号 SET CHECK LEFT(职工号,4)=\
第48套基本操作
1.1 INSERT INTO 零件信息 VALUE(\2.1 DELETE FROM 零件信息 WHERE 单价 < 600
3.1 UPDATE 零件信息 SET 单价 = 1090 WHERE 零件号 = \
第2套简单应用
2.1、在文件sprog.prg中存放下面两条SQL语句:
UPDATE student SET 年龄=year(date()) - year(出生日期)
SELECT Student.政治面目, COUNT(*) AS 人数, AVG(年龄) AS 平均年龄 FROM student GROUP BY Student.政治面目 INTO TABLE sqlresults
第17套简单应用
2.1 在文件cmd_ab.txt存放:update 商品 set 销售价格=进货价格*(1+0.2268) where substr(商品编码,1,1)=\
第29套基本操作
原One.prg中语句: select * from 销售表 to dbf 销售表2001 where 日期<={^2000-12-31} 原two.prg中语句:
close all
delete 销售表 where 日期<={^2000-12-31} pack
修改为:
1.1 select * from 销售表 into dbf 销售表2001 where 日期<={^2000-12-31} 2.1 close all
delete from 销售表 where 日期<={^2000-12-31} pack
第16套基本操作
原one.prg语句: delete rate for 币种1代码=\币种2代码=\修改为:
4.1 在文件one.prg中存放:delete from rate where 币种1代码=\币种2代码=\
第30套简单应用
原―刷新日期‖命令按钮编辑窗口代码: UPDATE ALL 日期 WITH DATE()
(4). 双击―刷新日期‖命令按钮,在―Command1.Click‖编辑窗口中把语句修改为―UPDATE 雇员 SET 日期 = DATE()‖,关闭编辑窗口。
以下学生练习,实际考试时可选择用菜单中的相关命令作也可以用SQL命令作 第9套基本操作
ALTER TABLE cus ADD COLUMN 手机号 C(11) ALTER TABLE CBC ALTER 数量 SET CHECK 数量>=1 ALTER TABLE CBC ALTER COLUMN 数量 SET DEFAULT 1 ALTER TABLE CBC ALTER 单价 SET CHECK 单价>=1
ALTER TABLE CBC ALTER COLUMN 单价 SET DEFAULT 1
第10套基本操作
1.1、ALTER TABLE ksb ADD COLUMN 备注 C(30)
2.1、ALTER TABLE kscjb ALTER 成绩 SET CHECK 成绩>=0 AND 成绩<=150 ALTER TABLE kscjb ALTER COLUMN 成绩 SET DEFAULT 0
第13套基本操作
1.1、ALTER TABLE p_t ADD COLUMN 继承人 C(8)
2.1、ALTER TABLE fr_t ALTER 面积 SET CHECK 面积>=1 .AND. 面积<=100 ALTER TABLE fr_t ALTER COLUMN 面积 SET DEFAULT 10
ALTER TABLE fr_t ALTER 蓄积 SET CHECK 蓄积>=0 .AND. 蓄积<=200 ALTER TABLE fr_t ALTER COLUMN 蓄积 SET DEFAULT 100
第21套基本操作
使用命令生成主索引: ALTER TABLE order_list ADD PRIMARY KEY 订单号 TAG 订单号
第36套基本操作
2.1 ALTER TABLE course RENAME COLUMN 开课系部 TO 开课单位
第2套基本操作
4.1、ALTER TABLE student ADD COLUMN 年龄 N(2)
第37套基本操作
3.1 INSERT INTO score1 (学号,课程号,成绩)VALUE(\
第三讲(三)SQL查询定义功能的综合应用 第9套综合应用
UPDATE CUS SET 会员类型=\金卡会员\会员号=ANY(SELECT 会员号 FROM cbc GROUP BY 会员号 HAVING SUM(数量*单价) >= 15000)
UPDATE CUS SET 会员类型=\银卡会员\会员号=ANY(SELECT 会员号 FROM cbc GROUP BY 会员号 HAVING SUM(数量*单价) < 15000 AND SUM(数量*单价)>= 10000)
UPDATE CUS SET 会员类型=\铜卡会员\会员号=ANY(SELECT 会员号 FROM cbc GROUP BY 会员号 HAVING SUM(数量*单价) < 10000 AND SUM(数量*单价)>= 5000)
UPDATE CUS SET 会员类型=\普通会员\会员号=ANY(SELECT 会员号 FROM cbc GROUP BY 会员号 HAVING SUM(数量*单价) < 5000)
第24套综合应用
2. 在prog1.prg文件中的内容是:
UPDATE order_detail SET 新单价=单价*0.9 WHERE 订单号 in(SELECT 订单号 FROM order_list WHERE YEAR(订购日期)=2001)
UPDATE order_detail SET 新单价=单价*1.1 WHERE 订单号 in(SELECT 订单号 FROM order_list where YEAR(订购日期)=2002)
暑假后第一次上机题
以下是容易出错的查询题目复习用 第13套简单应用(2)
第66套简单应用(1)
第54套简单应用(1)(2) left函数相关题目很多
将查询结果放在表table2中.方法是在命令窗口中.输入并执行命令sele * from view1 into dbf table2,也可以用查询设计器完成。
第52套简单应用(1)(2) year函数 相关题目很多
第55套简单应用(1)(2)
只查少数民族,就是民族=‖汉‖,再在‖否‖按扭上打个勾.注意,筛选条件中没有不等于‖<>‖符号.
第70套简单应用(2)
注意:本题必须先添加employee表,然后添加orders表,最后添加customer表,否则不能保存查询文件。
第74套简单应用(2)
第64套简单应用(1)(2) 杂项
第11套简单应用(2)必须作(需要修改表之间的联系)
以下查询综合题暑假后复习用
通过文本框\\列表框\\组合框\\微调按钮等获得要查询的条件,然后进行查询,并将结果显示在表格中或存储到文件中. 第66套综合应用
(建议采用该方法)方法一:直接采用借助查询设计品的常规方法作.
注意:与45综合应用的区别.45综合应用是将表格的recordsourcetype属性设为了4-SQL说明,而本题是将recordsourcetype属性设为了1-别名,所以所用方法不同. 方法二:嵌套查询
dn=thisform.text1.value
SELECT Sell.年度, SUM(Sell.销售额) 销售额, SUM(Sell.销售额)- SUM(Sell.工资额) 利润; FROM sell where 部门号in (select 部门号 from dept where 部门名=dn) GROUP BY Sell.年度 into dbf &dn
thisform.grid1.recordsource=dn
第72套综合应用
方法:直接采用借助查询设计器的常规方法作.
X1 = ALLTRIM(ThisForm.Text1.Value)
X2 = ALLTRIM(ThisForm.Text2.Value)
ThisForm.Grid1.RecordSource = \销售表.商品号, 商品名, 一季度利润, 二季度利润, 三季度利润, 四季度利润 ;
FROM 销售表 JOIN 商品代码表 ON 销售表.商品号 = 商品代码表.商品号 ; WHERE 部门号 = X1 AND 年度 = X2 INTO CURSOR lsb\
SELECT 销售表.商品号, 商品名, 一季度利润, 二季度利润, 三季度利润, 四季度利润 ; FROM 销售表 JOIN 商品代码表 ON 销售表.商品号 = 商品代码表.商品号 ; WHERE 部门号 = X1 AND 年度 = X2 INTO TABLE xs&X1
注意:与P14页第45题区别.本题在两个文本框值的外面用了alltrim函数,而P14页第45题并没有使用.原因在于本题在文本框中输入的是数字,系统采用默认的数值长度并补充空格,所以需要使用alltrim函数将空格去掉.
第3套综合应用
在―表单设计器‖中,选定List1控件,在其―属性‖的RowSourceType处选择―6-字段‖,?在RowSource处选择―课程.课程名‖。
在―表单设计器‖中,选定List1控件,双击―属性‖的Click Event事件,在―List1.Click‖编辑窗口中,输入下列语句:
aa=thisform.list1.value
SELECT COUNT(*) AS 人数 FROM 考试成绩 WHERE 考试成绩.课程编号=课程.课程编号 INTO TABLE
&aa
第61套综合应用
在―表单设计器‖中,添加一个列表框List1,在其―属性‖的RowSourceType处选择―1 - 值‖,在RowSource处输入―01,02,03,04‖。
双击―查询‖命令按钮,在―Command1.Click‖编辑窗口中输入下列语句,接着关闭编辑窗口。 num=ThisForm.list1.value
SELECT * FROM 评分表 WHERE left(歌手编号,2)=num Order by 歌手编号 desc,分数 into dbf two
第48套综合应用
第74套综合应用
第75套简单应用(2)
以下选项按钮+复选框+SQL题暑假后复习用 第42套综合应用
双击―统计‖按钮,在―Command1.Click‖编辑窗口中编写相应的程序 Do case
Case thisform.myOption.value=1
select 姓名,持有数量 from currency_sl where currency_sl.外币代码=\into dbf rate_ry
Case thisform.myOption.value=2
select 姓名,持有数量 from currency_sl where currency_sl.外币代码=\into dbf rate_my
Case thisform.myOption.value=3
select 姓名,持有数量 from currency_sl where currency_sl.外币代码=\into dbf rate_oy endcase
注意:本题中使用了代码的具体字符串值27,14,38作为条件.与p15页17题方法一相似.
第20套综合应用
双击―确定‖命令按钮,在―Command1.Click‖编辑窗口中输入命令组,接着关闭编辑窗口。 Do case
Case thisform.optiongroup1.option1.value=1 and thisform.check1.value=1 SELECT * FROM employee INTO TABLE temp
Case thisform.optiongroup1.option1.value=1 and thisform.check1.value=0 SELECT * FROM employee
Case thisform.optiongroup1.option1.value=2 and thisform.check1.value=1 SELECT * FROM orders INTO TABLE temp
Case thisform.optiongroup1.option1.value=2 and thisform.check1.value=0 SELECT * FROM orders Endcase
第59套综合应用
双击―生成表‖命令按钮,在―Command1.Click‖编辑窗口中输入命令组,接着关闭编辑窗口。 Do case
case ThisForm.Check1.Value=1 And ThisForm.Check2.Value=1 and ThisForm.Optiongroup1.Value=1 SELECT 职工号,姓名,系名,工资,课程号 FROM 教师表 INNER JOIN 学院表 ON 教师表.系号 = 学院表.系号 ORDER BY 职工号 INTO TABLE TWO
case ThisForm.Check1.Value=1 And ThisForm.Check2.Value=1 and ThisForm.Optiongroup1.Value=2 SELECT 职工号,姓名,系名,工资,课程号 FROM 教师表 INNER JOIN 学院表 ON 教师表.系号 = 学院表.系号 ORDER BY 职工号 DESC INTO TABLE TWO
case ThisForm.Check1.Value=1 and ThisForm.Optiongroup1.Value=1
SELECT 职工号,姓名,系名,课程号 FROM 教师表 INNER JOIN 学院表 ON 教师表.系号 = 学院表.系号 ORDER BY 职工号 INTO TABLE ONE_X
case ThisForm.Check1.Value=1 and ThisForm.Optiongroup1.Value=2
SELECT 职工号,姓名,系名,课程号 FROM 教师表 INNER JOIN 学院表 ON 教师表.系号 = 学院表.系号 ORDER BY 职工号 DESC INTO TABLE ONE_X
case ThisForm.Check2.Value=1 and ThisForm.Optiongroup1.Value=1 Then
SELECT 职工号,姓名,工资,课程号 FROM 教师表 INNER JOIN 学院表 ON 教师表.系号 = 学院表.系号 ORDER BY 职工号 INTO TABLE ONE_XX
case ThisForm.Check2.Value=1 and ThisForm.Optiongroup1.Value=2 Then
SELECT 职工号,姓名,工资,课程号 FROM 教师表 INNER JOIN 学院表 ON 教师表.系号 = 学院表.系号 ORDER BY 职工号 DESC INTO TABLE ONE_XX Endcase
第四讲 项目管理器、库、表以及表之间的联系 一、必会知识
数据类型教材p41页表3.3前11个数据类型及其英文字母代码 索引类型教材p68页表3.7 数据完整性
实体完整性 约束完整性
参照完整性及规则 教材p80页2行~14行
更新规则 删除规则 插入规则
数据表之间的永久联系与参照完整性 数据表之间的关联 二、必会操作 项目管理器操作
数据库添加表和删除表 表设计器操作
建表
修改表的字段结构
设置字段的有效性规则、默认值(特殊的是默认值为值在表设计器NULL上打勾)
建立索引(索引名、索引表达式)
数据库表之间建立永久关系,并设置参照完整性 数据表之间建立临时关联
第12套基本操作(1)(2)(3)(4)
第8套基本操作(1)(2)(3)
第28套基本操作(1)(2)(3)(4)
第19套基本操作(1)(2)(3)(4)
第67套基本操作 (2)(3)(4)
第49套基本操作(1) (2)(3)(4)
第68套基本操作(1) (2)(3)(4)
第6套基本操作(1) (2)(3)(4)
第33套基本操作(1)(2)(3)(4)
第17套基本操作(1)(2)(3)
第31套基本操作(1)(2)(3)(4) 以下两题注意区别删除和移去
第1套基本操作(1)(2)
第21套基本操作(1)(2)(3)(4)
以下是建立两表之间的临时关联 第54套基本操作(2)(3)(4)
注意:―数据环境设计器‖中,先按住xuesheng表中的―学号‖不放,拖动鼠标至chengji表中的―学号‖处,就可以建立关联,不用像永久关系那样建立建立索引
第39套综合应用(布局工具栏的使用:两个表格尺寸相同,左右布局,顶边对齐)
第47套综合应用(1)(2) (此题复习菜单时练习,后面已列出)
第五讲 菜单 一、必会知识
1、两种菜单:下拉式菜单 (右键)快捷菜单 2、菜单的四种文件:
.mnx .mnt .mpr .mpx
其中最重要的是菜单文件.mnx和菜单程序文件.mpr,可以运行的是菜单程序文件,必须通过“生成”命令,将.mnx文件生成为.mpr文件。 二、必会操作 1、菜单设计器
设置:热键\\<(或访问键)、分组隔线\\-、快捷键 创建:命令、子菜单、过程 操作:
“菜单级”按钮(切换)
“插入栏”按钮(插入系统菜单的项目)
“显示”--“常规选项”菜单命令(插入菜单系统菜单的位置以及
是否在顶层表单中)
2、生成菜单 “菜单”菜单中的“生成”命令 四、必会命令
Set sysmenu to default 恢复系统菜单
Set sysmenu nosave 恢复系统菜单的标准配置 调用菜单命令:
(1)审题后,在相应的事件中写入:do ***.mpr
快捷菜单,一般在表单的rightclick(右击)事件中调用该命令。
(2)在顶层表单中调用菜单的命令:do ***.mpr with this,‖aaa‖ aaa是任意命名的。
修改菜单命令: modify command ***.mpr 菜单中常使用的其他命令: 调用表单命令Do form ***
预览报表命令report form *** preview
第47套综合应用(1)(2)
注意:菜单中的命令作用是关闭表单,不能使用thisform.release,
因为关闭当前表单是thisform.release,而本题是菜单中写命令不是表单中写命令,所以,应该写成myform.release.其中myform是表单文件名.
第16套基本操作(1)
第62套基本操作(1)
第20套简单应用(1)
第8套简单应用(2)
第5套综合应用
一、建立表单
1. 建立表单( CREATE FORM myform)
2. 在―表单设计器‖中,在其―属性‖的Name处输入―goods‖,在Caption处输入―商品‖,在ShowWindow处选择―2-作为顶层表单‖,双击―Load Event‖,在―goods.Load‖编辑窗口中输入―do mymenu.mpr‖。 3. 在―属性‖中,双击―Init Event‖,在―myform.Init‖编辑窗口中输入―do mymenu.mpr with this ,'xxx'‖,启动菜单命令。
4. 在―属性‖中,双击―Destroy Event,在―myform.Destroy‖编辑窗口中输入―release menu xxx extended‖,在表单退出时释放菜单。
5. 在―表单设计器‖中,添加一个表格控件Grid1,在其―属性‖的 RecordSourceType处选择―4-SQL说明‖。
二、建立菜单
1. 单击―文件\\新建‖命令项。
2. 在―新建‖对话框中选择―菜单‖单选钮,再按―新建文件‖按钮。
3. 在―新建菜单‖对话框中选择―菜单‖按钮,在菜单设计器中的―菜单名称‖中依次输入―商品分类‖和―退出‖这两个主菜单项,然后选择―商品分类‖菜单项,在―结果‖中选择―子菜单‖,单击―创建‖按钮,在―菜单设计器‖中,输入两个子菜单项―小家电‖、―饮料‖和―酒类‖。
4. 在―小家电‖子菜单的―结果‖选择―过程‖并输入命令下列语句
myform.grid1.recordsource=\* from products where 分类编码='4001' into cursor lsb\ 5. 在―饮料‖子菜单的―结果‖选择―过程‖并输入命令下列语句
myform.grid1.recordsource=\分类编码='1001' into cursor lsb\ 6. 在―酒类‖子菜单的―结果‖选择―过程‖并输入命令下列语句
myform.grid1.recordsource=\* from products where 分类编码='3001' into cursor lsb\ 7. 在―退出‖主菜单的―结果‖选择―过程‖并输入下列命令:myform.release
set sysmenu to default 8. 单击―显示/常规选项‖,在―常规选项‖对话框中选中―顶层表单‖。 9. 单击工具栏上―保存‖按钮,在弹出―保存‖对话框中输入―mymenu‖即可。
10. 在―菜单设计器‖窗口下,单击―菜单‖菜单栏,选择―生成‖菜单项,生成―mymenu.mpr‖文件。
第68综合应用 (常规选项卡在….之前,分步查询程序后面程序部分已列出)
―统计‖菜单过程中的内容:
SELECT Employee.组别, Employee.姓名; FROM 订单管理!employee; WHERE Employee.职务 = \组长\ INTO TABLE t1.dbf
SELECT Employee.组别, sum(Orders.金额) as 合计; FROM 订单管理!employee INNER JOIN 订单管理!orders ; ON Employee.职员号 = Orders.职员号; GROUP BY Employee.组别; INTO TABLE t2.dbf
SELECT T1.组别, T1.姓名 AS 负责人, T2.合计; FROM t1 INNER JOIN t2 ; ON T1.组别 = T2.组别; ORDER BY T2.合计 DESC; INTO TABLE tabletwo.dbf
第37综合应用
第六讲 报表 一、必会知识
报表的两个部分:数据源和布局
报表的数据源可以是数据库表、自由表、视图 报表文件扩展名frx
报表设计器常规三个部分:页标头、细节、页注脚,可以增加标题区、总结区、列标头区、列注脚区、组标头区、组注脚区。 二、必会命令
预览报表命令report form *** preview 三、必会操作
1、利用报表向导创建报表 2、快速报表 3、报表设计器
报表控件工具栏:文本控件、域控件、图片控件等
报表设计器中增加标题区、总结区、列标头区、列注脚区、组标头区、组注脚区的操作。
报表设计器中各个带区的操作
第3套基本操作(4)
第7套基本操作(4)(可以不作,与后面的26综合应用部分重复)
第72套基本操作(4)
第25套简单应用(2)
第23套综合应用
第26套综合应用
第1套综合应用(1)(2)
第6套综合应用
注意:本题目评分时,检查关键字词 ―from customer‖和‖from sb_view‖,而通过查询设计器获得的SQL语句的形式是‖from ecommerce!customer‖和‖from ecommerce!sb_view‖,即前面都自动增加一个数据库名和‖!‖,所以应手工去掉这些内容.
第七讲 命令与程序 一、必会命令 Set date to MDY… Set mask to 分隔符
Set century on/off to 值1 rollover 值2
Open database 库名 Create 表名 Use 表名 Use Close all
Close database Quit Append
Append from Insert List Disp
Delete pack recall
注:范围有四种:all next n rest record n
以上四条命令,后面不跟范围参数,与不跟条件限定时,除list外,均是对当前记录进行操作,而list是显示全部记录。另外,命令中只要有条件限定,其范围就是all zap
locate for seek go skip
replace …with…
index on 索引表达式 tag 索引名 set order to tag 索引名
select 工作区号/工作区别名
注:利用多个工作区可以同时打开多个表 工作区号1-32767
工作区别名a,b,c,…..也可以是该工作区打开的表名 Set relation to 共同关键字段into 被关联工作区别名/号 Set relation to Accept input
Wait …window 数组
Dimension
与库传递数据:Scatter to
Gather from
作为变量被赋值:a(1)=123 Sele …into array a
用来构造表达式:thisform.text3.value=a(1) 过程
变量三种作用域
public Local Private
过程定义procedure/function Procedure 过程名 Parameters 形参 …
Return [表达式] Endprocedure 过程调用
格式1: do 过程名 with 实参 格式2: 过程名(实参)
针对格式2:set udfparms to value/reference 参数传递:实—>形 传值/传地址 程序执行命令do ***.prg 其他命令: list\\disp memory Release
第13套综合应用
9. 在―表单设计器‖中,双击―Command1‖命令按钮,在―Command1.Click‖编辑窗口中输入下列语句,接着关闭编辑窗口。
Hzbh=alltrim(ThisForm.Text1.Value)
select 姓名,年龄,性别,家庭地址 from p_t where 户主编号=hzbh into array tmp ThisForm.Text2.Value=tmp(1) ThisForm.Text3.Value=tmp(2) ThisForm.Text4.Value=tmp(3) ThisForm.Text5.Value=tmp(4)
ThisForm.Grid1.RecordSource=\土地编号,小地名,面积,树种编号,蓄积,承包年度 FROM
fr_t WHERE 户主编号=hzbh INTO CURSOR LSB\
第31套综合应用
hypy=thisform.text1.value
SELECT Stock_sl.股票代码, Stock_sl.持有数量,;
( Stock_sl.现价- Stock_sl.买入价)* Stock_sl.持有数量 as 浮亏金额; FROM stock!stock_sl INNER JOIN stock_name ; ON Stock_sl.股票代码 = Stock_name.股票代码; WHERE Stock_name.汉语拼音 = hypy into array a use stock_fk
thisform.text2.value=a(2)
insert into stock_fk values(a(1),a(3)) “退出”命令按钮代码:thisform.release “清空”命令按钮代码: delete from stock_fk 重.
Pack
注意:运行各项查询要求以后,千万不能再次单击清空按钮,否则生成表中的记录将全部被删除,扣分严
第78套综合应用
在―表单设计器‖中,添加一个命令按钮,其Name为:―Commands‖,其Caption为:―开始查询‖双击―开始查询‖命令按钮,在―Commands.Click‖编辑窗口中输入下列语句,接着关闭编辑窗口。 emp=thisform.textn.value
select 订单号,客户号,签订日期,金额 from order where 职员号=emp order by 签订日期 into dbf t&emp
thisform.release
第2套综合应用
select count(distinct dhdw) from gnht into array a select count(distinct ghdw) from gnht into array b select sum(jhsl) from gnht into array c use jieguo go 1
replace num with a go 2
replace num with b go 3
replace num with c
第71套综合应用
Zcrq= CTOD(ALLTRIM(ThisForm.Text1.Value))
ThisForm.Grid1.RecordSource = \学号,姓名,年龄,性别,班级,注册日期 FROM 学生表; WHERE 注册日期 = zcrq ORDER BY 年龄 DESC INTO CURSOR lsb\SELECT 学号,姓名,年龄,性别,班级,注册日期; FROM 学生表;
WHERE 注册日期 = zcrq ORDER BY 年龄 DESC INTO table t1 Use tabe zap
APPEND FROM t1
注意: 本题不能在第二个查询语句中输入‖….into table tabe‖,因为tabe是已存在的表,不能再为生成.所以先生成过渡表t1,然后再将其记录通过append from添加到表tabe中.
第25套综合应用
SELECT * FROM order_detail INTO DBF od_bak update od_bak set 订单号=right(订单号,1)
SELECT 订单号,器件号,器件名,MIN(单价) AS 单价,SUM(数量) AS 数量; FROM od_bak;
GROUP BY 订单号,器件号; ORDER BY 订单号,器件号; INTO DBF od_new
第64套综合应用
双击―查询统计‖命令按钮,在―Command1.Click‖编辑窗口中输入命令组xm=alltrim(thisform.text1.value)
Thisform.Grid1.RecordSource=\订单号,金额;
from employee ,order where Employee.职员号 = Order.职员号; and 姓名=xm;
order by 金额 into dbf t\
select max(金额) 最高金额,min(金额) 最低金额,avg(金额) 平均金额; from t; where 姓名=xm; into array a
insert into tablethree values(xm,a(1),a(2),a(3))
第35套综合应用
双击―查询‖命令按钮,在―Command1.Click‖编辑窗口中输入命令,接着关闭编辑窗口。 close all
use score1
xh=alltrim(ThisForm.Text1.Value)
locate for 学号=xh
if found()
ThisForm.Grid1.Recordsource=\课程名,成绩 from score1,course where 学号=xh and score1.课程号=course.课程号 into cursor temp1\
else
WAIT \学号不存在,请重新输入\ endif
第53套综合应用
在―计算‖子菜单的―结果‖选择―过程‖并输入命令下列语句
select avg(数学),avg(英语),avg(信息技术) from chengji; into array ttt
select xuesheng.学号,姓名 from xuesheng join chengji; on xuesheng.学号=chengji.学号;
where 数学>=ttt(1) and 英语>=ttt(2) and 信息技术>=ttt(3); order by xuesheng.学号 desc; into table table2
第52套综合应用
正在阅读:
上机必会命令函数属性方法事件及上机分次题目(2011讲义)07-12
小学奥数 - 数论专题04-30
新建筑设计防火规范培训08-14
纬地道路无中间带公路超高旋转方式计算流程及结合工程实际算例(超详细)03-10
教师评优申请书03-31
顺义区“十二五”节能潜力调研报告05-09
centos7安装Oracle04-16
2012-2013学年河南省郸城县光明中学七年级下学期期中检测历史试04-17
2013年旧件管理培训03-19
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 上机
- 讲义
- 函数
- 属性
- 题目
- 命令
- 事件
- 方法
- 2011
- 初识党的纪律
- 七年级英语第十八周英语晚测
- 基金论市:A股后市向上依然是大概率 挖掘错杀股
- 如何做好新形势下的高校外事接待工作
- 培训行业发展现状分析
- 闻一多先生的说和做优质课竞赛教案
- 某化纤厂总配电所及配电系统设计
- 人民警察演讲稿
- 作为教师的优势与不足的自我分析
- 廉洁文化主题教育课教案
- 生物化学作业答案
- 人教版小学数学二年级下全册(表格式)集体备课教案
- 营商环境工作开展情况汇报
- 阿里旺铺客服工作职责 - 图文
- 十三五(2016-2020年)中国草地灯座行业市场未来发展趋势及投资
- 高三理科数学第一学期期末考试
- 2011年中考数学试题分类点线面角
- 一道中考数学题的解法探讨
- 2018最新幼儿园小班数学说课稿范文-精选word文档(4页)
- 语文三下教案