VF最終編輯的教案【考試詳解】_第1頁
VF最終編輯的教案【考試詳解】_第2頁
VF最終編輯的教案【考試詳解】_第3頁
VF最終編輯的教案【考試詳解】_第4頁
VF最終編輯的教案【考試詳解】_第5頁
已閱讀5頁,還剩38頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

第第頁VF最終編輯的教案【考試詳解】VF考試詳解

第三章:VF數(shù)據(jù)庫的操作

一.項目理論

1項目的功能:項目在數(shù)據(jù)庫開發(fā)中管理和掌握各類全部文件.它只是管理和掌握,并不存儲.VF

中每個項目有一個項目管理器.2項目的組成:項目管理器由全部、數(shù)據(jù)、代碼、文檔、類、其它等六個標簽。2.1數(shù)據(jù)標簽:主要管理VF所涉及的四大類:數(shù)據(jù)庫,自由表,查詢,視圖.2.2文檔標簽:主要管理表單,報表,標簽.

2.3類標簽:主要管理類.對象是實體,類是框架.是一類相像對象的性質(zhì)描述。2.4代碼標簽:主要管理程序,即Prg程序,API函數(shù)庫,APP程序.2.5其它標簽:管理其它文件如菜單,位圖,文本等.上機:

如:1在硬盤上創(chuàng)建一個文件夾,在新建一名為“同學(xué)管理“項目.

1.1雙擊打開我的電腦,現(xiàn)雙擊打開硬盤上的某個盤符,執(zhí)行“文件“菜單下的”新建文件夾“指令,新建一個文件夾并自己命名。如命名為”0124“.1.2設(shè)置進入0124文件夾

cdgetdir()更改默認目次,或在“工具”菜單下的“選項”指令下的“文件位置”下“默

認目次”下點修改進行更改路徑。

cd顯示路徑.〔常用指令,顯示當前路徑,機試考試啟動VF,輸入CD,顯示路徑

與考生文件夾全都,才可答題,否那么無效〕

1.3新建項目.執(zhí)行“文件”菜單——“新建“指令或常用工具欄上的新建按鈕.1.4涌現(xiàn)新建對話框,選項目,點新建,在命名為同學(xué)管理保存.2項目的打開:

練習(xí):打開0124文件夾中的同學(xué)管理項目.

先輸入CD,顯示當前路徑是否在自己新建的文件夾,是執(zhí)行2.2步徑直打開,不是執(zhí)行2.1步設(shè)定

2.1進入0124文件夾.cdgetdir()或通過“工具”菜單下的“選項”下的“文件位置”設(shè)定2.2打開項目單擊“文件”下菜單下的打開指令或常用工具欄的打開.2.3涌現(xiàn)對話框,文件類型選項目PJ*,再選定“同學(xué)管理”項目文件,確定.

注:再打開項目后,假如是空項目,在關(guān)閉時會提示對話框“刪除/保存”,刪除是從硬盤文件夾徑直刪除,點保存仍舊在自己新建的文件夾下。二.有關(guān)數(shù)據(jù)庫.A理論

數(shù)據(jù)庫是相關(guān)表的集合,它是表的一種容器,主要管理和掌握表,但不存儲表.數(shù)據(jù)庫的構(gòu)成:數(shù)據(jù)庫文件.dbc備注文件:.dct索引文件:.dc*B上機

1在同學(xué)管理項目中創(chuàng)建一“同學(xué)庫”數(shù)據(jù)庫.〔在項目中先選文件類型〕1.1打開同學(xué)管理項目管理器.

1.2單擊數(shù)據(jù)標簽,選定數(shù)據(jù)庫〔文件類型〕,點新建,再點新建數(shù)據(jù)庫,再命名為“同學(xué)庫“,點保存指令,此時系統(tǒng)將打開同學(xué)庫設(shè)計器.

2“同學(xué)庫“數(shù)據(jù)庫的打開〔項目下選詳細的文件〕.

2.1打開同學(xué)管理項目,選定數(shù)據(jù)庫+號開展,再選定同學(xué)庫文件,點修改.打開庫設(shè)計器.3從同學(xué)管理項目中移出“同學(xué)庫”數(shù)據(jù)庫〔項目下選詳細的文件〕.打開同學(xué)管理項目,選定同學(xué)庫數(shù)據(jù)庫文件,點移去按鈕,涌現(xiàn)提示:有二項.移去/刪除:

VF考試詳解

移去:從項目中刪除數(shù)據(jù)庫,但在文件夾中存在.只是不受項目管理.刪除:徑直從硬盤文件夾中刪除數(shù)據(jù)庫.

4添加“同學(xué)庫”數(shù)據(jù)庫到同學(xué)管理項目〔項目中選文件類型〕.

4.1打開同學(xué)管理項目,選定要添加的文件的文件類型(數(shù)據(jù)庫),點添加,選定文件,確定.小結(jié):新建文件或添加文件在項目中選詳細的文件類型(如圖),

打開〔修改〕或刪除文件選詳細的文件(如圖b)〔第一章1.5.2節(jié)概述〕

3有關(guān)表A理論

1分類:表分為自由表和數(shù)據(jù)庫表.

二者擴展名均為.dbf,二者可轉(zhuǎn)換.數(shù)據(jù)庫表受數(shù)據(jù)庫管理掌握,自由表不受任何數(shù)據(jù)庫管理.2表結(jié)構(gòu)的描述.表名(字段名,數(shù)據(jù)類型,寬度,小數(shù)位)

如同學(xué)(學(xué)號C6,姓名C8,誕生日期D,成果(N,6,2),民族L)3字段:變量按空間分為字段變量和內(nèi)存變量.

3.1字段名命名:1不能用數(shù)字開頭,只能是漢字或字母開頭

VF考試詳解

2字段名可以用字母,數(shù)字,下劃線,漢字命名.3不能是關(guān)鍵字.

4數(shù)據(jù)庫表的字段名長度不超過128字符,自由表字段名最長為10例:指出錯誤的字段名:ABCE

A姓名B[學(xué)號]C23DA1EB?3.2字段類型共有11種類型.6種常用.

6種常用:數(shù)值型N,字符型C,貨幣型Y,日期型D,日期時間T,規(guī)律型L,

7整型i:它是數(shù)值型的一種,只存儲整數(shù)部分,如成果可設(shè)數(shù)值型,可設(shè)整型。.8單精度F:它是數(shù)值型的一種,存儲精度小的實數(shù).9雙精度B:存儲精度大的實數(shù).

10備注型M:它是字符型的一種,用于存長度超過254的C型數(shù)據(jù).11通用型G:存其它文件創(chuàng)建的文檔,如Word,位圖bmp.3.3字段寬度默認D8T8i4L1M4G4

B上機留意:有關(guān)表的操作如表的新建、打開、閱覽、刪除均在數(shù)據(jù)庫設(shè)計器中右擊完成〔重點〕

1數(shù)據(jù)庫表的創(chuàng)建.如在同學(xué)數(shù)據(jù)庫中創(chuàng)建如下表:同學(xué)(學(xué)號C6,姓名C8,性別L,誕生日期D,班級C2)成果(學(xué)號C6,課程號C2,成果N(6,2))1運用數(shù)據(jù)庫設(shè)計器建表

A打開同學(xué)管理項目,選定“同學(xué)庫”數(shù)據(jù)庫文件,點修改,打開“同學(xué)庫”數(shù)據(jù)庫設(shè)計器.

B在“同學(xué)庫”庫設(shè)計器空白處右擊執(zhí)行“新建表”指令,點新建表,命名保存,打開表設(shè)計器,按考題要求設(shè)表的字段名及類型〔成果表類同〕

2表結(jié)構(gòu)的修改(機試考點,表的操作主要在表設(shè)計器中完成)如:在同學(xué)表中添加字段(照片G)

在成果表中課程號后插入課程名C8(以上兩個操作均在表設(shè)計器中完成)

操作1打開項目,再打開同學(xué)庫設(shè)計器,選定同學(xué)表,右擊執(zhí)行修改,打開同學(xué)表設(shè)計器,單擊插入,插入一字段并命名為照片,類型選通用型,再將照片字段拖動至字段底部。.

操作2打開項目,打開同學(xué)管理數(shù)據(jù)庫設(shè)計器,選定成果表,右擊點修改,在成果表設(shè)計器完成。3數(shù)據(jù)庫表的添加和移出.

3.1將數(shù)據(jù)庫表從數(shù)據(jù)庫中移出,變?yōu)樽杂杀怼苍谕瑢W(xué)庫設(shè)計器中完成〕練習(xí):將同學(xué)表和成果表從庫中移出.

操作1,打開項目,打開同學(xué)庫設(shè)計器,選定同學(xué)表,右擊執(zhí)行刪除,再單擊移去指令,同學(xué)表變?yōu)樽杂杀?如執(zhí)行刪除指令下的刪除指令將永久刪除表)

3.2添加自由表到數(shù)據(jù)庫,〔在同學(xué)庫設(shè)計器空白表右擊執(zhí)行“添加表”指令〕

操作如下:打開同學(xué)庫設(shè)計器,在庫設(shè)計器空白處右擊執(zhí)行“添加表”指令,涌現(xiàn)對話框,選定同學(xué)表添加,如要再次添加,再重新在空白處右擊“添加表”指令。4表記錄的輸入:

練習(xí):在同學(xué)表中輸入如下記錄:

學(xué)號姓名性別誕生日期班級96001李明.T.02/02/19800196002張海.T.11/23/19810196003王紅霞.F.01/11/19790296004李梅.F.01/20/198202練習(xí)2:在成果表添加記錄

學(xué)號課程號成果

VF考試詳解

960010180960020270960030190960040260操作如下:運用同學(xué)庫設(shè)計器

1、打開同學(xué)管理項目,打開同學(xué)庫設(shè)計器,選定同學(xué)表,右擊執(zhí)行“閱覽”指令,打開表閱覽器,2、不能在同學(xué)表的閱覽器中輸入記錄,那么執(zhí)行“顯示”菜單下的“追加方式”指令,再輸入記錄.〔成果表操作類同〕操作2運用庫設(shè)計器.

打開項目,打開庫設(shè)計器,選定表,右擊閱覽,再追加,再輸入.5表記錄的刪除:

刪除分物理刪除:實際刪除

規(guī)律刪除:只是給記錄上作刪除標記*.刪除過程:選規(guī)律后物理.

練習(xí):刪除同學(xué)表中的第一和第三條記錄.

操作1打開表的閱覽窗口(在庫設(shè)計器中右擊執(zhí)行“閱覽”指令)

2單擊閱覽窗口上的第一和第三條記錄的刪除標記(規(guī)律刪除)3執(zhí)行“表”菜單下的“徹底刪除”指令(物理刪除)4閱覽窗口自動關(guān)閉.6有關(guān)空值輸入.

