亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

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

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

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

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

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

        倉庫(倉庫號C 3,城市C 10,面積N 3),其記錄如下:

        WH1 北京 370WH2 上海 500

        WH3 廣州 200WH4 武漢 400

        職工(倉庫號 C 3,職工號 C 2,工資 N 4),其記錄如下:

        WH2 E1 1220 WH1 E3 1210

        WH2 E4 1250 WH3 E6 1230

        WH1 E7 1250

        訂購單(職工號 C 2,供應(yīng)商號 C 2,訂購單號 C 4,訂購日期 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)商號 C2,供應(yīng)商名 C20,地址 C10),其記錄如下:

        S3振華電子廠 西安

        S4華通電子公司 北京

        S6607廠 鄭州

        S7愛華電子廠 北京

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

        SELECT 職工號,城市 FROM 職工,倉庫;

        WHERE(工資>1230)AND(職工.倉庫號=倉庫.倉庫號)

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

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

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

        SELECT 城市 FROM 倉庫 WHERE 倉庫號 IN;

        (SELECT 倉庫號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è)倉庫的平均工資。

        SELECT 倉庫號,COUNT(*),AVG(工資) FROM職工;

        GROUP BY 倉庫號HAVING COUNT(*)>=2

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

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

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

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

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

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

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

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

        SELECT 職工.倉庫號,SUM(職工.工資*12) AS 年工資合計(jì);

        FROM 職工ORDER BY SUM(職工.工資*12) DESC GROUP BY 職工.倉庫號

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

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

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

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

        S4 華通電子公司 北京。

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

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

        FROM供應(yīng)商 INNER JOIN訂購單ON訂購單.供應(yīng)商號=供應(yīng)商.供應(yīng)商號;

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

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

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

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

        三、 結(jié)束語

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

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

        婷婷丁香社区| 亚洲精品1区2区在线观看| 国内精品久久久人妻中文字幕 | 国产精品一区二区电影| 国产一区二区丁香婷婷| 亚洲在线精品一区二区三区| 亚洲精品~无码抽插| 少妇高潮惨叫喷水在线观看| 国产亚洲欧洲AⅤ综合一区| 日本肥老熟妇在线观看| 国产在线观看午夜视频| 极品白嫩的小少妇| 色爱区综合激情五月综合小说| 白色橄榄树在线免费观看| 亚洲在线一区二区三区| 久久伊人亚洲精品视频| 国产乱码一区二区三区爽爽爽| 天美传媒精品1区2区3区| 最新欧美一级视频| av男人的天堂手机免费网站| 亚洲一区二区三区偷拍女| 无码成人一区二区| 亚洲人成无码网www| 国产成人综合久久三区北岛玲| 美女被黑人巨大入侵的的视频 | 伊人影院综合在线| 99在线无码精品秘 人口| 国产一区二区三区在线男友| 啦啦啦www在线观看免费视频| 无码人妻精品一区二区三区免费| 亚洲三级香港三级久久| 久久久精品少妇—二区| 亚洲av无码国产精品色午夜字幕 | 处破痛哭a√18成年片免费| 国产亚洲成年网址在线观看| 在线天堂av一区二区| 国产成人亚洲精品青草天美| 伊人久久亚洲综合影院首页| 国产黄色污一区二区三区| 久久久精品人妻一区二区三区游戏| 男人的天堂av网站|