上机必会命令函数属性方法事件及上机分次题目(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套综合应用

本文来源:https://www.bwwdw.com/article/n1w.html

Top