第 1 頁:基本操作題 |
第 2 頁:簡單應用題 |
第 3 頁:綜合應用題 |
三、綜合應用題
3[簡答題]
利用表設計器在考生文件夾下建立表table3,表結構如下:
然后編寫程序prog1.prg,在xuesheng表和chengji表中查詢所有成績不及格(分數小于60)的學生信息(學號、姓名、課程名和分數),并把這些數據保存到表table3中(若一個學生有多門課程不及格,在表table3中就會有多條記錄)。要求查詢結果按分數升序排列,分數相同則按學號降序排列。
要求:在程序中用SET RELATION命令建立chengji表和xuesheng表之間的關聯(同時用INDEX命令建立相關的索引),并通過DO WHILE循環語句實現規定的功能。最后運行程序。
參考解析:【考點分析】本大題主要考查的知識點是:新建自由表,創建程序文件,SQL語句中的0RDER BY、GROUPBY、INTO TABLE短語的使用,循環、選擇語句的使用,利用命令建立索引,刪除表以及SQL的插入語句。 【解題思路】利用建立索引的命令來新建索引,通過循環語句的使用來判斷滿足條件的數據,再使用IF語句進行分段節選,將符合要求的信息進行保存,最后再將查詢出的結果進行排序和保存,刪除中間表。
【操作步驟】
步驟1:通過前面所學的知識,按照題目的要求新建一張表table3。
步驟2:新建程序prog1.prg,輸入下列命令語句,并運行該程序。
* * * * * * prog1.prg中的代碼* * * * * * *
&&關閉程序運算的顯示過程
SET TALK OFF
&&打開數據庫
OPEN DATABASE cj_m
&&選擇查詢字段,制定字段來源,設置查詢條件,將查詢結果存儲列表temp中
SELECT*FRON table3 NHERE.F.TNTOTABLE temp
SEL,ECT 1
&&打開xuesheng表
USE xuesheng
&&建立索引
INDEX ON學號TAG學號
SELECT 2
&&打開chengji表
USE chengji
&&建立索引
INDEX ON學號TAG學號
SET RELATION T0學號INTO xuesheng
GOTOP
&&循環直至遍歷所有記錄
DO WHILE.NOT.EOF()
&&先進行判斷,滿足條件就向temp表中插入數據
IF chengji.數學<60
INSERT INTO temp Values(xuesheng.學號,xuesheng.姓名,‘數學’,chencjji.數學)
ENDIF
&&先進行判斷,滿足條件就向temp表中
插入數據TF chencsji.英語<60
INSERT TNTO temp Values(xuesheng.學號,xuesheng.姓名,‘英語’,chengji.英語)
(ENDTF
&&先進行判斷,滿足條件就向temp表中插入數據
(IF chencjji.信息技術<60
INSERT TNTO temp Valuea(xueshencj.學號,xuesheng.姓名,‘信息技術’,chengji.信息技術)
(ENDDO
&&選擇查詢字段,指定字段來源,查詢結果按分數升序排列,分數相同按學號升序排列,將查詢結果存儲到AR.RAY arr中
SELECT*FROM temp ORDER BY分數,學號
DESC TNTO ARRAY arr
&&將ARRAY arr中數據插入table3中
TNSERT TNTO table3 FROM ARRAY arr
&&關閉數據庫
CLOSE DAr2ABASE
關閉表
CLOSE TABT,ES ALL
刪除temp
DROP TABLE temp
&&關閉程序運算的顯示過程
SET TALK ON
&&返回
RETURN
* * * * * * * * * * * * * * * * * * * *
【易錯提示】對于建立普通索引的命令以及利用命令刪除表,考生需要牢記,在循環語句和選擇語句的嵌套使用,也是需要考生特別注意的。
相關推薦: