




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、(中職)2022-2023學(xué)年第3章 數(shù)據(jù)的管理ppt課件第 3 章數(shù)據(jù)的管理存儲數(shù)據(jù)不是建立數(shù)據(jù)庫的唯一目的,建立數(shù)據(jù)庫的目的是為了查詢,利用數(shù)據(jù)庫管理技術(shù)訪問這些數(shù)據(jù)。在 Visual FoxPro 6.0 中有很多查詢方法,可以使用查詢向?qū)?、查詢設(shè)計器、SQL語句、多表查詢、限定條件查詢、視圖查詢等。3.1【案例 9】使用查詢向?qū)Р樵儼咐枋霎敱碇杏泻苌俚膸讞l記錄時,利用瀏覽窗口可以找到符合一定條件的記錄。但是當表中有大量記錄時,用瀏覽的方式查找某條記錄就相當困難了,查找記錄的效率也很低。查詢是數(shù)據(jù)庫操作的核心部分,Visual FoxPro 6.0 提供的查詢功能能夠在大量的記錄中迅速
2、找到符合一定條件的記錄。接下來使用查詢向?qū)?,完成根?jù)篩選和排序后查詢記錄的操作。相關(guān)知識1查詢方式在 Visual FoxPro 6.0 中,可以利用程序查找符合記錄的數(shù)據(jù),還經(jīng)常使用標準查詢語句來查詢表中的數(shù)據(jù)。使用查詢語句可以方便地對多個表中的數(shù)據(jù)進行整合,生成豐富的數(shù)據(jù)。建立查詢文件常有三種方式,查詢向?qū)?、查詢設(shè)計器和 SQL 語句。2查詢的設(shè)計過程確定了要查找的信息,以及這些信息存儲在哪些表中后,可以通過以下幾個步驟來建立查詢: 使用“查詢向?qū)А被颉安樵冊O(shè)計器”開始建立查詢。 選擇出現(xiàn)在查詢結(jié)果中的字段。 設(shè)置選擇條件來查找可給出所需結(jié)果的記錄。 設(shè)置排序或分組選項來組織查詢結(jié)果。利用
3、查詢向?qū)Ы⒉樵兾募亲詈唵巍⒆钪庇^的方法。3.2【案例 10】使用查詢設(shè)計器查詢案例描述查詢的實質(zhì)是把符合條件的記錄提取出來,經(jīng)過一定的組合、統(tǒng)計,最終得到一個結(jié)果,而結(jié)果可能是一條記錄,也可能有成千上萬條記錄。使用“查詢設(shè)計器”可以創(chuàng)建和修改查詢。打開“查詢設(shè)計器”,選擇包含想要信息的表后,就可定義輸出結(jié)果。至少需要選擇所需的字段,也可設(shè)置選定字段的顯示順序和設(shè)置過濾器來篩選需要顯示的記錄,以此定義輸出結(jié)果。接下來使用查詢設(shè)計器,完成根據(jù)篩選和排序后查詢記錄的操作。相關(guān)知識1查詢設(shè)計器的使用在運行查詢之前,必須選擇表并選擇要包括在查詢結(jié)果中的字段。在某些情況下,可能需要使用表中的所有字段。
4、但在另一些情況下,也許只想使查詢與選定的部分字段相關(guān)。如果想用某些字段給查詢結(jié)果排序或分組,一定要確保在查詢輸出中包含這些字段。選定這些字段后,可以為它們設(shè)置順序作為輸出結(jié)果。 “查詢設(shè)計器”工具欄中的按鈕作用如表 3-2-1 所示。 “查詢設(shè)計器”各選項卡的功能: 字段:指定字段,SUM() 或 COUNT() 之類的合計函數(shù)或其他表達式。 聯(lián)接:指點聯(lián)接表達式,用它來匹配多個表或視圖中的記錄。 篩選:指定選擇記錄的條件,比如在字段內(nèi)指定值或在表之間定義臨時關(guān)系的連接條件。 排序依據(jù):指定查詢結(jié)構(gòu)的記錄排列順序。 分組依據(jù):指定字段,SUM() 或 COUNT() 之類的合計函數(shù),或用于把有
5、相同字段值的記錄合并為一組的其他表達式。 雜項:指定是否要對重復(fù)記錄進行檢索,同時是否對記錄(返回記錄的最大數(shù)目或最大百分比)進行限制。2查詢的設(shè)計過程(1)設(shè)置輸出的字段使用“查詢設(shè)計器”的“字段”選項卡來選取需要包含在查詢結(jié)果中的字段。選定字段名,然后單擊“添加”按鈕,或者將字段名拖到“選定字段”列表框中,還可使用名稱或通配符選擇全部字段。如果使用名字選擇字段,查詢中要包含完整的字段名。此時如果向表中添加字段后,再運行查詢,則輸出結(jié)果不包含新字段名。如果使用通配符,則通配符包含在查詢中,并包含當前查詢的表中的全部字段。如果創(chuàng)建查詢后,表結(jié)構(gòu)改變了,新字段也將出現(xiàn)在查詢結(jié)果中。如果要在查詢中
6、一次添加所有可用的字段,可以單擊“全部添加”按鈕,按名字添加字段,或者將表頂部的“*”號拖到“選定字段”列表框中。(2)設(shè)置字段的別名如果要使查詢結(jié)果易于閱讀和理解,可以在輸出結(jié)果字段中添加說明標題,顯示字段的別名。例如,可在結(jié)果列的頂部顯示 SumMaxOrd 來代替字段名或表達式 SUM(MaxOrdAmount)。當需要給字段添加別名時,可以在“函數(shù)和表達式”文本框中輸入字段名,接著輸入“AS”和別名,然后單擊“添加”按鈕,在“選定字段”列表框中放置帶有別名的字段。(3)設(shè)置輸出字段的次序在“字段”選項卡中,字段的出現(xiàn)順序決定了查詢輸出中信息列的順序。如果要改變查詢輸出的列順序,可以上、
7、下拖動位于字段名左側(cè)的移動框。(4)設(shè)置篩選的條件用“查詢設(shè)計器”中的“篩選”選項卡選取需要查找的記錄是決定查詢結(jié)果的關(guān)鍵。在 VisualFoxPro 6.0 中,使用“篩選”選項卡可以確定用于選擇記錄的字段、選擇比較準則以及輸入與該字段進行比較的示例值。“篩選”選項卡可以構(gòu)造一個帶有 WHERE 子句的選擇語句來通知 Visual FoxPro 6.0 想要搜索并檢索的記錄。我們定義的查詢可能需要查找一個特定的數(shù)據(jù)子集,并將其包含在報表或其他輸出形式中。如果要指定過濾器,可以從“字段名”下拉列表中選取用于選擇記錄的字段。注意,通用字段和備注字段不能用于過濾器中。然后從“條件”下拉列表中選擇
8、比較的類型,最后在“實例”文本框中輸入比較條件。僅當字符串與查詢的表中字段名相同時,才用引號括起字符串,否則無須用引號將字符串引起來,日期也不必用花括號引起來。邏輯位的前后必須使用句點,如(.T.)。如果輸入查詢中表的字段名,Visual FoxPro 6.0 就將它識別為一個字段。在搜索字符型數(shù)據(jù)時,如果想忽略大小寫匹配,請單擊“大小寫”下面的按鈕。3.3【案例 11】使用 SQL 語句查詢案例描述SQL 是結(jié)構(gòu)化查詢語言(structured query language)的縮寫。SQL 由查詢語言、數(shù)據(jù)定義語言 DDL、數(shù)據(jù)操作語言 DML 和數(shù)據(jù)控制語言 DCL 四個部分組成。查詢向?qū)?/p>
9、和查詢設(shè)計器最終都要生成 SQL 語句,該語句才是查詢的最終結(jié)果。向?qū)Ш筒樵冊O(shè)計器只是查詢語句的圖形化表示。接下來使用 SQL 語句,完成根據(jù)篩選和排序后查詢記錄的操作。相關(guān)知識1標準 SQL 查詢命令(1)順序查找順序查找是在指定的范圍內(nèi),按照記錄號的順序查找滿足條件的記錄,并將記錄指針定位于第一個滿足條件的記錄。如果查找不成功,則記錄指針定位于指定范圍的最后一條記錄上,并且給出提示信息:LOCATE FOR lExpression1 Scope按順序搜索表,從而找到滿足指定邏輯表達式的第一條記錄。其中的 FOR lExpression1 表示讓 LOCATE 按順序搜索當前表以找到滿足表達
10、式 lExpression1 的第一條記錄。Scope 表示指定要定位的記錄范圍,可以使用 ALL、NEXT 記錄數(shù)、RECORD 記錄號、REST 四種范圍。由于該命令只能找到滿足條件的第一條記錄,所以在發(fā)現(xiàn)了該記錄后,應(yīng)當執(zhí)行 CONTINUE命令,在表的剩余部分尋找其他滿足條件的記錄。CONTINUE當執(zhí)行 CONTINUE 時,搜索操作從滿足條件的記錄的下一條記錄開始繼續(xù)執(zhí)行??梢灾貜?fù)執(zhí)行 CONTINUE 命令,直到到達范圍邊界或表尾。(2)判斷查找是否成功FOUND()用來判斷查找命令是否成功,該函數(shù)返回一個邏輯值,指明最近執(zhí)行的命令 LOCATE、CONTINUE是否成功。如果搜
11、索成功,該函數(shù)返回“真”(.T.)值。2SELECT 查詢命令SELECT 查詢命令是對標準 SQL 查詢命令的擴充。基本的 SELECT 命令必須制定一個表名和一個查詢輸出項。表名指明數(shù)據(jù)源,查詢輸出項指明查詢內(nèi)容。SELECT ALL|DISTINCTTOPPERCENTFROM 數(shù)據(jù)庫名!INNER|LEFTOUTER|RIGHTOUTER|FULLOUTERJOIN 數(shù)據(jù)庫名!INNER|LEFTOUTER|RIGHTOUTER|FULLOUTERJOIN 數(shù)據(jù)庫名! ONINTO|TO FILEADDITIVE|TO PRINTERPROMPT|TO SCREENWHERE ORDE
12、R BYASC|DESCGROUP BY,分組列名HAVINGUNION ALL SELECT 命令A(yù)LL|DISTINCT中,ALL 是指定查詢結(jié)果中包含所有行,該項為默認選項;DISTINCT 將去掉查詢結(jié)果中所有重復(fù)的行。TOPPERCENT是在符合查詢條件的所有記錄中,選取指定數(shù)量或百分比的記錄。TOP 參數(shù)必須與ORDER BY參數(shù)同時使用。按照ORDER BY參數(shù)排好序后,TOP 參數(shù)根據(jù)此順序從起始處選定條或%的記錄。使用ORDER BY子句對指定的字段進行排序,會產(chǎn)生并列的情況。例如,可能有多條記錄,它們在選定的字段上值相同。如果指定為 10,在查詢結(jié)果中可能多于 10 條記錄
13、數(shù),因為可能有幾條記錄位置并列。如果包含 PERCENT 關(guān)鍵字指定查詢結(jié)果中的記錄數(shù),得到記錄數(shù)為小數(shù)時進行取整。指定查詢結(jié)果的輸出項目,每一項之間用逗號分開,查詢輸出項包括以下幾種: FROM 參數(shù),指定表中的字段名。如果要查詢的字段名在多個表文件中出現(xiàn),則要在字段名前加上表的別名或臨時表名和連接符號“.”。該查詢輸出項在查詢結(jié)果記錄中的值為對應(yīng)的表文件中字段的值。 常量,可以是任何類型的常量。查詢輸出項在查詢結(jié)果記錄中的值都為該常量值。 表達式,可以是任何結(jié)果類型的 Visual FoxPro 6.0 表達式。表達式中可以包含表的字段名、Visual FoxPro 6.0 提供的函數(shù)和自
14、定義函數(shù)。這種查詢輸出項在查詢結(jié)果記錄中的值為將對應(yīng)的查詢表字段的值代替表達式字段名,然后計算表達式的值。正是因為查詢輸出項可以是表達式,使得 SELECT 命令具有較強的計算能力。對于查詢輸出項的個數(shù)沒有限制,此處常用的一個特殊符號是“*”,可以用來指代查詢表的所有字段名而不必逐個列出,簡化了命令的書寫。每個查詢輸出項還可以指定一個列名,列名用做在瀏覽中顯示查詢結(jié)果時的表頭字段名,這對于字符數(shù)太多的查詢項(如表達式),具有十分重要的作用。列名應(yīng)該與查詢輸出項的實際意義相符。注意列名不可在命令的其他參數(shù)中被引用。FROM 數(shù)據(jù)庫名!指定要查詢的一個或多個表。在 FROM 子句中,表名可以帶數(shù)據(jù)
15、庫名的前綴以查詢非當前數(shù)據(jù)庫的表。此外,每個表名還可以賦予一個在本命令中唯一的表別名。一旦指定表別名,則命令的其他參數(shù)中需要引用該表時,都必須使用表別名,不可使用原表名。SELECT 命令的強大功能之一是多表關(guān)聯(lián)查詢。多表關(guān)聯(lián)就是將兩個或多個表文件的記錄按照關(guān)聯(lián)方式和關(guān)聯(lián)條件交叉合并,關(guān)聯(lián)之后可以得到一個新的虛擬表。多表關(guān)聯(lián)查詢的結(jié)果取自這個虛擬表。當一個表的某條記錄與另一個表的某條記錄符合指定的關(guān)聯(lián)條件時,這兩條記錄的字段值合并后便作為虛擬表的一條記錄。關(guān)聯(lián)條件可用 FROM 子句之后的 ON 子句或者 WHERE 子句的參數(shù)指定,兩個以上的表關(guān)聯(lián)需要多個關(guān)聯(lián)條件,第一個表之后的每個表都需要
16、一個關(guān)聯(lián)條件。最常用的關(guān)聯(lián)條件是一個表的字段與另一個表的字段相等。INNER | LEFT OUTER | RIGHTOUTER| FULLOUTERJOIN 設(shè)置關(guān)聯(lián)方式。多個表關(guān)聯(lián)則需要多個 JOIN 參數(shù)。JOIN 參數(shù)左邊的表稱為左表,右邊的表稱為右表。多表關(guān)聯(lián)有內(nèi)部連接、左連接、右連接和完全連接等幾種關(guān)聯(lián)方式,相應(yīng)地 JOIN 子句也有四種形式。INNER JOIN 設(shè)置內(nèi)部連接,這是默認的表關(guān)聯(lián)方式。系統(tǒng)檢查左表的每條記錄和右表的每條記錄,每當左表的記錄與右表的某條記錄按照關(guān)聯(lián)條件匹配時,就將左表與右表匹配的記錄合并,作為虛擬表的一條記錄。LEFTOUTERJOIN 設(shè)置左連接。檢
17、查左表的每條記錄和右表的每條記錄,如果左表的記錄與右表的某條記錄按照關(guān)聯(lián)條件匹配,就將左表與右表匹配的記錄合并,作為虛擬表的一條記錄;如果左表的記錄在右表中沒有匹配的記錄,左表記錄也作為虛擬表的一條記錄,不過這種虛擬表記錄中左表字段的值都取自左表,而右表字段的值全為 NULL 值??梢姡筮B接的結(jié)果包含內(nèi)部連接的結(jié)果。RIGHT OUTER JOIN 設(shè)置右連接。右連接的結(jié)果與左連接正好對反,即相當于將左表與右表位置互換之后左連接的結(jié)果,不過字段次序不同。FULL OUTER JOIN 設(shè)置完全連接。完全連接的結(jié)果是左連接的結(jié)果與右連接的結(jié)果合并后重復(fù)記錄的結(jié)果。INTO 輸出目標,SELEC
18、T 命令的查詢結(jié)果可以輸出到多種目標,例如表瀏覽窗口、內(nèi)存數(shù)組、數(shù)據(jù)庫、表、文件、打印機和屏幕。輸出目標可以通過 INTO 子句指定,當不使用 INTO 子句時,查詢結(jié)果輸出到表瀏覽窗口。INTO ARRAY 數(shù)組名,設(shè)置輸出到數(shù)組,將查詢結(jié)果輸出到指定的二維數(shù)組。如果數(shù)組已經(jīng)存在且結(jié)構(gòu)與查詢結(jié)果相同,則將查詢結(jié)果追加到數(shù)組尾部,否則創(chuàng)建新數(shù)組。如果查詢結(jié)果不包含任何記錄(未查詢到符合條件的記錄或者查詢失敗),則不用創(chuàng)建數(shù)組。數(shù)組的列數(shù)等于查詢項的個數(shù),行數(shù)等于查詢結(jié)果的記錄數(shù)。每列數(shù)組元素的數(shù)據(jù)類型與查詢項目的結(jié)果數(shù)據(jù)類型相同。INTO DBF TABLE 表名 DATABASE 數(shù)據(jù)庫名設(shè)
19、置輸出到數(shù)據(jù)庫和表。它可以將查詢結(jié)果輸出到指定的表中,并可以添加到指定的數(shù)據(jù)庫中。如果指定的表已經(jīng)存在并且打開,而 SET SAFETY 設(shè)置為 OFF,則該表內(nèi)容被查詢結(jié)果完全覆蓋;如果 SET SAFETY設(shè)置為 ON,則 Visual FoxPro 6.0 首先提示是否覆蓋指定的表;如果指定的表不存在或者存在但未打開,則 Visual FoxPro 6.0 直接用查詢結(jié)果覆蓋該表;如果新的表名未指定路徑,則在默認路徑下創(chuàng)建新表;如果新的表名不含擴展名,則默認擴展名為.dbf。當使用 DATABASE 子句及其參數(shù)時,Visual FoxPro 6.0 將指定的表添加到指定的數(shù)據(jù)庫中。TO
20、 FILE ADDITIVE將查詢結(jié)果輸出到指定的文本文件中。如果文件名未指定路徑,則在默認路徑下創(chuàng)建文件;如果文件名不含擴展名,則默認擴展名為.txt。如果使用 ADDITIVE子句,則查詢結(jié)果添加到指定文本文件的末尾而不覆蓋原文件。TO PRINTER PROMPT設(shè)置輸出到打印機,將查詢結(jié)果輸出到默認的打印機。如果使用 PROMPT參數(shù),則打印前顯示打印對話框,可以調(diào)整打印選項。TO SCREEN 設(shè)置輸出到屏幕,將查詢結(jié)果輸出到 Visual FoxPro 6.0 的主窗口或者當前的用戶活動窗口。WHERE指定篩選記錄的條件或者多個表關(guān)聯(lián)的條件。此處常用的通配符“”(百分號)表示匹配任
21、意個任何字符(包括無任何字符),通配符“_”(下畫線)表示匹配任意的單個字符。ORDER BY ASC | DESC 指定查詢結(jié)果記錄的排序方式。在 SELECT 命令中不用 ORDER BY 子句時,查詢結(jié)果按照記錄的物理存儲次序排序。如果需要改變這種次序,則需要ORDER BY 子句。ORDER BY 子句的參數(shù)是一個或多個(用逗號分隔)排序表達式以及可選的排序方式子句 ASC 或 DESC。當 ORDER BY 子句有多個排序表達式時,查詢結(jié)果記錄先按照排在前面的排序表達式排序,然后依次按照排在后面的排序表達式排序。每個排序表達式后附帶的 ASC 子句表示在按照該排序表達式排序時采用升序
22、方式;DESC 子句表示在按照該排序表達式排序時采用降序方式;不帶 ASC 和 DESC 子句時,默認按升序方式排序。GROUP BY 子句指定查詢結(jié)果記錄的分組方式。一般情況下,含有 GROUP BY 子句的 SELECT命令主要用來完成統(tǒng)計運算。這種 SELECT 命令通常只包含兩類查詢項:用來分組的查詢項和統(tǒng)計運算表達式,其他的查詢項也有查詢結(jié)果,但沒有實際的意義。HAVING ,有時不希望查詢結(jié)果包含分組之后的所有記錄,而希望有條件地選擇分組之后的部分記錄,這時就要用到與 GROUP BY 子句相配合的 HAVING 子句。HAVING 子句的參數(shù)是一個邏輯表達式,指定了選擇分組記錄的
23、條件。使用 HAVING 子句的命令如果沒有使用GROUP BY 子句,則它的作用與 WHERE 子句相同。UNIONALLSELECT 命令把一個 SELECT 語句的最后查詢結(jié)果同另一個 SELECT 語句的最后查詢結(jié)果組合起來。默認情況下,UNION 查詢組合的結(jié)果不含重復(fù)的記錄,如果帶 ALL 子句時,輸出結(jié)果中會出現(xiàn)重復(fù)記錄。在使用 UNION 子句時參數(shù)中不可嵌套 UNION 子句,即一個 SELECT命令僅可含有一個 UNION 子句。兩個 SELECT 命令的查詢結(jié)果中的列數(shù)必須相同。兩個 SELECT查詢結(jié)果中的對應(yīng)列必須有相同的數(shù)據(jù)類型和寬度。只有最后的 SELECT 中可
24、以包含 ORDER BY子句,而且必須按編號指出所輸出的列。如果包含了一個 ORDER BY 子句,將影響整個結(jié)果。3.4【案例 12】多表查詢員工信息案例描述如果查詢中有多個表,可用更新或添加連接來控制查詢選擇的記錄。添加表時會自動顯示連接,使用“聯(lián)接條件”對話框,可改變表之間的連接類型。但是,如果相關(guān)的字段名不匹配,則必須自己創(chuàng)建表間的連接。多表查詢的創(chuàng)建過程與單表查詢的創(chuàng)建基本上相同,只是查詢中涉及多個表的內(nèi)容。用戶可以在創(chuàng)建查詢的同時將表加入到查詢中,也可以在查詢創(chuàng)建好以后再添加表。接下來使用查詢向?qū)В瓿筛鶕?jù)多表查詢記錄的操作。相關(guān)知識在使用 SELECT 查詢時,可以將多個表連接到
25、一起,形成一個“新表”。向查詢中添加表或視圖時,Visual FoxPro 6.0 根據(jù)匹配的字段建議一個可能的表或視圖之間的聯(lián)接。如果使用的數(shù)據(jù)庫中,表或視圖間具有永久關(guān)系,Visual FoxPro 6.0 就利用這些已有的關(guān)系作為默認的聯(lián)接。如果要在查詢中添加數(shù)據(jù)庫表,需要先打開適當?shù)臄?shù)據(jù)庫,運行該數(shù)據(jù)庫。1創(chuàng)建查詢時添加表如果想添加的表不在數(shù)據(jù)庫中,則在“添加表或視圖”對話框中單擊“其他”按鈕,在“打開”對話框中選定想加入的表,單擊“確定”按鈕。在“聯(lián)接條件”對話框中,檢查建議的聯(lián)接。如果 Visual FoxPro 6.0 找不到這樣的匹配字段,則應(yīng)該由設(shè)計者在“聯(lián)接條件”對話框中選
26、擇匹配的字段。2多表查詢中的聯(lián)接在“查詢設(shè)計器”中,拖動表中的字段與另一表中的字段聯(lián)接;或者從“查詢設(shè)計器”工具欄上單擊“添加聯(lián)接”按鈕,這時會顯示“聯(lián)接條件”對話框。添加或變更聯(lián)接時,可選擇聯(lián)接類型來擴充或縮小結(jié)果。創(chuàng)建聯(lián)接的最簡單方法是使用“聯(lián)接條件”對話框。3從查詢中添加或移去表向查詢中添加兩個或多個表。在“查詢設(shè)計器”工具欄中,單擊“添加聯(lián)接”按鈕,在“聯(lián)接條件”對話框中,從兩個表中選擇相關(guān)的字段名,僅當字段的大小相等、數(shù)據(jù)類型相同時才能聯(lián)接,最后單擊“確定”按鈕。4刪除聯(lián)接從“查詢設(shè)計器”中選中聯(lián)接行,再單擊“查詢”“移去聯(lián)接條件”菜單命令;或者在“聯(lián)接”選項卡中選擇聯(lián)接條件,然后單
27、擊“移去”按鈕。5修改聯(lián)接除了篩選和聯(lián)接類型外,還可通過改變聯(lián)接的條件來控制結(jié)果。聯(lián)接不必基于完全匹配的字3.5段,可基于“Like”、“=”、“”或“”條件設(shè)置不同的聯(lián)接關(guān)系。聯(lián)接條件和篩選條件類似,二者都先比較值,然后選出滿足條件的記錄。不同之處在于篩選是將字段值和篩選值進行比較,而聯(lián)接條件是將一個表中的字段值和另一個表中的字段值進行比較。6聯(lián)接類型在多個表的查詢中,表之間的聯(lián)接包括如下四種: 內(nèi)部聯(lián)接:兩個表中僅滿足條件的記錄,這是最普通的聯(lián)接類型。 左聯(lián)接:表中聯(lián)接條件左邊的所有記錄和表中聯(lián)接條件右邊的且滿足聯(lián)接條件的記錄。 右聯(lián)接:表中聯(lián)接條件右邊的所有記錄和表中聯(lián)接條件左邊的且滿足
28、聯(lián)接條件的記錄。 完全聯(lián)接:表中不論是否滿足條件的所有記錄?!景咐?13】限定條件查詢員工工資案例描述在查詢數(shù)據(jù)時,為了更好地找到記錄行,可以指定查詢條件。當需要對查詢所返回的結(jié)果做更多的控制或者搜索滿足兩個條件之一的記錄時,都需要在“篩選”選項卡中加進更多的語句。在 Visual FoxPro 6.0 中,如果在“篩選”選項卡中連續(xù)輸入選擇條件表達式,那么這些表達式自動以邏輯“與”(.AND.)的方式組合起來,如果想使待查找的記錄滿足兩個以上條件中的任意一個,可以使用“添加或”按鈕在這些表達式中間插入邏輯“或”(.OR.)操作符。接下來使用查詢向?qū)?,完成根?jù)限定條件查詢記錄的操作。相關(guān)知識1
29、設(shè)置篩選條件如果想使查詢檢索同時滿足一個以上條件的記錄,只需在“篩選”選項卡中的不同行上列出這些條件,這一系列條件自動以“與”(AND)的方式組合起來,因此只有滿足所有這些條件的記錄才會檢索到。組合兩個過濾器,可以設(shè)置“與”(AND)條件,在“篩選”選項卡中輸入篩選條件,在“邏輯”列中選擇 AND。如果要使查詢檢索到的記錄滿足一系列選定條件中的任意一個時,可以在這些選擇條件中間插入“或”(OR)操作符將這些條件組合起來。需要在兩個過濾器之間添加一個“或”(OR)操作符時,可以選擇一個篩選條件,再在“邏輯”列中選擇“OR”??梢园选芭c”(AND)和“或”(OR)條件組合起來以選擇特定的記錄集。在
30、查詢的條件中,一般都要用到比較關(guān)系運算,比較關(guān)系運算符包括表 3-5-1 所示的一些內(nèi)容。2定向輸出查詢結(jié)果在完成了查詢設(shè)計并指定了輸出目的地后,可以單擊“運行”按鈕啟動該查詢。Visual FoxPro執(zhí)行用“查詢設(shè)計器”產(chǎn)生的 SQL SELECT 語句,并把輸出結(jié)果送到指定的目的地。如果尚未選定輸出目的地,結(jié)果將顯示在“瀏覽”窗口中。單擊“查詢”“查詢?nèi)ハ颉辈藛蚊?,或在“查詢設(shè)計器”工具欄中單擊“查詢?nèi)ハ颉卑粹o,打開“查詢?nèi)ハ颉睂υ捒?,如圖 3-5-14 所示,可以在其中選擇將查詢結(jié)果送往何處。圖 3-5-14“查詢?nèi)ハ颉睂υ捒颉安樵內(nèi)ハ颉睂υ捒蛑械陌粹o作用如表 3-5-2 所示。3查
31、詢結(jié)果設(shè)置(1)刪除重復(fù)記錄重復(fù)記錄是指其中所有字段值均相同的記錄。如果想把查詢結(jié)果中的重復(fù)記錄去掉,只需在“雜項”選項卡中選中“無重復(fù)記錄”復(fù)選框。(2)查詢極值記錄可以使用查詢返回包含指定數(shù)目或指定百分比的特定字段的記錄。例如,查詢可顯示含 10條指定字段最大值或最小值的記錄,或者顯示含有 10% 的指定字段最大值或最小值的記錄。在“雜項”選項卡中頂端可設(shè)置一定數(shù)目或一定百分比的記錄。如果要設(shè)置是否選取最大值或最小值,可設(shè)置查詢的排序順序。降序可查看最大值記錄,升序可查看最小值記錄。如果要檢索一定數(shù)目或一定百分比的極值記錄,可以在“排序依據(jù)”選項卡中選擇要檢索其極值的字段,接著選取“降序”
32、顯示最大值或“升序”顯示最小值。如果還要按其他字段排序,可按列表順序?qū)⑵浞旁跇O值字段的后面。在“雜項”選項卡“記錄個數(shù)”文本框中,鍵入想要檢索的最大值或最小值的數(shù)目。如果要顯示百分比,可以選中“百分比”復(fù)選框。(3)在查詢輸出中添加表達式在“字段”選項卡底部,可以在查詢輸出中加入函數(shù)和表達式??梢燥@示列表來查看可用的函數(shù)或者直接向組合框中鍵入表達式。如果希望字段名中包含表達式,可以添加別名。如果要在查詢輸出中添加表達式,在“字段”選項卡的“函數(shù)和表達式”文本框中鍵入表達式?;蛘邌螕?按鈕,打開“表達式生成器”對話框,在“表達式”文本框中鍵入表達式即可。單擊“添加”按鈕,在“選定字段”列表框中鍵
33、入表達式。需要注意的是,計算中將忽略 NULL值,有關(guān)表達式中 NULL 值的詳細內(nèi)容,請搜索“NULL 值”。不同于簡單搜索與一個或多個字段相匹配的記錄,使用一個表達式可以組合兩個字段,或基于一個字段執(zhí)行某計算并且搜索匹配該組合或計算字段的記錄。定義查詢輸出后,可組織出現(xiàn)在結(jié)果中的記錄,方法是對輸出字段排序和分組。也可篩選出現(xiàn)在結(jié)果中的記錄組。(4)排序排序決定了查詢輸出結(jié)果中記錄或行的先后順序。在“排序依據(jù)”選項卡中,可以設(shè)置查詢的排序次序,排序次序決定了查詢輸出中記錄或行的排列順序。首先從“選定字段”列表框中選取要使用的字段,并把它們移到“排序條件”列表框中,然后根據(jù)查詢結(jié)果中所需的順序
34、排列這些字段。為了調(diào)整排序字段的重要性,可以在“排序條件”列表框中,將字段左側(cè)的按鈕拖到相應(yīng)的位置上。通過設(shè)置“排序選項”區(qū)域中的按鈕,可以確定升序或降序的排序次序。在“排序依據(jù)”選項卡的“排序條件”列表框中,每一個排序字段都帶有一個上箭頭或下箭頭,該箭頭表示按此字段排序時,是升序排序還是降序排序。(5)分組查詢所謂分組就是將一組類似的記錄壓縮成一個結(jié)果記錄,這樣就可以完成基于一組記錄的計算。例如,想找到某一特定地區(qū)所有訂貨的總和,不用單獨查看所有的記錄,可以把來自相同地區(qū)的所有記錄合成為一個記錄,并獲得來自該地區(qū)的所有訂貨的總和。如果要控制記錄的分組,可使用“查詢設(shè)計器”中的“分組依據(jù)”選項
35、卡。分組在與某些合計函數(shù)聯(lián)合使用時效果最好,如 SUM、COUNT、AVG 等。要設(shè)置分組選項,在“字段”選項卡中,在“函數(shù)和表達式”文本框中鍵入表達式?;蛘邌螕舭粹o,打開“表達式生成器”對話框,在“表達式”文本框中鍵入表達式。單擊“添加”按鈕,在“選定字段”列表框中放置表達式。在“分組依據(jù)”選項卡中,加入分組結(jié)果依據(jù)的表達式。選擇分組,如果要對已進行過分組或壓縮的記錄而不是對單個記錄設(shè)置篩選,可在“分組依據(jù)”選項卡中單擊“滿足條件”單選按鈕,可使用字段名、字段名中的合計函數(shù)或者“字段名”下拉列表框中其余的表達式。若需要為一個組設(shè)置條件,可以在“分組依據(jù)”選項卡上,單擊“滿足條件”按鈕,打開“
36、滿足條件”對話框,選定一個函數(shù),并在“字段名”下拉列表框中選定字段名,單擊“確定”按鈕即可。3.6【案例 14】使用視圖查詢、案例描述視圖是一個定制的虛擬表定義,可以是本地的、遠程的或帶參數(shù)的。視圖可引用一個或多個表,或者引用其他視圖。視圖是可更新的,它可引用遠程表。視圖是數(shù)據(jù)庫中的一個特有功能,只有在包含視圖的數(shù)據(jù)庫打開時,才能使用視圖。視圖建立后,可以像數(shù)據(jù)庫表一樣顯示和更改數(shù)據(jù),兼有表和查詢的特點。與查詢類似的地方是,可以用來從一個或多個相關(guān)聯(lián)的表中提取有用信息;與表類似的地方是,可以用來更新其中的信息,并將更新結(jié)果永久保存在磁盤上??梢杂靡晥D使數(shù)據(jù)暫時從數(shù)據(jù)庫中分離成為自由數(shù)據(jù),以便在主系統(tǒng)之外收集和修改數(shù)據(jù)。接下來使用查詢向?qū)?,完成使用視圖查詢記錄的操作。相關(guān)知識創(chuàng)建本地視圖可以使用“視圖向?qū)А薄耙晥D設(shè)計器”等完成。創(chuàng)建視圖和創(chuàng)建查詢的過程類似,主要的差別在于視圖是可更新的,而查詢則不行。查詢是一種 SQL SELECT 語句,作為文本文件以擴展名.qpr 存儲。如果想從本地或遠程表中提取一組可以更新的數(shù)據(jù),就需要使用視圖。1視圖設(shè)計器的使用使用
溫馨提示
- 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)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 【正版授權(quán)】 ISO/IEC GUIDE 21-1:2005 EN Regional or national adoption of International Standards and other International Deliverables - Part 1: Adoption of International Standards
- 快遞行業(yè)配送服務(wù)協(xié)議
- 收費站度工作總結(jié)
- 守候作文900字15篇
- 藝術(shù)鑒賞考試試題及答案
- 胰腺炎考試試題及答案
- 六一公司成人活動方案
- 六一孕婦活動方案
- 六一居家律動活動方案
- 六一拓印活動方案
- GB/T 18268.1-2010測量、控制和實驗室用的電設(shè)備電磁兼容性要求第1部分:通用要求
- 小升初英語教學(xué)第一課課件
- 2022年清流縣輔警招聘筆試試題及答案解析
- 商務(wù)西班牙語210句
- 上海市上海師大附中2023學(xué)年化學(xué)高二下期末調(diào)研模擬試題(含解析)
- Unit 10 I'd like some noodles Section A 1a-1c 第1課時-課件(共15張PPT)
- 變電站主接地網(wǎng)施工工藝流程及操作要點
- 表C.0.1 系統(tǒng)材料和設(shè)備進場檢查、系統(tǒng)線路設(shè)計檢查、安裝質(zhì)量檢查記錄表
- 《牽手兩代——家長課程》小學(xué)六年級教案
- EN779-2012一般通風過濾器——過濾性能測定(中文版)
- 專利培訓(xùn)課件--專利基礎(chǔ)知識
評論
0/150
提交評論