練習(xí):在同學(xué)管理數(shù)據(jù)庫中創(chuàng)建班級表輸入如下內(nèi)容.班級(班級號C2,班級名C20,班主任(C8,NULL)班級號班級名班主任01計算機(1)null02計算機2李海03計算機3null

操作1在班級表設(shè)計器中班主任字段null項打勾.

2輸入記錄null用快捷鍵ctrl+0(數(shù)字零)輸入.null值,不能徑直輸null

第二節(jié):索引

1.1索引是一種非常的排序.

索引文件分為單索引和復(fù)合索引.

1.1.1單索引文件:在一個文件中只能保存一個索引,擴展名為id*.1.1.2復(fù)合索引文件:在一個文件中可保存多個索引,擴展名為Cd*.復(fù)合索引文件分為結(jié)構(gòu)復(fù)合索引和一般復(fù)合索引.

1.2.1結(jié)構(gòu)復(fù)合索引:在打開表時會自動打開相關(guān)的索引,它是表的一部分,所以稱為結(jié)構(gòu)復(fù)合索引,其索引名即相關(guān)表的主文件名.

1.2.2一般復(fù)合索引:打開表時不自動打開,需指令打開,索引名由用戶定義.1.3索引的分類:分主索引,候選索引,唯一索引,一般索引1.3.1主索引:

特點:1在一個表中只能是一個.

2主索引涉及的表達式不允許重復(fù)值.

3主索引主要用于創(chuàng)建表的永久性關(guān)系,只能在數(shù)據(jù)庫表中創(chuàng)建,不能在自由表.1.3.2候選索引:

特點:一個表中可以有多個索引,只能一個主,其索為候選.

2不允許重復(fù)值.1.3.3唯一索引

1一個表可有多個索引.2允許重復(fù)值,但只重復(fù)第一個.

VF考試詳解

1.3.4一般索引

它是一種簡約的排序,可允許涌現(xiàn)多個重復(fù),并可全部重復(fù)小結(jié):在數(shù)據(jù)庫表中允許4種索引,自由表只能是候選、唯一和一般

通過表設(shè)計器創(chuàng)建的索引保存在結(jié)構(gòu)復(fù)合索引文件中,其擴展名為cd*上機:練習(xí):創(chuàng)建索引:

1創(chuàng)建基于學(xué)號的主索引ID(索引名)2創(chuàng)建基于姓名的一般索引*M(按降序)操作:1打開同學(xué)表設(shè)計器.

2打開索引標簽,索引名為ID,類型主索引,表達式中字段雙擊得到.(創(chuàng)建主索引,輸入記錄不能重復(fù))

3再在同學(xué)表設(shè)計器中創(chuàng)建姓名的一般索引*M2帶條件索引:

練習(xí):對同學(xué)表全部男同學(xué)記錄按姓名降序,創(chuàng)建*M2.操作:1打開同學(xué)表設(shè)計器,單擊索引標簽.

2設(shè)定索引名*M2,類型一般,表達式姓名,降序,篩選條件設(shè)定為:性別=.T.3索引的運用:索引可同時打開多個,但同一時刻只能運用一個,此索引稱為當前索引當前索引只影響記錄的顯示順次,不轉(zhuǎn)變實際物理順次.上機:設(shè)定當前索引*M2

1打開同學(xué)表的閱覽窗口,執(zhí)行表菜單下的屬性指令.2設(shè)置索引順次*M2,那么表中不符合條件的記錄被隱蔽。.4字段的有效性設(shè)置.

表的完整性分:1域完整性:指數(shù)值取值的有效范圍.

其通過字段有效性規(guī)章設(shè)定,如類型,寬度,小數(shù)位實現(xiàn).2實體完整性:不允許有重復(fù)值,通過主索引和候選設(shè)定3參照完整性:不允許運用不存在的元組.

兩表關(guān)聯(lián),不允許有不存在記錄,通過永久關(guān)系實現(xiàn).4自定義完整性:用戶自己設(shè)定,維護記錄的正確性.練習(xí)1:字段的有效性設(shè)置〔在表設(shè)計器中完成〕

設(shè)定同學(xué)表學(xué)號范圍為96001--96050,當不符合規(guī)章,會涌現(xiàn)錯誤提示:同學(xué)無效操作1打開同學(xué)表設(shè)計器,選定學(xué)號字段(規(guī)章涉及字段)2在字段有效性中設(shè)定:

規(guī)章設(shè)為:between(學(xué)號,96001,96050)或?qū)W號=”96001”and學(xué)號=”96050”信息設(shè)為:學(xué)號無效

3最末確定,打開閱覽窗口,輸入學(xué)號試.(規(guī)章框輸入需要是規(guī)律型,信息項是字符型)5記錄有效性規(guī)章:

規(guī)章涉及一個字段為字段有效性,涉及多個字段為記錄有效性.練習(xí):再創(chuàng)建如下表

CHJ(姓名c8,數(shù)學(xué)I,語文i,總分i)規(guī)章:總分為數(shù)學(xué)和語文之和,否那么提示總分錯誤操作:1創(chuàng)建CHJ表,打開CHJ表設(shè)計器,單擊表標簽.2在記錄有效性中設(shè)定規(guī)章:總分=語文+數(shù)學(xué)信息:總分錯誤

3單擊確定,輸入成果試.〔字段或記錄有效型的信息項輸入需要是字符型〕6字段的默認值設(shè)定.

它是字段的域完整性,指添加記錄的字段默認內(nèi)容.練習(xí):設(shè)置同學(xué)表中學(xué)號的字段默認為96001.

VF考試詳解

設(shè)置姓名的默認值是張海

操作:打開同學(xué)表設(shè)計器,單擊學(xué)號字段,,在默認值項設(shè)為:96001,再單擊姓名字段,在默認值項輸入“張?!?再單擊確定.〔默認值輸入需要與字段類型全都〕7參照完整性規(guī)章

它是參照另一個表的數(shù)據(jù)來驗證本表數(shù)據(jù)的一種規(guī)章.(如通過同學(xué)表的學(xué)號驗證成果表的學(xué)號)

參照完整性規(guī)章分為:更新參照完整性,刪除參照完整性,插入?yún)⒄胀暾?7.1更新完整性:更新數(shù)據(jù)發(fā)生.A忽視:兩表更新互不干涉.

B限制:修改主表時,子表拒絕更新

C級聯(lián):修改主表時,對應(yīng)子表同時更新.7.2刪除完整性:在規(guī)律刪除表記錄時發(fā)生.有忽視,限制,級聯(lián).

7.3插入完整性:在插入記錄時發(fā)生.有忽視和限制兩種狀況,沒有級聯(lián).說明:在建立一對多聯(lián)系時,1方需建主索引或候選索引,M方建一般索引.上機:〔完整一套上機題〕先創(chuàng)建“同學(xué)管理1”項目再建“同學(xué)庫1”數(shù)據(jù)庫中創(chuàng)建如下表:

同學(xué)1(學(xué)號C6,姓名C8,性別L,民族L)成果1(學(xué)號C6,課程號C2,成果N(6,2))2創(chuàng)建索引.

基于學(xué)號同學(xué)表主索引ID學(xué)號成果表一般索引*H

