999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

VFP中巧用查詢?cè)O(shè)計(jì)器設(shè)計(jì)復(fù)雜查詢

2009-04-29 00:00:00
成才之路 2009年4期

SQL是結(jié)構(gòu)化查詢語(yǔ)言Structured Query Language的縮寫(xiě),其中查詢是SQL語(yǔ)言的重要組成部分。SQL已經(jīng)成為關(guān)系數(shù)據(jù)庫(kù)的標(biāo)準(zhǔn)數(shù)據(jù)語(yǔ)言。Visual FoxPro也將其融入到自身的語(yǔ)言中,可以直接以命令方式交互使用,也可以嵌入到程序中以程序方式使用。這些使用方式,為用戶提供了靈活的選擇余地。盡管SQL的使用方式不同,但SQL語(yǔ)言的語(yǔ)法基本是一致的。SQL的核心是查詢,它的查詢命令也稱作SELECT命令。實(shí)際上,查詢就是預(yù)先定義好的一個(gè)SQL SELECT 語(yǔ)句,在不同的需要場(chǎng)合可以直接或反復(fù)使用,從而提高效率。在Visual FoxPro中也可以利用查詢?cè)O(shè)計(jì)器設(shè)計(jì)查詢,同時(shí)系統(tǒng)會(huì)生成相應(yīng)的SELECT查詢語(yǔ)句代碼。

一、 使用SELECT命令構(gòu)造查詢

SELECT查詢命令的使用非常靈活,它的基本形式由SELECT-FROM-WHERE查詢塊組成,多個(gè)查詢塊可以嵌套執(zhí)行,用它可以構(gòu)造各種各樣的查詢。下面給出一些查詢的例子來(lái)分析SELECT語(yǔ)句。其中需要用到相關(guān)的數(shù)據(jù)表如下:

倉(cāng)庫(kù)(倉(cāng)庫(kù)號(hào)C 3,城市C 10,面積N 3),其記錄如下:

WH1 北京 370WH2 上海 500

WH3 廣州 200WH4 武漢 400

職工(倉(cāng)庫(kù)號(hào) C 3,職工號(hào) C 2,工資 N 4),其記錄如下:

WH2 E1 1220 WH1 E3 1210

WH2 E4 1250 WH3 E6 1230

WH1 E7 1250

訂購(gòu)單(職工號(hào) C 2,供應(yīng)商號(hào) C 2,訂購(gòu)單號(hào) C 4,訂購(gòu)日期 D),其記錄如下:

E3 S7 OR67 2001/06/23

E1 S4 OR73 2001/07/28

E7 S4 OR76 2001/05/25

E6 Null OR77 Null

E3 S4 OR79 2001/06/13

E1 Null OR80 Null

E3 Null OR90 Null

E3 S3 OR91 2001/07/13

供應(yīng)商(供應(yīng)商號(hào) C2,供應(yīng)商名 C20,地址 C10),其記錄如下:

S3振華電子廠 西安

S4華通電子公司 北京

S6607廠 鄭州

S7愛(ài)華電子廠 北京

連接查詢:例1:找出工資多于1230元的職工號(hào)和他們所在的城市。

SELECT 職工號(hào),城市 FROM 職工,倉(cāng)庫(kù);

WHERE(工資>1230)AND(職工.倉(cāng)庫(kù)號(hào)=倉(cāng)庫(kù).倉(cāng)庫(kù)號(hào))

結(jié)果是: E4 上海 E7 北京

短語(yǔ)FROM后的兩個(gè)關(guān)系表,肯定有一種聯(lián)系。這里的“職工.倉(cāng)庫(kù)號(hào)=倉(cāng)庫(kù).倉(cāng)庫(kù)號(hào)”就是連接條件。

嵌套查詢:例2:找出至少有一個(gè)倉(cāng)庫(kù)的職工工資為1250元的城市。

SELECT 城市 FROM 倉(cāng)庫(kù) WHERE 倉(cāng)庫(kù)號(hào) IN;

(SELECT 倉(cāng)庫(kù)號(hào)FROM 職工 WHERE 工資=1250)

結(jié)果是:北京 上海

從其形式與結(jié)果中可以看出,這類查詢所要求的結(jié)果出自一個(gè)關(guān)系,但相關(guān)的條件卻涉及多個(gè)關(guān)系。查詢外層中的元組時(shí),其條件依賴相關(guān)的內(nèi)層關(guān)系中元組的屬性值。

分組與計(jì)算查詢:例3:檢索出至少有兩個(gè)職工的每個(gè)倉(cāng)庫(kù)的平均工資。

SELECT 倉(cāng)庫(kù)號(hào),COUNT(*),AVG(工資) FROM職工;

GROUP BY 倉(cāng)庫(kù)號(hào)HAVING COUNT(*)>=2

結(jié)果是:WH1 2 1230 WH2 2 1235

上例中,如果不用分組,將會(huì)對(duì)整個(gè)關(guān)系表進(jìn)行計(jì)算查詢。而充分利用分組查詢,可以按元組某一屬性值進(jìn)行分組計(jì)算,方便我們提取分類數(shù)據(jù)。使用SELECT語(yǔ)句構(gòu)造查詢的用法較多,除上述提到的基本方法外,還有利用空值查詢、別名與自連接查詢、內(nèi)外層互相關(guān)嵌套查詢、使用量詞和謂詞查詢及超鏈接查詢等。這里就不一一列舉了,只有在平時(shí)多加運(yùn)用,才能熟練掌握其用法。

二、 利用查詢?cè)O(shè)計(jì)器設(shè)計(jì)查詢

由于SQL SELECT語(yǔ)句的語(yǔ)法格式長(zhǎng)且復(fù)雜,學(xué)生們用它構(gòu)造查詢的時(shí)候,都有些棘手。但我們用“查詢?cè)O(shè)計(jì)器”可以方便地設(shè)計(jì)出查詢。當(dāng)然,我們首先還是要理解SELECT語(yǔ)句的基本語(yǔ)法框架。因?yàn)椤安樵冊(cè)O(shè)計(jì)器”是以SELECT語(yǔ)句為基礎(chǔ)的,其界面上的各選項(xiàng)卡和SELECT語(yǔ)句的各短語(yǔ)是相對(duì)應(yīng)的,把這些相對(duì)應(yīng)的關(guān)系弄清楚了,用“查詢?cè)O(shè)計(jì)器”便可以輕松地設(shè)計(jì)出各種各樣的查詢了。查詢?cè)O(shè)計(jì)器界面上各選項(xiàng)卡與SELECT語(yǔ)句各短語(yǔ)的對(duì)應(yīng)關(guān)系如下:①“字段”選項(xiàng)卡對(duì)應(yīng)于SELECT短語(yǔ),指定要查詢的數(shù)據(jù),這時(shí)可以單擊“全部添加”選擇所有字段,也可以逐個(gè)選擇字段“添加”;在“函數(shù)和表達(dá)式”編輯框中可以輸入或編輯計(jì)算表達(dá)式。②“連接”選項(xiàng)卡對(duì)應(yīng)于JOIN ON短語(yǔ),用于編輯連接條件。③“篩選”選項(xiàng)卡對(duì)應(yīng)于WHERE短語(yǔ),用于指定查詢條件。④“排序依據(jù)”選項(xiàng)卡對(duì)應(yīng)于ORDER BY短語(yǔ),用于指定排序的字段和排序方式。⑤“分組依據(jù)”選項(xiàng)卡對(duì)應(yīng)于GROUP BY短語(yǔ)和HAVING短語(yǔ),用于分組。⑥“雜項(xiàng)”選項(xiàng)卡對(duì)應(yīng)于可以指定是否要重復(fù)記錄(對(duì)應(yīng)于DISTINCT)及列在前面的記錄(對(duì)應(yīng)于TOP短語(yǔ))等。

下面通過(guò)兩個(gè)例子,介紹如何利用查詢?cè)O(shè)計(jì)器來(lái)建立查詢。查詢要用到的關(guān)系表同上。

例1:利用分組功能統(tǒng)計(jì)各倉(cāng)庫(kù)年工資額的合計(jì),并按年工資額降序排序。

