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

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

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

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

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

SELECT查詢命令的使用非常靈活,它的基本形式由SELECT-FROM-WHERE查詢塊組成,多個查詢塊可以嵌套執(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后的兩個關(guān)系表,肯定有一種聯(lián)系。這里的“職工.倉庫號=倉庫.倉庫號”就是連接條件。

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

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

(SELECT 倉庫號FROM 職工 WHERE 工資=1250)

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

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

分組與計算查詢:例3:檢索出至少有兩個職工的每個倉庫的平均工資。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

首先,把需要用到的表“供應(yīng)商”和“訂購單”添加進來。接著按如下步驟進行:①從“字段”選項卡選擇“供應(yīng)商.供應(yīng)商號”“供應(yīng)商.供應(yīng)商名”“供應(yīng)商.地址”字段,并把它們添加到“選定字段”框中。②從“連接”選項卡中建立“訂購單.供應(yīng)商號=供應(yīng)商.供應(yīng)商號”的內(nèi)部連接關(guān)系。③從“篩選”選項卡中設(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”)。④從“雜項”選頂卡中把“無重復(fù)記錄”復(fù)選框勾上。

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

S4 華通電子公司 北京。

單擊查詢設(shè)計器工具欄中的顯示SQL窗口圖標,可以看到系統(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”),是要在“篩選”選項卡中的“實例”項設(shè)計的內(nèi)容。這也正是設(shè)計復(fù)雜的查詢的關(guān)鍵所在。

三、 結(jié)束語

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

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

主站蜘蛛池模板: 免费A级毛片无码无遮挡| 日本欧美视频在线观看| 一本一道波多野结衣一区二区 | 国产亚洲欧美日本一二三本道| 亚洲综合经典在线一区二区| 亚洲国产精品成人久久综合影院 | аⅴ资源中文在线天堂| 凹凸国产熟女精品视频| 久久亚洲精少妇毛片午夜无码 | 亚洲最大综合网| 一级毛片基地| 久久这里只有精品国产99| 国产在线精品香蕉麻豆| 精品国产福利在线| 国产亚洲精品91| 最近最新中文字幕免费的一页| 亚洲国产精品日韩av专区| 国产门事件在线| 直接黄91麻豆网站| 国产福利免费视频| 欧美一区二区丝袜高跟鞋| 欧美日韩专区| 亚洲综合色区在线播放2019| 尤物午夜福利视频| 国产呦视频免费视频在线观看| 国产在线八区| 丁香六月激情综合| 欧美一区二区三区欧美日韩亚洲 | 深爱婷婷激情网| 天堂成人在线| 在线观看国产精美视频| 色天堂无毒不卡| 欧美亚洲国产精品久久蜜芽| 中文字幕在线观看日本| 色综合久久综合网| 久久频这里精品99香蕉久网址| yy6080理论大片一级久久| 免费无遮挡AV| 伊伊人成亚洲综合人网7777| 成人毛片免费在线观看| 亚洲综合日韩精品| 99视频精品在线观看| 99精品久久精品| 国产大片黄在线观看| 久久情精品国产品免费| 国产乱子精品一区二区在线观看| 波多野结衣视频网站| 亚洲 欧美 偷自乱 图片| 午夜视频日本| 国产精品污视频| 中文字幕2区| 国产swag在线观看| 91精品专区国产盗摄| 尤物亚洲最大AV无码网站| 东京热一区二区三区无码视频| 黄色网在线| 成人欧美日韩| 久久99国产乱子伦精品免| www精品久久| 国产欧美自拍视频| 国产高清不卡| www.日韩三级| 中文字幕永久在线看| 国产又色又爽又黄| 无码福利日韩神码福利片| 国产视频大全| 久久亚洲精少妇毛片午夜无码 | 浮力影院国产第一页| 98精品全国免费观看视频| 白浆视频在线观看| 亚洲女同一区二区| 奇米精品一区二区三区在线观看| 国产精品福利导航| 国产办公室秘书无码精品| a天堂视频| 日韩精品亚洲一区中文字幕| 免费人成在线观看视频色| 日韩在线播放中文字幕| 久青草国产高清在线视频| 国产黄色片在线看| 久久久亚洲色| 国产丝袜第一页|