3創(chuàng)建聯(lián)系(在數(shù)據(jù)庫設(shè)計器上建立1:1主:普)3.1建同學(xué)(主)與成果(子)在學(xué)號的1:M聯(lián)系4清理數(shù)據(jù)庫,再創(chuàng)建參照完整性.

單擊數(shù)據(jù)庫菜單下清理數(shù)據(jù)庫指令.

5在設(shè)計器空白處右擊執(zhí)行編輯參照完整性指令.6設(shè)置如下規(guī)章:

6.1同學(xué)與成果之間更新規(guī)章為限制6.2同學(xué)與成果之間刪除為級聯(lián)6.3同學(xué)與成果之間插入為限制

7最末確定即可,不需要保存,徑直關(guān)閉庫或項目。

vf常用指令

一.有關(guān)數(shù)據(jù)庫.

1.創(chuàng)建庫createdatabase庫名2.打開庫

格式1:opendatabase庫名*打開庫,并設(shè)為當前庫.〔06年4月考點〕注:1打開庫,并不自動打開庫中表.2執(zhí)行時,不打開庫設(shè)計器

格式2:modifydatabase庫名*連創(chuàng)建帶打開,并打開設(shè)計器3庫的刪除:deletedatabase庫名

4庫的關(guān)閉closedatabase*關(guān)閉當前庫.

closealldatabase關(guān)閉全部已打開庫closeall關(guān)閉全部〔常用指令〕二.有關(guān)表

1創(chuàng)建表:create表名

VF考試詳解

說明:徑直打開表設(shè)計器,在沒打開庫時所建表為自由表,打開庫所建表為數(shù)據(jù)庫表,并自動添加到庫中.

2打開表use表名

3表結(jié)構(gòu)的修改:modifystruct打開當前表的設(shè)計器.4表的關(guān)閉:use關(guān)閉當前表,但不關(guān)閉庫.5數(shù)據(jù)庫表與自由表的轉(zhuǎn)換:

5.1數(shù)據(jù)庫表轉(zhuǎn)為自自表:removetable表名5.2添加自由表:addtable表名添加之前應(yīng)設(shè)置當前庫.

6表的刪除:droptable表名7有關(guān)指針操作.

7.1gotop指針指向第一條記錄7.2gobottom指向最末一條.7.3go/gotoN指向第N條

7.4skip+/-N指針在當前記錄上下移動N條.缺省N=18表記錄顯示

list[范圍][條件][fields字段名]范圍:all全部l

帶條件:for如:listfor性別=.f.字段:fields字段名:

如:listfor性別=.f.fields姓名,誕生日期只顯示女生的姓名和誕生日期

display只是顯示當前l(fā)ist默認all顯示全部9記錄查詢:locatefor條件

continue可繼續(xù)下一條.二者協(xié)作運用.10表測試函數(shù).

10.1?recn()測試當前記錄.?recc()顯示總記錄個數(shù).

?bof()是否在表頭,是顯示.T.?EOF()是否在表尾.11記錄插入

11.1append[before][blank]

在表尾追加記錄,appendblank追加空記錄11.2insert[before][blank]

在當前記錄之前或之后插入記錄或空記錄.

insertbefore在當前之前.blank代表空12記錄的刪除與復(fù)原.

12.1規(guī)律刪除:delete[范圍]for條件默認delete刪除當前

12.2規(guī)律刪除復(fù)原:recall范圍for條件.recallall復(fù)原全部.13物理刪除:

pack刪除已規(guī)律刪除的記錄.zap無條件刪除表中全部記錄.14記錄的復(fù)制

copyto新表名.執(zhí)行前先打開復(fù)制的表.copystructto新表名只復(fù)制表結(jié)構(gòu).

VF考試詳解

15記錄的追加:

appendfrom表名:從from指定表追加全部記錄到當前表.16索引的創(chuàng)建.

inde*on表達式tag索引名[cand/uniue]如:use同學(xué)

inde*on學(xué)號tag*hcand建候選索引*hinde*on學(xué)號tag*h1建一般索引*h1

第五章:SQL標準查詢語言(重點)

1查詢功能

格式select字段AS別名from表名where條件

orderby排序字段[asc/desc]groupby分組字段having分組條件

功能:從from指定的表中提取符合where條件記錄,然后按orderby指定的字段排序,接著按groupby指定的字段分組,最末返回select指定的詳細字段內(nèi)容.

注:練習(xí)教材的例題需要創(chuàng)建129頁的訂貨管理數(shù)據(jù)庫,再建倉庫、職工、訂購單、供應(yīng)商等表。

資料中的例題建如下表,并添加相應(yīng)的記錄進行查詢練習(xí)。

同學(xué)〔學(xué)號C6,姓名C8,性別L,誕生日期D,班級C2〕成果〔學(xué)號C6,課程號C2,成果N〔6,2〕〕課程〔課程號C2,課程名C8〕例1查詢?nèi)客瑢W(xué)表的信息select*;from同學(xué)

例2:查詢性別為女的漢族同學(xué)姓名及學(xué)號select學(xué)號,姓名;from同學(xué);

where性別=.f.and民族=漢例3查詢性別為男的全部同學(xué)信息.select*;from同學(xué);

where性別=.t.

或sele*from同學(xué)where性別=.t.例4:查詢學(xué)號在96001-96005之間的同學(xué)記錄select*;from同學(xué);

wherebetween(學(xué)號,96001,96005)或where學(xué)號=96001and學(xué)號=96005

或where學(xué)號between“96001”and“96005”(三種方法均可)例5:查詢姓張的同學(xué)select*;from同學(xué);

where姓名like張%

或whereleft(姓名,2)=”張”

在SQL中%代表*,_表示?.,指令中查找任意字符用*,而SQL中需要是%。例6:查詢姓名中有海的同學(xué)。

VF考試詳解

select*;from同學(xué);

where姓名like%海%

“%?!被颉焙?“均錯誤,“%?!贝硇彰钅┮粋€字是海的同學(xué),而”海%”代表姓海的同學(xué)例7查詢姓名為兩個字符的同學(xué)在SQL中一個漢字代表一個字符Sele*from同學(xué);where姓名like__

