VFP表的基本操作方法2_第1頁
VFP表的基本操作方法2_第2頁
VFP表的基本操作方法2_第3頁
VFP表的基本操作方法2_第4頁
VFP表的基本操作方法2_第5頁
已閱讀5頁,還剩68頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

第2章續(xù)索引與查詢索引文件有二種,單索引文件和復(fù)合索引文件。VFP提供了四種類型索引文件:主索引、候選索引、唯一索引和普通索引。

建立方式:1、使用表設(shè)計(jì)器2、命令命令格式:

INDEXON<索引關(guān)鍵字>

TAG

<索引標(biāo)記名>[FOR<條件>][ASCENDING]

[DESCENDING][CANDIDATE]功能:對(duì)當(dāng)前表中滿足條件的記錄,建立索引文件和增加索引標(biāo)識(shí)索引確定主控索引格式:setorderto[<數(shù)值表達(dá)式>|<單索引文件名>|[TAG]<索引標(biāo)識(shí)>]<數(shù)值表達(dá)式>表示已翻開索引的序號(hào)。<單索引文件名>指定該單索引文件為主控索引<索引標(biāo)識(shí)>指定索引表示為主控索引setorderto或setorderto命令取消主控索引文件及主控索引,表達(dá)式按物理順序輸出。索引的使用索引的更新1、自動(dòng)更新2、重新索引格式:REINDEX功能:重建當(dāng)前翻開的所有索引文件。索引的刪除:

DELETETAGALL

<索引標(biāo)識(shí)1>[<索引標(biāo)識(shí)2>

]…查詢命令直接查詢也叫順序查詢,是按照記錄的物理順序逐個(gè)比較,逐個(gè)查詢。格式:LOCATE[<范圍>][FOR<條件>][WHILE<條件>]功能:按順序搜索表,從而找到滿足指定邏輯表達(dá)式的第一個(gè)記錄。格式:CONTINUE

功能:它使LOCATE命令從當(dāng)前記錄開始繼續(xù)查找下一條滿足條件的記錄。LOCATE命令說明:(1)被搜索的表不必有索引。(2)假設(shè)LOCATE發(fā)現(xiàn)一個(gè)滿足條件的記錄,就將記錄指針定位在該記錄上??梢允褂肦ECNO()返回該記錄的記錄號(hào),同時(shí)FOUND()函數(shù)返回“真〞,EOF()函數(shù)返回“假〞。如果沒有找到,那么將記錄指針指向范圍的最后一個(gè)記錄,同時(shí)將FOUND()函數(shù)值置為“假〞,屏幕上顯示“已到定位范圍末尾〞。(3)如果執(zhí)行SETEXCATOFF命令后,再用LOCATE命令查找字符型數(shù)據(jù)時(shí),不要求字符型數(shù)據(jù)精確匹配。(4)該命令只能查找第一條滿足條件的記錄。(5)假設(shè)表中有多條滿足條件的記錄,當(dāng)已經(jīng)找到一條滿足條件的記錄后,還想繼續(xù)查找后面滿足條件的記錄時(shí),可以使用CONTINUE命令繼續(xù)向后查找滿足條件的記錄索引查詢命令格式:FIND<字符型常量>/<數(shù)值型常量>格式:SEEK<表達(dá)式>功能:在翻開的索引文件中快速查找與<表達(dá)式>相匹配的第1條記錄。數(shù)據(jù)工作期工作區(qū)1〕工作區(qū)號(hào):1---327672〕別名:除了使用1-10編號(hào)外,還可以依次用A-J字母來表示,稱為別名。3〕選擇工作區(qū):格式:select[<工作區(qū)號(hào)>|<別名>功能:選定某個(gè)工作區(qū),用于翻開一個(gè)表一、視圖文件的建立1.菜單操作2.命令操作命令格式:Createview視圖文件名二、視圖文件的翻開視圖文件多表操作概述迄今所講述的對(duì)表的操作都是在一個(gè)工作區(qū)進(jìn)行的,每個(gè)工作區(qū)最多只能翻開一個(gè)表文件,用USE命令翻開一個(gè)新表,同時(shí)也就關(guān)閉了前面已翻開的表。在實(shí)際應(yīng)用中,常常需要同時(shí)翻開多個(gè)表文件,以便對(duì)多個(gè)表文件的數(shù)據(jù)進(jìn)行操作。為了解決這一問題,VisualFoxPro引入了工作區(qū)和關(guān)聯(lián)的概念。一、工作區(qū)1、工作區(qū)是一個(gè)編號(hào)區(qū)域,它標(biāo)示一個(gè)已翻開的表。表翻開后才能進(jìn)行操作,實(shí)際上翻開表就是把它從磁盤調(diào)入內(nèi)存的某一個(gè)工作區(qū)。VFP6提供了多達(dá)32767個(gè)工作區(qū),每個(gè)工作區(qū)都有一個(gè)工作區(qū)號(hào),分別用1~32767表示,其工作區(qū)1~10還分別對(duì)應(yīng)有別名A~J。說明:(1)在任意時(shí)刻,只有一個(gè)工作區(qū)是當(dāng)前工作區(qū),用戶只能在當(dāng)前工作區(qū)對(duì)翻開的當(dāng)前表進(jìn)行操作。(2)每一個(gè)工作區(qū)都可以并且只能翻開一個(gè)表文件。(3)同一個(gè)表文件不允許同時(shí)在多個(gè)工作區(qū)翻開,但在其它工作區(qū)中被關(guān)閉之后,可以在任意一個(gè)工作區(qū)中被翻開。(工作區(qū)就象教室一樣,表就班級(jí)〕(4)各工作區(qū)中翻開的表彼此相互獨(dú)立〔指針不受響〕。2、選擇工作區(qū)命令格式:SELECT〈工作區(qū)號(hào)〉/〈別名〉功能:選定某個(gè)工作區(qū),用于翻開一個(gè)表。例:在1號(hào)和2號(hào)工作區(qū)內(nèi)分別翻開SB.DBF和SP.DBF表文件。SELECT1&&也可以用SELECTAUSESBLISTSELECTB&&也可以用SELECT2USESPLIST說明:〔1〕用SELECT命令選定的工作區(qū)稱為當(dāng)前工作區(qū),VFP默認(rèn)1號(hào)工作區(qū)為當(dāng)前工作區(qū)?!?〕函數(shù)SELECT〔〕能夠返回當(dāng)前工作區(qū)的區(qū)號(hào)?!?〕命令“SELECT0〞表示選定當(dāng)前尚未使用的最小號(hào)工作區(qū)。〔4〕引用非當(dāng)前工作區(qū)表的字段必須冠以別名,格式為:別名.字段。例:CLOSEALL&&關(guān)閉所有翻開的表?SELECT〔〕&&顯示:1,1號(hào)工作區(qū)為默認(rèn)工作區(qū)USESBlistuseSPlist?SELECT()&&顯示:1,自動(dòng)關(guān)閉SB表SELECT0?SELECT()&&顯示:2,尚未使用的最小工作區(qū)號(hào)是2通過用工作區(qū)〔或者表〕別名指定欲訪問的工作區(qū),所得到的字段值為指定工作區(qū)翻開的表當(dāng)前記錄的字段值。【例】在1號(hào)和2號(hào)工作區(qū)翻開SB.DBF和BMDM.DBF,在1號(hào)工作區(qū)內(nèi)查看當(dāng)前記錄的編號(hào)、名稱、部門名稱等字段內(nèi)容。SELECTAUSESB &&在一號(hào)工作區(qū)中翻開SB表〔21〕SELECTBUSEBMDM &&在二號(hào)工作區(qū)中翻開BMDMGO3&&部門代碼為21SELECTA &&選擇1號(hào)工作區(qū)為當(dāng)前工作區(qū)DISPLAY編號(hào),名稱,BMDM.名稱二、關(guān)聯(lián)1、關(guān)聯(lián)的概述所謂表文件的關(guān)聯(lián)是把當(dāng)前工作區(qū)中翻開的表與另一個(gè)工作區(qū)中翻開的表進(jìn)行邏輯連接,而不生成新的表。當(dāng)前工作區(qū)的表和另一工作區(qū)中的翻開表建立關(guān)聯(lián)后,當(dāng)前工作區(qū)中的表的記錄指針移動(dòng)時(shí),被關(guān)聯(lián)工作區(qū)的表記錄指針也將自動(dòng)相應(yīng)移動(dòng),以實(shí)現(xiàn)對(duì)多個(gè)表的同時(shí)操作。在多個(gè)表中,必須有一個(gè)表為關(guān)聯(lián)表,此表常稱為父表,而其他的表那么稱為被關(guān)聯(lián)表,常稱為子表。在兩個(gè)表之間建立關(guān)聯(lián),必須以某一個(gè)字段為標(biāo)準(zhǔn),該字段稱為關(guān)鍵字段。表文件的關(guān)聯(lián)可分為一對(duì)一關(guān)聯(lián)、一對(duì)多關(guān)聯(lián)和多對(duì)一關(guān)聯(lián)。學(xué)號(hào)姓名班級(jí)年齡035821李三03物管20025960張四02電商21045524王五04統(tǒng)計(jì)18學(xué)號(hào)CET4成績035821660259608004552458一對(duì)一關(guān)聯(lián)學(xué)生根本情況表父表學(xué)生成績表

子表編號(hào)名稱…部門…016-1車床21016-2車床21037-2磨床22038-1鉆床23代碼名稱21一車間22二車間23三車間多對(duì)一和一對(duì)多關(guān)聯(lián)多對(duì)一關(guān)聯(lián)父表子表子表父表一對(duì)多關(guān)聯(lián)【說明】建立關(guān)聯(lián)時(shí),關(guān)鍵字必須是兩個(gè)表文件共有字段,且子表已按關(guān)鍵字段建立了索引文件,并已指定關(guān)鍵字段為主控索引。2、建立關(guān)聯(lián)步驟:〔1〕翻開數(shù)據(jù)工作期窗口〔2〕翻開需要建立關(guān)聯(lián)的表〔3〕為子表按關(guān)聯(lián)的關(guān)鍵字建立索引或確定主控索引〔4〕選定父表為當(dāng)前工作區(qū),為一個(gè)或多個(gè)子表建立關(guān)聯(lián)〔5〕說明建立的為一多關(guān)系,缺省時(shí)默認(rèn)為多一關(guān)系下面以教材84頁的例題為例,來建立關(guān)聯(lián):一、關(guān)聯(lián)的概念每個(gè)翻開的表都有一個(gè)記錄指針,用以指示當(dāng)前記錄。關(guān)聯(lián)就是令不同工作區(qū)的記錄指針建立一種臨時(shí)的聯(lián)動(dòng)關(guān)系,使一個(gè)表的記錄指針移動(dòng)是另一個(gè)表的記錄指針能隨之移動(dòng)。1.關(guān)聯(lián)條件建立關(guān)聯(lián)的兩個(gè)表,總有一個(gè)是父表,一個(gè)為子表。父表記錄指針的移動(dòng),會(huì)使子表記錄指針自動(dòng)移到滿足關(guān)聯(lián)條件的記錄上。表的關(guān)聯(lián)關(guān)聯(lián)條件通常要求比較不同表的兩個(gè)字段表達(dá)式值是否相等。要在關(guān)聯(lián)命令中指明這兩個(gè)字段表達(dá)式外,還必須先為子表的字段表達(dá)式建立索引。2.多一關(guān)系3.一多關(guān)系二、在數(shù)據(jù)工作期窗口建立關(guān)聯(lián)查詢命令統(tǒng)計(jì)命令---計(jì)數(shù)命令格式:COUNT[<范圍>][FOR<條件>][WHILE<條件>][TO<內(nèi)存變量>]

功能:統(tǒng)計(jì)當(dāng)前表中指定范圍內(nèi)滿足條件的記錄個(gè)數(shù),并存于<內(nèi)存變量>中。參數(shù)描述:<范圍>、<條件>子句的用法和前面所有命令的用法是一樣的。假設(shè)使用<范圍>、<條件>子句,可統(tǒng)計(jì)出指定<范圍>內(nèi)滿足<條件>的記錄個(gè)數(shù),否那么統(tǒng)計(jì)表中的記錄的總數(shù)。對(duì)COUNT命令,默認(rèn)的范圍是ALL。四、統(tǒng)計(jì)命令1、統(tǒng)計(jì)記錄數(shù)【命令】COUNT[<范圍>][FOR<表達(dá)式>][WHILE<表達(dá)式>][TO<變量>]【功能】統(tǒng)計(jì)當(dāng)前表中指定范圍內(nèi)滿足條件的記錄個(gè)數(shù)?!菊f明】除非指定了<范圍>或FOR/WHILE<條件>,否那么將計(jì)算所有記錄個(gè)數(shù),如選擇了TO<變量>,那么可將計(jì)算結(jié)果保存在內(nèi)存變量中,否那么統(tǒng)計(jì)結(jié)果只在屏幕上顯示?!纠?-1】統(tǒng)計(jì)學(xué)生表中男同學(xué)記錄個(gè)數(shù)和表記錄總數(shù)。

USESTUDENT

COUNTFOR

性別="男"TOA

COUNTTOB2、求和【命令】SUM[<表達(dá)式表>][<范圍>][FOR<條件>][WHILE<條件>][TO<內(nèi)存變量表>]【功能】對(duì)指定范圍內(nèi)、滿足條件的記錄按指定的各個(gè)表達(dá)式分別求和。【說明】〔1〕缺省范圍、條件表示全部記錄?!?〕缺省數(shù)值型表達(dá)式表,表示對(duì)表中所有數(shù)值型字段求和?!?〕數(shù)值型表達(dá)式表中表達(dá)式的個(gè)數(shù)應(yīng)與內(nèi)存變量的個(gè)數(shù)一致?!纠?-2】試求學(xué)生表中各同學(xué)的語文總成績,然后對(duì)所有數(shù)值型字段進(jìn)行求和。

USESTUDENT

SUM

語文

TOYUWEN

sumTOYW,SX,YY,ZF3、求平均值【命令】AVERAGE[<表達(dá)式表>][<范圍>][FOR<表達(dá)式>][WHILE<表達(dá)式>][TO<變量表>]【功能】對(duì)當(dāng)前表文件中指定范圍內(nèi)滿足條件的記錄,按指定的數(shù)值型字段計(jì)算平均值?!菊f明】〔1〕缺省范圍、條件表示全部記錄?!?〕缺省數(shù)值型表達(dá)式表,表示對(duì)當(dāng)前表中所有數(shù)值型字段求平均值;數(shù)值型表達(dá)式表中表達(dá)式的個(gè)數(shù)應(yīng)與內(nèi)存變量的個(gè)數(shù)一致?!纠?-3】試求學(xué)生表中同學(xué)們的語文平均成績。

USESTUDENT

Average語文

TOYW_a4、綜合計(jì)算【命令】CALCULATE<表達(dá)式表>[<范圍>][FOR<表達(dá)式>][WHILE<表達(dá)式>][TO<變量表>]【功能】對(duì)當(dāng)前表文件中指定范圍內(nèi)滿足條件的記錄進(jìn)行指定的計(jì)算工作?!菊f明】<表達(dá)式表>可以是書上92頁表3、3中函數(shù)的任意組合?!纠?-4】試求學(xué)生表中同學(xué)們語文成績的最大值。

USESTUDENT

CALCULATEmax(語文)

TOmax_yw5、分類匯總【命令】TOTALTO<匯總文件名>ON<關(guān)鍵字段>[FIELDS<字段名表>][<范圍>][FOR<表達(dá)式>]【功能】按關(guān)鍵字段對(duì)當(dāng)前表文件的數(shù)值型字段進(jìn)行分類匯總,形成一個(gè)新的表文件?!菊f明】(1)當(dāng)前表必須在關(guān)鍵字上排序或索引,即當(dāng)前表必須是有序的,否那么不能匯總。(2)匯總命令執(zhí)行后,將生成一個(gè)新的表文件。(3)缺省<字段名表>,那么將所有數(shù)值型字段的值進(jìn)行匯總。(4)對(duì)非數(shù)值型字段,那么把關(guān)鍵字相同的連續(xù)記錄的第一條記錄的字段內(nèi)容送入新表。

【例3-5】對(duì)student表按“性別〞對(duì)“總分〞分類匯總。USESTUDENTINDEXON性別TAGXBTOTALON性別FIELDS總分TOxbfUSExbflist性別,總分五、SELECT-SQL查詢SQL是結(jié)構(gòu)化查詢語言StructuredQueryLanguage的縮寫??梢哉f查詢是SQL語言的重要組成局部,但不是全部,SQL還包含數(shù)據(jù)定義、數(shù)據(jù)操縱和數(shù)據(jù)控制功能等局部。格式:SELECT[ALL/DISTINCT][<字段表達(dá)式>]

FROM<表名>[

WHERE<條件表達(dá)式>]

說明:

ALL:表示選出的記錄中包含重復(fù)記錄DISTINCT:表示選出的記錄中不包含重復(fù)記錄<字段表達(dá)式>:可以是字段名表,也可以包含函數(shù)。FROM<表名>:用于指定查詢的表[WHERE<條件表達(dá)式>]:指定篩選條件SQL查詢查詢命令SQL舉例2〕SELECT*;FROMstudent3〕SELECT學(xué)號(hào),姓名,英語+5AS提分后的英語;FROMstudent;WHERE英語>=1001〕SELECT學(xué)號(hào),姓名;FROMstudent;WHERE總分>=360數(shù)據(jù)庫數(shù)據(jù)庫是表的集合。從VisualFoxPro3.0開始引入了真正意義上的數(shù)據(jù)庫概念,把一個(gè)二維表定義為表,把假設(shè)干個(gè)關(guān)系比較固定的表集中起來放在一個(gè)數(shù)據(jù)庫中管理,在表間建立關(guān)系,設(shè)置屬性和數(shù)據(jù)有效性規(guī)那么使相關(guān)聯(lián)的表協(xié)同工作。數(shù)據(jù)庫文件具有.dbc擴(kuò)展名,其中可以包含一個(gè)或多個(gè)表、關(guān)系、視圖和存儲(chǔ)過程等。一個(gè)VisualFoxPro表或.dbf文件,能夠存在以下兩種狀態(tài)之一:與數(shù)據(jù)庫相關(guān)聯(lián)的數(shù)據(jù)庫表(就象團(tuán)員〕,與數(shù)據(jù)庫不關(guān)聯(lián)的自由表。二者的絕大多數(shù)操作相同且可以相互轉(zhuǎn)換。相比之下,數(shù)據(jù)庫表的優(yōu)點(diǎn)要多一些。當(dāng)一個(gè)表是數(shù)據(jù)庫的一局部時(shí),它就可以具有以下內(nèi)容:●長表名和表中的長字段名●表中字段的標(biāo)題和注釋●默認(rèn)值、輸入掩碼和表中字段格式化●表字段的默認(rèn)控件類●字段級(jí)規(guī)那么和記錄級(jí)規(guī)那么●支持參照完整性的主關(guān)鍵字索引和表間關(guān)系●INSERT、UPDATE或DELETE事件的觸發(fā)器1建立數(shù)據(jù)庫a菜單方式用菜單方式建立數(shù)據(jù)庫的具體步驟如下:〔1〕選擇【文件】∣【新建】出現(xiàn)新建對(duì)話框?!?〕選擇“數(shù)據(jù)庫〞單項(xiàng)選擇按鈕,再單擊“新建文件〞按鈕,出現(xiàn)“創(chuàng)立〞對(duì)話框?!?〕在“創(chuàng)立〞對(duì)話框中輸入文件名。選擇“保存〞按鈕,系統(tǒng)自動(dòng)翻開數(shù)據(jù)庫文件,并且將數(shù)據(jù)庫設(shè)計(jì)器也自動(dòng)翻開。注:一個(gè)表在同一時(shí)間只能屬于一個(gè)數(shù)據(jù)庫。b利用工程管理器建立數(shù)據(jù)庫翻開已建立的工程文件,出現(xiàn)工程管理器窗口,選擇“數(shù)據(jù)〞標(biāo)簽的“數(shù)據(jù)庫〞,然后單擊“新建〞按鈕。出現(xiàn)新建數(shù)據(jù)庫對(duì)話框,單擊“新建數(shù)據(jù)庫〞按鈕,出現(xiàn)“新建〞對(duì)話框,選擇數(shù)據(jù)庫的路徑并輸入數(shù)據(jù)庫名后單擊“保存〞按鈕,完成數(shù)據(jù)庫的建立,并翻開該數(shù)據(jù)庫設(shè)計(jì)器2翻開數(shù)據(jù)庫a菜單方式〔1〕選擇【文件】|【翻開】,出現(xiàn)翻開對(duì)話框?!?〕選擇數(shù)據(jù)庫文件所在的文件夾,將文件類型選擇為“數(shù)據(jù)庫〔.dbc〕〞。〔3〕選擇所要翻開的數(shù)據(jù)庫文件名,單擊“確定〞按鈕。b利用工程管理器翻開數(shù)據(jù)庫翻開已建立的工程文件,出現(xiàn)工程管理器窗口,選擇“數(shù)據(jù)〞標(biāo)簽,選擇要翻開的數(shù)據(jù)庫名,然后單擊“翻開〞按鈕。3關(guān)閉數(shù)據(jù)庫利用工程管理器翻開已建立的工程文件,出現(xiàn)工程管理器窗口,選擇“數(shù)據(jù)〞標(biāo)簽,選擇“數(shù)據(jù)庫〞下面需要關(guān)閉的數(shù)據(jù)庫名,然后單擊“關(guān)閉〞按鈕。在常用工具欄上的當(dāng)前數(shù)據(jù)庫下拉列表框中該數(shù)據(jù)庫名消失,同時(shí)在工程管理器中“關(guān)閉〞按鈕變成“翻開〞按鈕。4刪除數(shù)據(jù)庫翻開已建立的工程文件,出現(xiàn)工程管理器窗口,單擊“數(shù)據(jù)〞標(biāo)簽,選擇要?jiǎng)h除的“數(shù)據(jù)庫〞(不能處于翻開狀態(tài)),然后單擊“移去〞按鈕。出現(xiàn)圖3-4選擇對(duì)話框,假設(shè)選擇“移去〞僅將數(shù)據(jù)庫從工程中移去,假設(shè)選擇“刪除〞將從磁盤上刪除數(shù)據(jù)庫。被刪除的數(shù)據(jù)庫中的表成為自由表。第3章查詢與統(tǒng)計(jì)

六、數(shù)據(jù)查詢與建立視圖6.1.1查詢的設(shè)計(jì)過程在創(chuàng)立查詢時(shí),通??梢宰裱韵铝鶄€(gè)步驟來創(chuàng)立查詢。〔1〕用“查詢向?qū)Ж暬颉安樵冊(cè)O(shè)計(jì)器〞創(chuàng)立查詢?!?〕選擇在查詢結(jié)果中需要的字段?!?〕設(shè)置查詢記錄的條件。〔4〕設(shè)置排序及分組條件來組織查詢結(jié)果?!?〕選擇查詢輸出類別,可以是報(bào)表、表文件、圖表、瀏覽窗口和表文件等等?!?〕運(yùn)行此查詢。6.1數(shù)據(jù)查詢1.利用“查詢向?qū)Ж晞?chuàng)立查詢利用“查詢向?qū)Ж晞?chuàng)立查詢的步驟如下:〔1〕進(jìn)入“查詢向?qū)Ж曔M(jìn)入“查詢向?qū)Ж暱捎孟旅?種方法:①選擇【工具】|【向?qū)А縷【查詢】命令。②選擇【文件】|【新建】命令,進(jìn)入“新建〞對(duì)話框,選擇“查詢〞單項(xiàng)選擇按鈕,單擊“向?qū)Ж暟粹o。③在“工程管理器〞窗口中,選擇“數(shù)據(jù)〞選項(xiàng)卡,選中“查詢〞,單擊“新建〞按鈕,出現(xiàn)“新建查詢〞對(duì)話框,單擊“查詢向?qū)Ж暟粹o?!?〕選擇查詢結(jié)果中需要的字段6.1.2查詢的創(chuàng)立〔3〕設(shè)置查詢條件〔4〕設(shè)置排序字段〔5〕設(shè)置記錄輸出范圍〔6〕保存查詢2.查詢?cè)O(shè)計(jì)器進(jìn)入“查詢?cè)O(shè)計(jì)器〞窗口有二種方法,〔1〕選擇【文件】│【新建】命令,進(jìn)入“新建〞對(duì)話框,選擇“查詢〞單項(xiàng)選擇按鈕,單擊“新建〞按鈕;〔2〕在“工程管理器〞窗口中,選擇“數(shù)據(jù)〞選項(xiàng)卡,選中“查詢〞文件類型,單擊“新建〞按鈕,出現(xiàn)“新建查詢〞對(duì)話框,單擊“新建查詢〞按鈕。3.查詢?cè)O(shè)計(jì)器工具欄“查詢?cè)O(shè)計(jì)器工具欄〞各按鈕的功能如下:按鈕:添加數(shù)據(jù)庫表。按鈕:移去數(shù)據(jù)庫表。按鈕:添加數(shù)據(jù)庫表間的聯(lián)接。按鈕:顯示SQL窗口。按鈕:最大化上局部窗口。按鈕:確定查詢?nèi)ハ颉?.使用查詢?cè)O(shè)計(jì)器創(chuàng)立查詢使用“查詢?cè)O(shè)計(jì)器〞創(chuàng)立前面“查詢向?qū)Ж晞?chuàng)立查詢例子,具體步驟如下:〔1〕進(jìn)入“查詢?cè)O(shè)計(jì)器〞窗口,添加stud表,如下圖?!?〕選擇查詢需要的字段〔3〕設(shè)置查詢條件〔4〕保存查詢1.查詢的運(yùn)行運(yùn)行查詢的方法有以下5種:①在“查詢?cè)O(shè)計(jì)器〞窗口中,選擇【查詢】|【運(yùn)行查詢】命令。②在“查詢?cè)O(shè)計(jì)器〞窗口中,右擊“查詢?cè)O(shè)計(jì)器〞窗口,選擇快捷菜單中的【運(yùn)行查詢】命令。③選擇【程序】|【運(yùn)行】命令。彈出“運(yùn)行〞對(duì)話框,在對(duì)話框中,選擇所要運(yùn)行的查詢文件,單擊“運(yùn)行〞按鈕。④在“工程管理器〞窗口中,選擇要運(yùn)行的查詢文件,單擊右邊的“運(yùn)行〞按鈕。⑤在“命令〞窗口中,鍵入DO<查詢文件名>。例如,DO查詢1.qpr。6.1.3查詢的運(yùn)行與修改2.查詢的修改修改可以用以下3種方法:①在“工程管理器〞窗口中,選擇要修改的查詢文件,單擊右邊的“修改〞按鈕,進(jìn)入“查詢?cè)O(shè)計(jì)器〞窗口中修改。②選擇【文件】|【翻開】命令,在“翻開〞對(duì)話框中,選擇所要修改的查詢文件,單擊“確定〞按鈕,進(jìn)入“查詢?cè)O(shè)計(jì)器〞窗口中修改。③在命令窗口中,鍵入MODIFYQUERY<查詢文件名>。3.查詢?nèi)ハ虻脑O(shè)置單擊“查詢?cè)O(shè)計(jì)器〞工具欄中的“查詢?nèi)ハ颞暟粹o或在系統(tǒng)菜單中單擊【查詢】|【查詢?nèi)ハ颉棵?,彈出“查詢?nèi)ハ颞晫?duì)話框,如圖3.26所示。其中共包含7個(gè)查詢?nèi)ハ?,各?xiàng)的含義見p105。6.2.1視圖簡介視圖是一個(gè)定制的虛擬邏輯表,視圖中只存放相應(yīng)的數(shù)據(jù)邏輯關(guān)系,并不保存表的記錄內(nèi)容,但可以在視圖中改變記錄的值,然后將更新記錄返回到源表。視圖與查詢?cè)诠δ苌嫌性S多相似之處,但又有各自特點(diǎn),主要區(qū)別如下:功能不同:視圖可以更新字段內(nèi)容并返回源表,而查詢文件中的記錄數(shù)據(jù)不能被修改。附屬不同:視圖不是一個(gè)獨(dú)立的文件而附屬于某一個(gè)數(shù)據(jù)庫。查詢是一個(gè)獨(dú)立的文件,它不附屬于某一個(gè)數(shù)據(jù)庫。6.2建立視圖訪問范圍不同:視圖可以訪問本地?cái)?shù)據(jù)源和遠(yuǎn)程數(shù)據(jù)源,而查詢只能訪問本地?cái)?shù)據(jù)源。輸出去向不同:視圖只能輸出到表中,而查詢可以選擇多種去向,如表、圖表、報(bào)表、標(biāo)簽、窗口等形式。使用方式不同:視圖只有所屬的數(shù)據(jù)庫被翻開時(shí),才能使用。而查詢文件可在命令窗口中執(zhí)行。6.2.2本地視圖的創(chuàng)立1.使用本地視圖向?qū)?chuàng)立本地視圖2.使用視圖設(shè)計(jì)器創(chuàng)立本地視圖方式一:在向?qū)нx取中選擇[本地視圖向?qū):方式二:在[文件]下選擇[新建],選擇[視圖]下的向?qū)?依照[本地視圖向?qū)操作.1.創(chuàng)立遠(yuǎn)程數(shù)據(jù)聯(lián)接遠(yuǎn)程視圖是通過ODBC從遠(yuǎn)程數(shù)據(jù)源建立的視圖。所謂ODBC即OpenDataBaseConnectivity(開放式數(shù)據(jù)互連)的英語縮寫,它是一個(gè)標(biāo)準(zhǔn)的數(shù)據(jù)庫接口,以一個(gè)動(dòng)態(tài)連接庫〔DLL〕方式提供的。創(chuàng)立ODBC數(shù)據(jù)源可以用二種方法建立。第一種方法是利用“連接設(shè)計(jì)器〞中“新的數(shù)據(jù)源〞創(chuàng)立,第二種方法是利用在windows系統(tǒng)的“控制面板〞中啟動(dòng)“ODBC數(shù)據(jù)源〔32位〕〞應(yīng)用程序。6.2.3創(chuàng)立遠(yuǎn)程視圖1.更新數(shù)據(jù)在“視圖設(shè)計(jì)器〞中,“更新條件〞選項(xiàng)卡控制對(duì)數(shù)據(jù)源的修改〔如更改、刪除、插入〕應(yīng)發(fā)送回?cái)?shù)據(jù)源的方式,而且還可以控制對(duì)表中的特定字段定義是否為可修改字段,并能對(duì)用戶的效勞器設(shè)置適宜的SQL更新方法。2.修改視圖在“工程管理器〞中,選擇“數(shù)據(jù)〞選項(xiàng)卡,選定要修改的“本地視圖〞或“遠(yuǎn)程視圖〞,單擊右邊的“修改〞按鈕,進(jìn)入“視圖設(shè)計(jì)器〞進(jìn)行修改。6.2.4使用視圖的有關(guān)操作3.刪除視圖●在“工程管理器〞中,選擇“數(shù)據(jù)〞選項(xiàng)卡,選定要修改的“本地視圖〞或“遠(yuǎn)程視圖〞,單擊右邊的“移去〞按鈕,單擊提示框中“移去〞按鈕即可刪除。4.瀏覽或運(yùn)行視圖5.顯示SQL語句在“視圖設(shè)計(jì)器〞窗口。可用下面三種方法之一觀察SQL語句:●單擊“視圖設(shè)計(jì)器〞工具欄中“SQL〞按鈕。●右擊“視圖設(shè)計(jì)器〞窗口,選擇“觀察SQL〞命令。●在系統(tǒng)菜單中選擇【查詢】|【查看SQL】查詢命令統(tǒng)計(jì)命令---求和命令格式:SUM[<數(shù)值型表達(dá)式表>][<范圍>][FOR<條件>][WHILE<條件>]TO<內(nèi)存變量名表>/TOARRAY<數(shù)組名>功能:對(duì)當(dāng)前表中指定范圍內(nèi)滿足條件的數(shù)值型字段或是由字段組成的數(shù)值型表達(dá)式累加求和,并把結(jié)果存放在對(duì)應(yīng)的<內(nèi)存變量名表>標(biāo)識(shí)的變量中。假設(shè)使用任選項(xiàng)<數(shù)值型表達(dá)式表>,那么只對(duì)<數(shù)值型表達(dá)式表>中的各表達(dá)式累加求和,否那么將對(duì)當(dāng)前表中的所有數(shù)值型字段累加求和,數(shù)值型字段之間或表達(dá)式之間用逗號(hào)分隔開。假設(shè)使用TO<內(nèi)存變量名表>,可將求出的各表達(dá)式的值依次賦給各內(nèi)存變量,但要注意:表達(dá)式表中的表達(dá)式的個(gè)數(shù)應(yīng)該與內(nèi)存變量表中的變量個(gè)數(shù)相等,假設(shè)省略<數(shù)值型表達(dá)式表>,內(nèi)存變量的個(gè)數(shù)應(yīng)該與數(shù)值型字段的個(gè)數(shù)相等。也可將求出的各表達(dá)式的值存放于指定的數(shù)組中,一個(gè)數(shù)組元素等同于一個(gè)內(nèi)存變量。統(tǒng)計(jì)命令---求平均值命令格式:AVERAGE[<數(shù)值型表達(dá)式表>][<范圍>][FOR<邏輯表達(dá)式1>][WHILE<邏輯表達(dá)式2>][TO<內(nèi)存變量列表>|TOARRAY<數(shù)組名>]