步驟如下:①?gòu)摹白侄巍边x項(xiàng)卡選擇并添加“職工.倉(cāng)庫(kù)號(hào)”字段,并在“函數(shù)和表達(dá)式”編輯框中輸入表達(dá)式:SUM(職工.工資*12) AS 年工資合計(jì),然后把它添加到“選定字段”框中。②從“分組依據(jù)”選項(xiàng)卡選擇“職工.倉(cāng)庫(kù)號(hào)”字段并把它添加到“分組字段”框中。③從“排序依據(jù)”選項(xiàng)卡選擇“職工.工資*12”字段,并把它添加到“排序條件”框中。

此時(shí),運(yùn)行查詢即可得到所需要的統(tǒng)計(jì)結(jié)果。單擊查詢?cè)O(shè)計(jì)器工具欄中的顯示SQL窗口圖標(biāo),可以看到系統(tǒng)按照上述操作生成相應(yīng)如下的SQL SELECT語(yǔ)句代碼:

SELECT 職工.倉(cāng)庫(kù)號(hào),SUM(職工.工資*12) AS 年工資合計(jì);

FROM 職工ORDER BY SUM(職工.工資*12) DESC GROUP BY 職工.倉(cāng)庫(kù)號(hào)

上例是用查詢?cè)O(shè)計(jì)器建立比較規(guī)則的查詢。要想設(shè)計(jì)出復(fù)雜的查詢,就要好好利用“連接”選項(xiàng)卡和“篩選”選項(xiàng)卡了。下面,以一例子來(lái)闡述用查詢?cè)O(shè)計(jì)器設(shè)計(jì)較為復(fù)雜的查詢。

例2:檢索出和職工E1、E3都有聯(lián)系的北京的供應(yīng)商信息。

首先,把需要用到的表“供應(yīng)商”和“訂購(gòu)單”添加進(jìn)來(lái)。接著按如下步驟進(jìn)行:①?gòu)摹白侄巍边x項(xiàng)卡選擇“供應(yīng)商.供應(yīng)商號(hào)”“供應(yīng)商.供應(yīng)商名”“供應(yīng)商.地址”字段,并把它們添加到“選定字段”框中。②從“連接”選項(xiàng)卡中建立“訂購(gòu)單.供應(yīng)商號(hào)=供應(yīng)商.供應(yīng)商號(hào)”的內(nèi)部連接關(guān)系。③從“篩選”選項(xiàng)卡中設(shè)置如下條件: 供應(yīng)商.地址=“北京”AND供應(yīng)商.供應(yīng)商號(hào) IN (SELECT 供應(yīng)商號(hào)FROM訂購(gòu)單WHERE 職工號(hào)=“E1”) AND 供應(yīng)商.供應(yīng)商號(hào)IN (SELECT 供應(yīng)商.供應(yīng)商號(hào)FROM 訂購(gòu)單 WHERE職工號(hào)=“E3”)。④從“雜項(xiàng)”選頂卡中把“無(wú)重復(fù)記錄”復(fù)選框勾上。

查詢?cè)O(shè)計(jì)完畢后,即可運(yùn)行查詢,所得結(jié)果是:

S4 華通電子公司 北京。

單擊查詢?cè)O(shè)計(jì)器工具欄中的顯示SQL窗口圖標(biāo),可以看到系統(tǒng)按照上述操作生成相應(yīng)如下的SQL SELECT語(yǔ)句代碼:

SELECT DISTINCT供應(yīng)商.*;

FROM供應(yīng)商 INNER JOIN訂購(gòu)單ON訂購(gòu)單.供應(yīng)商號(hào)=供應(yīng)商.供應(yīng)商號(hào);

WHERE供應(yīng)商.地址=“北京”;

AND供應(yīng)商.供應(yīng)商號(hào)IN (SELECT 供應(yīng)商號(hào) FROM 供應(yīng)商WHERE職工號(hào)=“E1”);

AND供應(yīng)商。供應(yīng)商號(hào)IN (SELECT 供應(yīng)商號(hào) FROM 供應(yīng)商WHERE職工號(hào)=“E3”)