例8:查詢學(xué)號=96003,96002,96005的同學(xué).select*;from同學(xué);

where學(xué)號=96003or學(xué)號=96002or學(xué)號=96005或where學(xué)號in(96003,96002,96005)嵌套查詢:

一個查詢需運用另一個的查詢結(jié)果,它們之間是嵌套關(guān)系:例1:查詢選修01課程分數(shù)在80分以上的全部同學(xué)信息。運用聯(lián)接:

select同學(xué).*;from同學(xué),成果;

where同學(xué).學(xué)號=成果.學(xué)號and成果=80and課程號=01嵌套實際是分兩步:

1得到01課程并且成果在80分以上的同學(xué)學(xué)號select學(xué)號;from成果;

where課程號=01and成果=80

2通過第一步得到結(jié)果〔學(xué)號)再查詢相關(guān)同學(xué)信息select*;from同學(xué);

where學(xué)號in;(第一步的結(jié)果〕例2〔上機考題〕

查詢選修課的同學(xué)信息〔選修課指有成果的同學(xué)信息〕,此查詢可以嵌套,可以聯(lián)接運用聯(lián)接

Sele同學(xué).*;From同學(xué),成果;

Where同學(xué).學(xué)號=成果.學(xué)號

嵌套分兩步第一步:先在成果表中查詢有成果的同學(xué)學(xué)號。Sele學(xué)號from成果

第二步:通過第一步查找到的成果表的學(xué)號與同學(xué)表的學(xué)號對應(yīng)得到同學(xué)信息Sele*from同學(xué);Where學(xué)號in;

(Sele學(xué)號from成果)

例3查詢沒有選修課的同學(xué)信息(此語句只能嵌套,不能聯(lián)接)Sele*from同學(xué);Where學(xué)號notin;

(Sele學(xué)號from成果)

例10按課程號的升序顯示成果,對于課程號相同的按成果降序

VF考試詳解

select*from成果;

orderby課程號,成果DESC

例11:按成果降序查看01課程的同學(xué)成果select*;from成果;

where課程號=01;orderby成果desc統(tǒng)計函數(shù)

count(*)統(tǒng)計記錄個數(shù)count括號內(nèi)可用*,可用字段,其他函數(shù)只能是字段。ma*(字段)計算指定字段的最大值min(字段)最小值sum(字段)總和avg(字段)平均值

例12統(tǒng)計同學(xué)表中男同學(xué)的人數(shù)selectcount(*)as男同學(xué)人數(shù);from同學(xué);

where性別=.t.

例13選修01課程的最高分

selectma*(成果)as課程最高分;from成果;

where課程號=01分組函數(shù)

說明:假如在考題中涉及“每”字的查詢,一般需要分組,分組用groupby,一般查找每門課,每個同學(xué),每個倉庫均運用分組,限定分組條件用having,having跟在groupby后面,不能單獨運用。

例:查詢每門課的最高分

select課程號,ma*(成果)as最高分;from成果;

groupby課程號

例:查詢每個同學(xué)的總分和平均分

select姓名,sum(成果)as總分,avg(成果)as平均分;from同學(xué),成果;

where同學(xué).學(xué)號=成果.學(xué)號;groupby成果.學(xué)號Having的運用

說明:在where短語中不能運用統(tǒng)計函數(shù)的條件,在having中可以運用例:查詢平均成果在80分以上的同學(xué)姓名及成果

select姓名,sum(成果)as總分,avg(成果)as平均分;from同學(xué),成果;

where同學(xué).學(xué)號=成果.學(xué)號and平均分=80;groupby成果.學(xué)號

以上錯誤,由于where中只能是實際字段

改為where同學(xué).學(xué)號=成果.學(xué)號andavg(成果)=80也是錯誤,由于where不能用統(tǒng)計函數(shù)正確語句如下:

select姓名,sum(成果)as總分,avg(成果)as平均分;from同學(xué),成果;

VF考試詳解

where同學(xué).學(xué)號=成果.學(xué)號;groupby成果.學(xué)號;havingavg(成果)=80空值的運用

說明:在VF中.null.和G型,及M型不能徑直涌現(xiàn)在表達式中。例:查詢誕生日期為.null.的同學(xué)信息.select*;from同學(xué);

where誕生日期=.null.〔錯語)用where誕生日期isnull1運用謂詞

e*ists判斷select語句查詢結(jié)果是否存在.

note*ists判斷select語句是否沒有結(jié)果.注e*ists不是e*it.

例:查詢沒有選修任何課的同學(xué)任息.

select*from同學(xué)wherenote*ists;

(select*from成果where同學(xué).學(xué)號=成果.學(xué)號)2運用量詞前面已有in/notin有some/any/all

如:80all(20,50,80).f.80是否大于all對應(yīng)的全部80any(20,50,80).t.大于一部分.any和some相同.

例:查詢成果大于張海所選課程的同學(xué)姓名及成果.分兩步:1查詢張海的成果sele成果from同學(xué),成果;

where同學(xué).學(xué)號=成果.學(xué)號and姓名=張海

2查詢成果大于張海的同學(xué)姓名,成果.(假如第一步查到張海有一份成果,那么嵌套徑直用即可)

select姓名,成果from同學(xué),成果;

where同學(xué).學(xué)號=成果.學(xué)號and成果;(sele成果from同學(xué),成果;

where同學(xué).學(xué)號=成果.學(xué)號and姓名=張海)

3查詢成果大于張海的姓名,成果(假如第一步查到張海有多份成果,那么嵌套后加all或any)select姓名,成果from同學(xué),成果;

where同學(xué).學(xué)號=成果.學(xué)號and成果all;(sele成果from同學(xué),成果;

where同學(xué).學(xué)號=成果.學(xué)號and姓名=張海)3超聯(lián)接

innerjoin內(nèi)聯(lián)接

leftjoin左聯(lián)接*=rightjoin右聯(lián)接=*fulljoin全聯(lián)接