功能:對(duì)當(dāng)前表中指定范圍內(nèi)滿足條件的記錄的數(shù)值型字段求算術(shù)平均值,并把結(jié)果存入<內(nèi)存變量名表>中或存入<數(shù)組名>指定的數(shù)組中。說明:AVERAGE和SUM命令的不同之處僅僅在于前者是求數(shù)值型字段或數(shù)值型表達(dá)式的平均值,而后者是求和。假設(shè)省略<范圍>,約定為ALL,假設(shè)省略<數(shù)值型表達(dá)式表>,約定為當(dāng)前表中的所有的數(shù)值型和浮點(diǎn)型字段。假設(shè)省略<內(nèi)存變量名表>和<數(shù)組名>,那么不保存結(jié)果,假設(shè)系統(tǒng)設(shè)置為SETTALKON那么只顯示,否那么不顯示。統(tǒng)計(jì)命令---計(jì)算命令格式:CALCULATE<表達(dá)式表>[<范圍>][FOR<條件1>][WHILE<條件2>][TO<內(nèi)存變量列表>|TOARRAY<數(shù)組名>]

功能:在翻開的表中,分別計(jì)算<表達(dá)式表>的表達(dá)式。說明:表達(dá)式中必須包含系統(tǒng)規(guī)定的8個(gè)函數(shù)之一,其中常用的函數(shù)由AVG(<數(shù)值表達(dá)式>),CNT(<表達(dá)式>),MAX(<表達(dá)式>),MIN(<表達(dá)式>)SUM(<數(shù)值表達(dá)式>)等5個(gè)。