上例中的(SELECT 供應(yīng)商號(hào) FROM 訂購(gòu)單WHERE 職工號(hào)=“E1”)和(SELECT 供應(yīng)商.供應(yīng)商號(hào)FROM 訂購(gòu)單 WHERE職工號(hào)=“E3”),是要在“篩選”選項(xiàng)卡中的“實(shí)例”項(xiàng)設(shè)計(jì)的內(nèi)容。這也正是設(shè)計(jì)復(fù)雜的查詢的關(guān)鍵所在。

三、 結(jié)束語(yǔ)

利用查詢?cè)O(shè)計(jì)器能方便高效地設(shè)計(jì)復(fù)雜的查詢,但這是要建立在對(duì)SELECT語(yǔ)句的句法框架有個(gè)較好的理解基礎(chǔ)上的,同時(shí)還要明白其與查詢?cè)O(shè)計(jì)器中各選項(xiàng)卡的對(duì)應(yīng)關(guān)系。筆者在教學(xué)過(guò)程中,融入了上述方法,學(xué)生們很快便掌握了其方法技巧。在全國(guó)計(jì)算機(jī)等級(jí)考試的二級(jí)Visual FoxPro程序設(shè)計(jì)作答中,碰到在程序中需要填入SELECT查詢語(yǔ)句時(shí),較復(fù)雜的一般不直接寫(xiě)語(yǔ)句,同學(xué)們運(yùn)用該設(shè)計(jì)方法,能夠輕松正確地獲得語(yǔ)句代碼,填入程序設(shè)計(jì)答題中,既快捷又不易出現(xiàn)錯(cuò)誤,取得了很好的效果。

[十堰職業(yè)技術(shù)(集團(tuán))學(xué)校]

主站蜘蛛池模板: 精品综合久久久久久97超人| 欧美日韩在线第一页| 国产精品污视频| 国产精品久久久久无码网站| a毛片基地免费大全| 萌白酱国产一区二区| 97国产成人无码精品久久久| 国产精品自在在线午夜| 国产精品理论片| 手机在线看片不卡中文字幕| 不卡无码网| 在线观看免费国产| 58av国产精品| 99热6这里只有精品| 无码福利日韩神码福利片| 国产精品三级专区| 国产麻豆精品久久一二三| 国产幂在线无码精品| 91小视频版在线观看www| 久久婷婷色综合老司机| 91亚洲精品国产自在现线| 久久久久88色偷偷| 久久婷婷六月| 午夜毛片免费看| 亚洲国产系列| 九色91在线视频| 极品私人尤物在线精品首页 | 一级香蕉人体视频| 国产精品9| 一区二区三区精品视频在线观看| 日本欧美中文字幕精品亚洲| 国产传媒一区二区三区四区五区| 久久综合亚洲鲁鲁九月天| 婷婷丁香色| 天天色天天综合| 无码内射中文字幕岛国片| 国产精品成人免费视频99| 国产在线八区| 欧美色图第一页| 毛片基地美国正在播放亚洲 | 成人午夜视频免费看欧美| 亚洲,国产,日韩,综合一区| 亚洲国产综合精品一区| 亚洲精品成人片在线播放| 欧美国产日韩一区二区三区精品影视| 欧美另类一区| 精品一區二區久久久久久久網站| 无码免费试看| 美女视频黄又黄又免费高清| 日本一区中文字幕最新在线| 999精品免费视频| 色婷婷电影网| 激情综合五月网| 欧美日本在线一区二区三区| 日韩第一页在线| 亚洲人成网站观看在线观看| 国产成人久久综合777777麻豆| 中文字幕av无码不卡免费| 国产一区二区丝袜高跟鞋| 国产喷水视频| 国产一区二区三区免费| 免费人成在线观看视频色| 亚洲综合欧美在线一区在线播放| 99久久精品国产精品亚洲| 毛片大全免费观看| 伊人久久精品亚洲午夜| 在线无码九区| 久久久久免费精品国产| 国产爽妇精品| 区国产精品搜索视频| 国产剧情伊人| 亚洲娇小与黑人巨大交| 亚洲一区波多野结衣二区三区| 丁香婷婷综合激情| 熟妇丰满人妻av无码区| 亚洲人成成无码网WWW| 爽爽影院十八禁在线观看| 国产在线八区| 精品超清无码视频在线观看| 国产91精品久久| 91亚洲国产视频| 美女高潮全身流白浆福利区|