前面select姓名,成果from同學(xué),成果;where同學(xué).學(xué)號=成果.學(xué)號(簡約聯(lián)接)運用內(nèi)聯(lián):select字段;

from左表innerjoin右表on聯(lián)接條件where條件.

VF考試詳解

selct姓名,成果;

from同學(xué)innerjoin成果on同學(xué).學(xué)號=成果.學(xué)號3.2左聯(lián)接:from左表leftjoin右表on條件說明:不光滿意條件,左表中不滿意條件的也涌現(xiàn)在結(jié)果中3.3右聯(lián)接from左表rightjoin右表on條件

說明:除了公共的以外,右表中不滿意條件的記錄涌現(xiàn)在結(jié)果中。3.4全聯(lián)接from左表alljoin右表on條件說明:左聯(lián)接和右聯(lián)接的并集.

4集合并運算(unoin)兩個結(jié)果有相同的類型及范圍.〔考點,填空〕5SQLR的非常選項.

5.1有關(guān)topN(percent):只提取查詢結(jié)果最前面N條或N%記錄topnpercent表示n%條.topn表示前面n條.

留意:運用top需要運用orderby例如:顯示成果在前三名的成果信息selecttop3*;from成果;

orderby成果desc

例如:顯示成果在后25%的成果信息selecttop25percent*;from成果;

orderby成果5.2查詢?nèi)ハ?/p>

5.2.1intodbf/table表名

說明:將查詢結(jié)果保存在to指定的表中.(可省略擴展名)例:將成果在前兩名同學(xué)信息保存在SS表.

查詢語句后加intodbfss/intotalbesstoss.dbf(錯誤)

機試考試用SQL語句將一個表復(fù)制到另一個表用此語句,如將同學(xué)表復(fù)制student表

Sele*from同學(xué)intotablestudent/Sele*from同學(xué)intodbfstudent5.2.2intocursor臨時表名(歷屆考點)

說明:臨時表沒有詳細文件,它的數(shù)據(jù)只讀,表關(guān)閉數(shù)據(jù)丟失.5.2.3intoarray數(shù)組名

說明:多維數(shù)組,一條記錄對應(yīng)一行.

intoarray**將查詢結(jié)果復(fù)制到數(shù)組**listmemolike**顯示**數(shù)組

5.2.4tofile文件名:將結(jié)果輸出到指定文本文件.

tofiled:\**在d:有創(chuàng)建**.t*t文件,里面是查詢結(jié)果.5.2.5toprinter將結(jié)果徑直輸出打印機

5.3操作功能(機試筆試必考)

SQL操作:插入,更新,刪除1插入

格式1:insertinto表名[字段名1]values[表達式1]

在insertinto指定表中插入字段內(nèi)容,表達式1依次插入字段1,順次不能顛倒.如:inserinto同學(xué)(誕生日期)values(02/03/80)錯誤,類型不統(tǒng)一.例1:在同學(xué)表中插入記錄

學(xué)號:96011姓名:李靈性別:女誕生日期:1980.4.23

VF考試詳解

insertinto同學(xué)(學(xué)號,姓名,性別,誕生日期)values(96011,李靈,.f.,{^1980/04/23})

格式2:insertinto表名fromarray數(shù)組名功能:將數(shù)組中的記錄追加到表中.

機試考題類型如下:用SQL語句將查詢結(jié)果放入一個已存在的空表中1執(zhí)行如下指令

Use同學(xué)打開同學(xué)表

Copystruto*s將同學(xué)表結(jié)構(gòu)復(fù)制到*s表〔*s是空表〕2查找全部女生信息放到*s表中Sele*from同學(xué);Where性別=.f.;

Intotable*s(此語句錯誤,假如*S中不存在,可運用此語句)正確語句如下

Sele*from同學(xué);Where性別=.f.;

Intoarraytt先將查找結(jié)果放入tt數(shù)組中

Insetinto*sfromarraytt再將tt數(shù)組中的查找結(jié)果插入到*s表中2更新

update表名set字段名=表達式where條件update等同replaceallwith替換全部例:給選修01課程的同學(xué)成果+5分.

update成果set成果=成果+5where課程號=01update語句缺省where語句代表替換全部3刪除記錄:只是規(guī)律刪除

deletefrom表名where條件例:刪除同學(xué)表中姓張的同學(xué).

deletefrom同學(xué)where姓名like張%

5.4定義功能(筆試考點)

1表的定義;

createtable/dbf[free]表名(字段名類型(寬度))[null]

[check字段有效性errorc型提示][default默認值]

[primarykey/unique]

說明:創(chuàng)建表并設(shè)定字段名,類型,寬度,free表示建自由表null表示字段允許空值.

check設(shè)置字段有效性規(guī)章errorC型錯提示.primarykey建主索引,主索引與字段同名unique建唯一索引

例:建同學(xué)*數(shù)據(jù)庫,并建如下表:1老師表*(老師號c2,老師名C8)

createtable老師*(老師號c(2),老師名c(8))2同學(xué)*表(學(xué)號C8,姓名c8,性別L,誕生日期D,班級c2)說明:創(chuàng)建基于學(xué)號的主索引.誕生日期允許空值設(shè)置性別默認值.f.設(shè)置學(xué)號默認值96001

VF考試詳解

設(shè)置班級默認01

設(shè)置班級有效性規(guī)章:允許在01-10之間,否那么提示班級無效createtable同學(xué)*(學(xué)號c(8)primarykeydefault96001,;姓名c(8),性別Ldefault.f.,;

班級c(2)default01checkbetween(班級,01,10)error班級無效,;誕生日期dnull)

練習(xí):建成果*表(學(xué)號c8,課程號c2,成果N(6,2))學(xué)號默認96001課程號默認01

設(shè)置成果字段有效性為0-100,否那么提示成果無效2建表格式2

createtable/dbf表名

primarykey索引表達式tag索引名unique表達式tag索引名foreignkey表達式tag索引名reference主表名tag索引名

check記錄有效性規(guī)章error出錯提示說明:primarykey創(chuàng)建基于表達式的主索引unique唯一foreignkey一般