查詢命令統(tǒng)計(jì)命令---匯總命令格式:TOTALTO<文件名>ON<關(guān)鍵字>[FIELDS<數(shù)值型字段表>]|[<范圍>][FOR<條件1>][WHILE<條件2>]功能:在當(dāng)前翻開的表中,分別對(duì)<關(guān)鍵字>值相同的記錄的數(shù)值型字段求和,并將結(jié)果存入一個(gè)新表。說明:。<關(guān)鍵字>指排序字段或索引關(guān)鍵字,及即當(dāng)前表是有序的。[FIELDS子句的<數(shù)值型字段表>指出要匯總的字段。[<范圍>]:缺省是表示對(duì)所有的記錄。查詢命令SELECT-SQL查詢SQL是結(jié)構(gòu)化查詢語言StructuredQueryLanguage的縮寫??梢哉f查詢是SQL語言的重要組成局部,但不是全部,SQL還包含數(shù)據(jù)定義、數(shù)據(jù)操縱和數(shù)據(jù)控制功能等局部。查詢命令SQL簡單查詢

首先從幾個(gè)最簡單的查詢開始,這些查詢基于單個(gè)表,可以有簡單的查詢條件。這樣的查詢由SELECT和FROM短語構(gòu)成無條件查詢,或由SELECT、FROM和WHERE短語構(gòu)成條件查詢。查詢命令SQL格式:SELECT[ALL/DISTINCT]FROM[<數(shù)據(jù)庫表>!][WHERE<聯(lián)接條件>]

說明:

ALL:表示選出的記錄中包含重復(fù)記錄DISTINCT:表示選出的記錄中不包含重復(fù)記錄FROM[<數(shù)據(jù)庫表>!]:用于指定查詢的表[WHERE<聯(lián)接條件>]:指定篩選條件查詢命令Sql其它語句Groupby用于對(duì)查詢結(jié)果進(jìn)行分組Having短語必須根據(jù)groupby使用,它用來限定分組必須滿足的條件Orderby短語用來對(duì)查詢的結(jié)果進(jìn)行排序單表查詢

1.選擇表中的假設(shè)干列

1〕查詢指定列

2〕查詢?nèi)苛?/p>

3〕查詢經(jīng)過計(jì)算的值

4〕目標(biāo)列為字符串常量、函數(shù)

5〕使用別名

例:表student(sno,sname,ssex,sage,sdept)

1)selectsno,sname

fromstudent2)select*fromstudent3)selectsname,2003-sagefromstudent4)selectsname,’出生年份:’,2003-sage,islower(sdept)5)selectsname姓名,sageas年齡fromstudent6〕SELECT編號(hào),姓名FROM學(xué)生表WHERE成績>=607〕SELECT*FROM學(xué)生表8〕SELECT編號(hào),姓名,成績+5AS提分后的成績FROM學(xué)生表WHERE成績>=552.查詢示列1〕查找大修過的所有設(shè)備selectdistinct編號(hào)fromdx2)求出每一設(shè)備的增值金額select編號(hào),sum(增值)fromzzgroupby編號(hào)3)找出大修費(fèi)用已超過5000元的設(shè)備Select編號(hào)fr

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論