reference同時與主表建立m:1的聯(lián)系例1:1建庫2建表

A同學(xué)Y(學(xué)號c8,姓名c8,性別L,班級c2,誕生日期D)基于學(xué)號建主索引*h.

設(shè)置學(xué)號的字段有效性規(guī)章在96001-96050之間,否那么提示學(xué)號無效設(shè)置姓名的默認值為張海

B成果Y(學(xué)號c8,課程號c2,成果n(6,2)

基于學(xué)號建一般索引*h,并于同學(xué)表建m:1聯(lián)系操作1建庫Y

Acreatetable同學(xué)Y;

(學(xué)號c(8)checkbetween(學(xué)號,96001,96050)error學(xué)號無效,;姓名c(8)default張海,;性別L,班級c(2),誕生日期d,;primarykey學(xué)號tag*h)Bcreatetable成果Y;

(學(xué)號c(8),課程號c(2),成果n(6,2),;

foreignkey學(xué)號tag*h1references同學(xué)Y)2表的修改

格式1:altertable表名add/alter字段名add添加字段alter修改字段例1:同學(xué)表添加字段民族L.

altertable同學(xué)Yadd民族L

2將成果y表的學(xué)號設(shè)為主索引,并將學(xué)號寬度改為8altertable成果yalter學(xué)號c(5)primarykey格式2:altertable表名alter[column]字段名

VF考試詳解

[null]

[setdefault默認值]

[setcheck有效性error錯誤提示]dropdefault*刪除默認值dropcheck*刪除有效性例:刪除同學(xué)表學(xué)號有效性

altertable同學(xué)yalter學(xué)號dropcheck刪除同學(xué)表姓名的默認值

altertable同學(xué)yalter姓名dropdefault設(shè)置同學(xué)表的性別默認值為.t.

Altertable同學(xué)yalter性別setdefault.t.格式3:altertable表名alter字段drop[column]字段*刪除字段

setcheck記錄有效性error錯誤提示dropcheck

addprimarykey表達式tag索引名addunique表達式tag索引名

addforeignkey表達式tag索引名reference主表名dropprimarykey

dropuniquetag索引名

renamecolumn原字段名to新字段名*將字段更名例:1刪除同學(xué)表民族字段

altertable同學(xué)ydrop民族2將同學(xué)y表中的姓名字段改為同學(xué)名

altertable同學(xué)yrenamecolumn姓名to同學(xué)名3表的刪除:

droptable表名徑直從磁盤上刪除表

removetable表名只是從庫中刪除,變?yōu)樽杂杀?視圖

它是一種虛擬表,它是對用戶運用的數(shù)據(jù)的映射.視圖定義:

createview視圖名;asSQL語句功能:用SQL語句創(chuàng)建視圖

例:創(chuàng)建選修01課程的同學(xué)姓名,成果的視圖,并命名為V1.createviewv1;asselect姓名,成果;from同學(xué),成果;

where同學(xué).學(xué)號=成果.學(xué)號and課程號=01

說明:視圖是一種虛表,它只存在于數(shù)據(jù)庫,創(chuàng)建視圖打開數(shù)據(jù)庫,

視圖中不存儲數(shù)據(jù),所為稱為虛表,它的數(shù)據(jù)來源于基表(SQL所涉及的表).說明2:視圖也是表,所以像表一樣運用視圖.usev1list

4.2視圖的刪除dropview視圖名

說明:刪除視圖,先將視圖所涉及的數(shù)據(jù)庫設(shè)為當前.4.3視圖說明:視圖數(shù)據(jù)可更新,但更新取決于基表.

VF考試詳解

視圖運用同表相同,但更新,刪除,插入受限制.

第六章:查詢與視圖

查詢定義:查詢是一種事先定義好的select語句,以擴展名qpr文件保存在磁盤上,是文本文件.查詢與視圖的區(qū)分:

視圖是一種表,而查詢是一個select語句.視圖可更新,而查詢數(shù)據(jù)不可更新.

查詢以擴展名qpr的文件保存在磁盤上,而視圖只存在于數(shù)據(jù)庫,在磁盤上沒有文件.2查詢新建:

2.1createquery查詢名.2.2文件新建選查詢.

2.3打開任意項目管理器數(shù)據(jù)選查詢點新建.3查詢設(shè)計器選項

新建查詢涌現(xiàn)添加表對話框,選中表添加相當于sQL語句中from后的表(也可在查詢設(shè)計器空白處右擊執(zhí)行添加表)

字段選項:相當于select后字段.里面有函數(shù)和表達式項添加除聯(lián)接表以外的字段如sumavg,ma*

聯(lián)接:相當于where后表的聯(lián)接條件,默認join內(nèi)聯(lián),一般由系統(tǒng)完成.篩選:相當于where后的其它條件likebetween=isnull排序依據(jù):相當于orderby分組依據(jù):相當于groupby

雜項:相當于去掉重復(fù)值distinct和顯示前幾條topn4運行查詢:

4.1工具欄上的!號

4.2查詢菜單下運行查詢指令.

4.3do查詢名.qpr(擴展名不能省略)4.4ctrl+Q

考試要求用sQL建查詢,同學(xué)可用查詢設(shè)計器做題,執(zhí)行查詢菜單下查看sql指令,將查詢框中sql語句復(fù)制,在指令框粘貼.6查詢設(shè)計器的局限性;

6.1繁復(fù)的如內(nèi)外嵌套查詢無法完成,可用SQL完成.

6.2查詢運行do查詢名.qpr不能省略,其它程序.prg可省略.7查詢?nèi)ハ?查詢菜單下查詢?nèi)ハ蛑噶?相當于sql中的into/to語句

查詢?nèi)ハ蛑械膱D形無法顯示,取決于硬件.6.2視圖(不打開庫,視圖無法建立)

視圖隨數(shù)據(jù)庫的打開而打開,新建視圖無法完成,需要先打開數(shù)據(jù)庫,再執(zhí)行文件下的新建視圖.視圖設(shè)計器與查詢的創(chuàng)建方法完全相同

2.4:程序

一.定義:

現(xiàn)實生活中概念:是完成某項工作的步驟的集合.

VF中概念:是完成某項功能的指令集合,VF按指令的先后順次保存到名為.prg的文件,此文件即程序,執(zhí)行程序,系統(tǒng)會自動執(zhí)行.1程序文件的新建:1.1新建程序.

VF考試詳解

1.2任意項目管理器代碼程序新建.1.3modifycommand程序文件名.2程序運行.

編輯程序,先保存,保存后運行:

運行用:do程序文件名(擴展名可省略)工具欄上!號.3簡約的輸入和輸出.3.1accept

格式:accept[c型提示信息]to內(nèi)存變量

功能:接收用戶從鍵盤輸入的字符型數(shù)據(jù)并保存在內(nèi)存變量中.如:指令框輸入:accetp請輸入姓名to*1屏幕提示:請輸入姓名:張海?*1顯示張海例:編寫程序p1,完成如下操作:

從鍵盤上輸入同學(xué)姓名,顯示此同學(xué)的信息.Clear

Accept“請輸入姓名”to*

Sele*from同學(xué)where姓名=*;ToscreenClearall3.2input

格式:input[c型變量]to內(nèi)存變量

功能:接收用戶從鍵盤上輸入的數(shù)據(jù)(主要是表達式)保存內(nèi)存到變量如:指令框輸入:input請輸入數(shù)據(jù)to*提示請輸入數(shù)據(jù):20+30

?*50如2:a1=李海

input請輸入to*

提示請輸入:a1+濤(徑直輸入李海濤錯誤)?*李海濤

例:設(shè)計程序p2,請輸入三個數(shù),顯示最大數(shù)和最小數(shù).clear

input請輸入第一個數(shù)ton1input請輸入第二個數(shù)ton2input請輸入第三個數(shù)ton3

?三個數(shù)的最大值為:,ma*(n1,n2,n3)?三個數(shù)的最小值為:,min(n1,n2,n3)clearall

例:設(shè)計程序p3,輸入圓半徑,求圓面積.settalkoff

input請輸入半徑tors=pi()*r*rd=2*pi()*r?圓面積為=”,s?”圓周長為=”,dsettalkon3.3wait

VF考試詳解

格式:wait[c型提示]to內(nèi)存變量名[windows][timeout秒]功能:用戶接收從鍵盤上輸入的字符保存到to的內(nèi)存變量中.wait單獨wait表示按任意鍵繼續(xù).如:wait按任意鍵退出

wait此控件只讀windows

wait5秒后自動退出windowstimeout57.2程序的基本結(jié)構(gòu)

程序按順次特點分:順次,選擇,循環(huán).順次程序:按指令先后執(zhí)行.選擇:有條件執(zhí)行.

循環(huán):重復(fù)執(zhí)行相應(yīng)語句.1選擇語句:

格式:if條件語句1else語句2endif

說明:if表示選擇開始,endif表示結(jié)束,else表示否那么.if條件成立,執(zhí)行語句1,否那么執(zhí)行語句2.

例:設(shè)計程序p4,從鍵盤輸入姓名,假如同學(xué)中有對應(yīng)的同學(xué),輸入記錄,否那么提示查無此人.clear

accept請輸入姓名to*

select*from同學(xué)where姓名=*1intocursortempif姓名=*

listfor姓名=*else

?查無此人endif

clearall

例2:設(shè)計程序,從鍵盤輸入成果,然后顯示相應(yīng)等級.n60不及格70n=60及格80n=70良n=80優(yōu)程序如下:clear

input請輸入成果tonifn60?不及格else

ifn70?及格elseifn80?良else

VF考試詳解

?優(yōu)endifendifendif

clearall判斷2:docase

case條件1語句1

case條件2語句2other語句nendcase

說明:逐一判斷Case條件,假如成立,執(zhí)行case對應(yīng)語句,

假如不成立,依次判斷case條件,假如case沒有對應(yīng)語句,那么無條件執(zhí)行other對應(yīng)的語句.

例:設(shè)計程序P6,通過鍵盤輸入*值,計算函數(shù)結(jié)果.*0y=23-2010*=0y=*%520*=10y=2*3+**100y=*-100其它othery=0程序如下:clear

input請輸入*值to*docasecase*0y=23-20case*10y=*%5

case*20y=2*3+*

case*100y=*-100othery=0

endcase?y

wait按任意鍵繼續(xù)clear

二.循環(huán)語句:重復(fù)執(zhí)行的語句稱為循環(huán).如:a=1

dowhilea=4a=a+1enddo

VF考試詳解

循環(huán)條件:主要判斷循環(huán)是否繼續(xù).循環(huán)體:重復(fù)執(zhí)行語句.

循環(huán)變量:循環(huán)條件涉及的變量.上述語句中:循環(huán)條件:a=4循環(huán)體:a=a+1循環(huán)變量:a格式:循環(huán)變量初始化.dowhile循環(huán)條件.循環(huán)體.其它.enddo.

執(zhí)行過程:首先變量初始化,再判斷條件,假如條件成立,執(zhí)行循環(huán)體,直到條件為假,退出enddo語句.

loop跳過loop到enddo之間的語句,直到返回dowhile繼續(xù)執(zhí)行.e*it不管循環(huán)是否成立,退出循環(huán).例:寫出以下程序的結(jié)果.*=1s=0

dowhile*=41=42=43=44=454

*=*+1*=1+1*=2+1*=3+1*=4+1跳出循環(huán)s=s+*s=0+2s=2+3s=5+4s=9+5enddo?s14?*5

例:寫出以下程序的結(jié)果.*=1s=0

dowhile*=41=42=43=44=454*=*+1*=1+1*=2+1*=3+1*=4+1跳出循環(huán)

if*%2=0if*%2=0成立3%2=0不成立4%2=0成立5%2不成立loop執(zhí)行l(wèi)oop執(zhí)行l(wèi)oopendif

s=s+*跳過s=s+*s=0+3=3跳過s=s+*s=3+5=8enddo

?s8?*5

例2:設(shè)計程序p7,求1-100和.clears=0i=1

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論