關於資料庫系統的正確敘述是
⑴ 有關資料庫的描述,正確的是()
B
A錯,資料庫管理系統是資料庫的操作平台,和資料庫不是一個概念,設計資料庫管理系統更不靠譜了,資料庫是用來存儲書u,供人使用的,達到數據共享的目的。就好比你不能說使用軟體是為了設計操作系統吧
B對,以前由於硬體設施的限制,內存只有幾M,硬碟也不過幾十M,所以要解決存儲問題是很關鍵的.而現在科技發展迅猛,內存,硬碟已不是主要制約因素,而是實現資源共享問題!! 所以歸根結底還是共享!
數據具有獨立性,包括資料庫中資料庫的邏輯結構和應用程序相互獨立,也包括數據物理結構的變化不影響數據的邏輯結構
C錯,數據的物理結構是什麼
資料庫物理結構主要指數據的存放位置和存儲結構,包括關系、索引、聚簇、日誌、備份等的存儲安排和存儲結構
數據的邏輯結構它是用戶所看到和使用的資料庫,表示了一個或一些特定用戶使用的數據集合,即邏輯記錄的集合。 ,即存儲位置的改變並不影響邏輯關系
⑵ 10. _____是存儲在計算機內有結構的數據的集合。
資料庫是存儲在計算機內所有結構的數據的集合。
資料庫是「按照數據結構來組織、存儲和管理數據的倉庫」。在經濟管理的日常工作中,常常需要把某些相關的數據放進這樣「倉庫」,並根據管理的需要進行相應的處理。
例如,企業或事業單位的人事部門常常要把本單位職工的基本情況(職工號、姓名、年齡、性別、籍貫、工資、簡歷等)存放在表中,這張表就可以看成是一個資料庫。有了這個"數據倉庫"我們就可以根據需要隨時查詢某職工的基本情況,也可以查詢工資在某個范圍內的職工人數等等。
這些工作如果都能在計算機上自動進行,那我們的人事管理就可以達到極高的水平。此外,在財務管理、倉庫管理、生產管理中也需要建立眾多的這種"資料庫",使其可以利用計算機實現財務、倉庫、生產的自動化管理。
企業也可以藉助資料庫管理系統進行資料庫的管理。例如進行數據存儲、截取、安全保障、備份等基礎工作。
(2)關於資料庫系統的正確敘述是擴展閱讀
資料庫的基本結構分三個層次,反映了觀察資料庫的三種不同角度。
(1)物理數據層。
它是資料庫的最內層,是物理存貯設備上實際存儲的數據的集合。這些數據是原始數據,是用戶加工的對象,由內部模式描述的指令操作處理的位串、字元和字組成。
(2)概念數據層。
它是資料庫的中間一層,是資料庫的整體邏輯表示。指出了每個數據的邏輯定義及數據間的邏輯聯系,是存貯記錄的集合。它所涉及的是資料庫所有對象的邏輯關系,而不是它們的物理情況,是資料庫管理員概念下的資料庫。
(3)邏輯數據層。
它是用戶所看到和使用的資料庫,表示了一個或一些特定用戶使用的數據集合,即邏輯記錄的集合。資料庫不同層次之間的聯系是通過映射進行轉換的。
⑶ 【高中計算機】在下列關於資料庫系統的敘述中,正確的是
計算機硬體設備用來支撐應用程序,資料庫等應用
⑷ VF的題目 資料庫原理與應用 求高手幫忙做做 謝謝了
一、 填空
1、在VFP中通過選擇菜單來執行VFP命令與在 __命令窗口____輸入逐條命令,得到結果是一樣的。
2、若ABC=」遠程網路教育」,則 ? SUBSTR(ABC,LEN(ABC)/6+7,4)的結果是__教育_______。
3、設Y=1,則執行命令 ? Y>Y+1的結果是____.f.______。
4、學生檔案表中有性別 ( C , 2 ),和民族( C , 8 ), 要求找出所有民族是回族的男同學記錄的查找條件是_____性別='男' and 民族='回族'_____。
5、打開一個數據表文件後文件,如果當前記錄指針是在第10個記錄上,則用函數RECNO()函數測試,其結果一定是_____10_____。
6、在數據表中, 圖片中數據應存儲在____General_______欄位中。
7、如果查詢是基於多個表的, 這幾個表之間必須建立__外鍵________關系。
8、執行下列命令後,表DB1的當前記錄為__6_____,表DB2的當前記錄為 ______1___。
SELECT 1
USE DB1
SELECT 2
USE DB2
SELECT 1
SKIP 5
二、 簡答題
1、 什麼是關系資料庫 ? 其特點有哪些 ?
關系資料庫,是建立在關系資料庫模型基礎上的資料庫,藉助於集合代數等概念和方法來處理資料庫中的數據。
其特徵有:
1)實現數據共享2)減少數據的冗餘度3)數據的獨立性4)數據實現集中控制數據一致性和可維護性,以確保數據的安全性和可靠性
2、 在VFP中 , 查詢和視圖有何區別 ?
查詢生成的結果,只可看,不可改。
視圖生成的結果,可看,可改,直接影像資料庫內表的內容。
3、 在程序設計中經常使用哪些輸入 / 輸出命令 ? 試比較其異同點 。
input 輸入命令和 print 輸出命令或?輸出命令
他們一個主要負責數據的採集,另一個負責結果的顯示或列印
4、寫出編製程序文件和運行程序文件的命令。
modi comm aa.prg 編製程序命令
do aa.prg
三、選擇題
1、下面關於資料庫系統的敘述中 , 正確的是(d )。
(A)資料庫系統只是比文件系統管理的數據更多
(B)資料庫系統中的數據的一致性是指數據類型一致
(C)資料庫系統避免了數據冗餘
(D)資料庫系統減少了數據冗餘
2、下面有關關系資料庫主要特點的敘述中,錯誤的是(c ) 。
(A)關系中每個屬性必須是不可分割的數據單元。
(B)關系中每一列元素必須是類型相同的數據。
(C)同一個關系中不能有相同的欄位,也不能有相同的記錄。
(D)關系的行、列次序不能任意交換,否則會影響其信息內容。
3、若M=」 95.5」 , 則執行命令 ? 30+&M的結果是 ( b )。
(A)3095.5 (B)125.50 (C)30+&M (D)30
4、已知工資=560 , 職稱=」副教授」 , 性別=」男」 , 結果為假的邏輯表達式是(b )。
(A)工資 > 500 .AND. 職稱=」副教授」 .AND. 性別=」男」
(B)性別=」女」 .OR..NOT. 職稱=」助教」
(C)工資 > 550 .AND. 職稱=」副教授」 .OR. 職稱=」講師」
(D)工資 =550 .AND. (職稱=」教授」 .OR. 性別=」男」)
5、某」職工」表中有職稱(C)和工資(N)兩個欄位,計算所有職稱為高工或工程師的工資總額,並將結果賦給內存變數ZGZ,應使用命令(a )。
(A)SUM 工資 TO ZGZ FOR職稱=」 工程師」 .OR. 職稱=」 高工」
(B)SUM 工資 TO ZGZ FOR職稱=」 工程師」 .OR. 」 高工」
(C)SUM 工資 TO ZGZ FOR職稱=」 工程師」 .AND. 職稱=」 高工」
(D)SUM 工資 TO ZGZ FOR職稱=」 工程師」 .AND. 」 高工」
6、下列數據中屬於字元型數據是( b) 。
A、06/08/04 B、[06/08/04] C、{^06/08/04} D、(06/08/04)
7、表單文件的擴展名為(scx )。
A、FOM B、SCX C、FRM D、VCX
8、在VFP中,邏輯型、日期型和備注型欄位的長度分別是(c ) 。
A、1, 8, 128 B、1, 8, 10 C、1, 8, 4 D、1, 10, 4
一、 填空
1、在VFP中通過選擇菜單來執行VFP命令與在 __命令窗口____輸入逐條命令,得到結果是一樣的。
2、若ABC=」遠程網路教育」,則 ? SUBSTR(ABC,LEN(ABC)/6+7,4)的結果是__教育_______。
3、設Y=1,則執行命令 ? Y>Y+1的結果是____.f.______。
4、學生檔案表中有性別 ( C , 2 ),和民族( C , 8 ), 要求找出所有民族是回族的男同學記錄的查找條件是_____性別='男' and 民族='回族'_____。
5、打開一個數據表文件後文件,如果當前記錄指針是在第10個記錄上,則用函數RECNO()函數測試,其結果一定是_____10_____。
6、在數據表中, 圖片中數據應存儲在____General_______欄位中。
7、如果查詢是基於多個表的, 這幾個表之間必須建立__外鍵________關系。
8、執行下列命令後,表DB1的當前記錄為__6_____,表DB2的當前記錄為 ______1___。
SELECT 1
USE DB1
SELECT 2
USE DB2
SELECT 1
SKIP 5
二、 簡答題
1、 什麼是關系資料庫 ? 其特點有哪些 ?
關系資料庫,是建立在關系資料庫模型基礎上的資料庫,藉助於集合代數等概念和方法來處理資料庫中的數據。
其特徵有:
1)實現數據共享2)減少數據的冗餘度3)數據的獨立性4)數據實現集中控制數據一致性和可維護性,以確保數據的安全性和可靠性
2、 在VFP中 , 查詢和視圖有何區別 ?
查詢生成的結果,只可看,不可改。
視圖生成的結果,可看,可改,直接影像資料庫內表的內容。
3、 在程序設計中經常使用哪些輸入 / 輸出命令 ? 試比較其異同點 。
input 輸入命令和 print 輸出命令或?輸出命令
他們一個主要負責數據的採集,另一個負責結果的顯示或列印
4、寫出編製程序文件和運行程序文件的命令。
modi comm aa.prg 編製程序命令
do aa.prg
三、選擇題
1、下面關於資料庫系統的敘述中 , 正確的是(d )。
(A)資料庫系統只是比文件系統管理的數據更多
(B)資料庫系統中的數據的一致性是指數據類型一致
(C)資料庫系統避免了數據冗餘
(D)資料庫系統減少了數據冗餘
2、下面有關關系資料庫主要特點的敘述中,錯誤的是(c ) 。
(A)關系中每個屬性必須是不可分割的數據單元。
(B)關系中每一列元素必須是類型相同的數據。
(C)同一個關系中不能有相同的欄位,也不能有相同的記錄。
(D)關系的行、列次序不能任意交換,否則會影響其信息內容。
3、若M=」 95.5」 , 則執行命令 ? 30+&M的結果是 ( b )。
(A)3095.5 (B)125.50 (C)30+&M (D)30
4、已知工資=560 , 職稱=」副教授」 , 性別=」男」 , 結果為假的邏輯表達式是(b )。
(A)工資 > 500 .AND. 職稱=」副教授」 .AND. 性別=」男」
(B)性別=」女」 .OR..NOT. 職稱=」助教」
(C)工資 > 550 .AND. 職稱=」副教授」 .OR. 職稱=」講師」
(D)工資 =550 .AND. (職稱=」教授」 .OR. 性別=」男」)
5、某」職工」表中有職稱(C)和工資(N)兩個欄位,計算所有職稱為高工或工程師的工資總額,並將結果賦給內存變數ZGZ,應使用命令(a )。
(A)SUM 工資 TO ZGZ FOR職稱=」 工程師」 .OR. 職稱=」 高工」
(B)SUM 工資 TO ZGZ FOR職稱=」 工程師」 .OR. 」 高工」
(C)SUM 工資 TO ZGZ FOR職稱=」 工程師」 .AND. 職稱=」 高工」
(D)SUM 工資 TO ZGZ FOR職稱=」 工程師」 .AND. 」 高工」
6、下列數據中屬於字元型數據是( b) 。
A、06/08/04 B、[06/08/04] C、{^06/08/04} D、(06/08/04)
7、表單文件的擴展名為(scx )。
A、FOM B、SCX C、FRM D、VCX
8、在VFP中,邏輯型、日期型和備注型欄位的長度分別是(c ) 。
A、1, 8, 128 B、1, 8, 10 C、1, 8, 4 D、1, 10, 4
⑸ 關於ACCESS資料庫系統,下列說法中( )是正確的1.每個表都必須指定主鍵2.可以將EXCEL中的數據導入Access
B
4 的同時打開多個資料庫在一個 access 進程中是不行的,但可以打開多個 acess 程序來打開多個資料庫。
⑹ 資料庫管理作業,大蝦幫幫忙,緊急!!!
1-5 ABABB
6-10 BBBAD
11-15 CCABA
16-22 BDBCBDA
嗯,應該有兩三道不能確定~~
⑺ 在下列關於資料庫系統的敘述中,正確的是
B資料庫的數據項之間和記錄之間都存在聯系
對
⑻ 關於資料庫的描述,正確的是( )。 問
一下內容純屬抄襲~,希望有點用~8.2聚合函數的應用聚合函數在資料庫數據的查詢分析中,應用十分廣泛。本節將分別對各聚合函數的應用進行說明。8.2.1求和函數——SUM()求和函數SUM()用於對數據求和,返回選取結果集中所有值的總和。語法如下。SELECTSUM(column_name)FROMtable_name說明:SUM()函數只能作用於數值型數據,即列column_name中的數據必須是數值型的。實例1SUM函數的使用從TEACHER表中查詢所有男教師的工資總數。TEACHER表的結構和數據可參見5.2.1節的表5-1,下同。實例代碼:SELECTSUM(SAL)ASBOYSALFROMTEACHERWHERETSEX='男'運行結果如圖8.1所示。圖8.1TEACHER表中所有男教師的工資總數實例2SUM函數對NULL值的處理從TEACHER表中查詢年齡大於40歲的教師的工資總數。實例代碼:SELECTSUM(SAL)ASOLDSALFROMTEACHERWHEREAGE>=40運行結果如圖8.2所示。圖8.2TEACHER表中所有年齡大於40歲的教師的工資總數當對某列數據進行求和時,如果該列存在NULL值,則SUM函數會忽略該值。8.2.2計數函數——COUNT()COUNT()函數用來計算表中記錄的個數或者列中值的個數,計算內容由SELECT語句指定。使用COUNT函數時,必須指定一個列的名稱或者使用星號,星號表示計算一個表中的所有記錄。兩種使用形式如下。*COUNT(*),計算表中行的總數,即使表中行的數據為NULL,也被計入在內。*COUNT(column),計算column列包含的行的數目,如果該列中某行數據為NULL,則該行不計入統計總數。1.使用COUNT(*)函數對表中的行數計數COUNT(*)函數將返回滿足SELECT語句的WHERE子句中的搜索條件的函數。實例3COUNT(*)函數的使用查詢TEACHER表中的所有記錄的行數。實例代碼:SELECTCOUNT(*)ASTOTALITEMFROMTEACHER運行結果如圖8.3所示。圖8.3使用COUNT(*)函數對表中的行數計數在該例中,SELECT語句中沒有WHERE子句,那麼認為表中的所有行都滿足SELECT語句,所以SELECT語句將返回表中所有行的計數,結果與5.2.1節的表5-1列出的TEACHER表的數據相吻合。如果DBMS在其系統表中存儲了表的行數,COUNT(*)將很快地返回表的行數,因為這時,DBMS不必從頭到尾讀取表,並對物理表中的行計數,而直接從系統表中提取行的計數。而如果DBMS沒有在系統表存儲表的行數,將具有NOTNULL約束的列作為參數,使用COUNT()函數,則可能更快地對錶行計數。注意COUNT(*)函數將准確地返回表中的總行數,而僅當COUNT()函數的參數列沒有NULL值時,才返回表中正確的行計數,所以僅當受NOTNULL限制的列作為參數時,才可使用COUNT()函數代替COUNT(*)函數。2.使用COUNT()函數對一列中的數據計數COUNT()函數可用於對一列中的數據值計數。與忽略了所有列的COUNT(*)函數不同,COUNT()函數逐一檢查一列(或多列)中的值,並對那些值不是NULL的行計數。實例4查詢多列中所有記錄的行數查詢TEACHER表中的TNO列、TNAME列以及SAL列中包含的所有數據行數。實例代碼:SELECTCOUNT(TNO)ASTOTAL_TNO,COUNT(TNAME)ASTOTAL_TNAME,COUNT(SAL)ASTOTAL_SALFROMTEACHER運行結果如圖8.4所示。圖8.4使用COUNT()函數對一列中的數據計數可見,TNO列與TNAME列由於其中不含有NULL值,所以其計數與使用COUNT(*)函數對TEACHER表中的記錄計數結果相一致,而SAL列由於其中有兩行數據為NULL,所以這兩列沒有被計入在內,計數結果也就是8。3.使用COUNT()函數對多列中的數據計數COUNT()函數不僅可用於對一列中的數據值計數,也可以對多列中的數據值計數。如果對多列計數,則需要將要計數的多列通過連接符連接後,作為COUNT()函數的參數。下面將結合具體的多列計數的實例,說明其使用過程。*說明關於如何使用連接符連接多列可參見本書的7.2節。實例5使用COUNT()函數對多列中的數據計數統計TEACHER表中的TNO列、TNAME列和SAL列中分別包含的數據行數,以及TNO列和TNAME列、TNAME列和SAL列一起包含的數據行數。實例代碼:SELECTCOUNT(TNO)ASTOTAL_TNO,COUNT(TNAME)ASTOTAL_TNAME,COUNT(SAL)ASTOTAL_SAL,COUNT(CAST(TNOASVARCHAR(5))+TNAME)AST_NONAME,COUNT(TNAME+CAST(SALASVARCHAR(5)))AST_NAMESALFROMTEACHER運行結果如圖8.5所示。圖8.5使用COUNT()函數對多列中的數據計數在進行兩列的連接時,由於它們的數據類型不一致,因此要使用CAST表達式將它們轉換成相同的數據類型。在7.2.1節已經講過,如果在被連接的列中的任何一列有NULL值時,那麼連接的結果為NULL,則該列不會被COUNT()函數計數。注意COUNT()函數只對那些傳遞到函數中的參數不是NULL的行計數。4.使用COUNT函數對滿足某種條件的記錄計數也可以在SELECT語句中添加一些子句約束來指定返回記錄的個數。實例6使用COUNT函數對滿足某種條件的記錄計數查詢TEACHER表中女教師記錄的數目。實例代碼:SELECTCOUNT(*)='女'運行結果如圖8.6所示。圖8.6使用COUNT函數對滿足某種條件的記錄計數這時結果為6而不是前面的所有記錄10。之所以可以通過WHERE子句定義COUNT()函數的計數條件,這與SELECT語句各個子句的執行順序是分不開的。前面已經講過,DBMS首先執行FROM子句,而後是WHERE子句,最後是SELECT子句。所以COUNT()函數只能用於滿足WHERE子句定義的查詢條件的記錄。沒有包括在WHERE子句的查詢結果中的記錄,都不符合COUNT()函數。8.2.3最大/最小值函數—MAX()/MIN()當需要了解一列中的最大值時,可以使用MAX()函數;同樣,當需要了解一列中的最小值時,可以使用MIN()函數。語法如下。SELECTMAX(column_name)/MIN(column_name)FROMtable_name說明:列column_name中的數據可以是數值、字元串或是日期時間數據類型。MAX()/MIN()函數將返回與被傳遞的列同一數據類型的單一值。實例7MAX()函數的使用查詢TEACHER表中教師的最大年齡。實例代碼:SELECTMAX(AGE)ASMAXAGEFROMTEACHER運行結果如圖8.7所示。圖8.7TEACHER表中教師的最大年齡然而,在實際應用中得到這個結果並不是特別有用,因為經常想要獲得的信息是具有最大年齡的教師的教工號、姓名、性別等信息。然而SQL不支持如下的SELECT語句。SELECTTNAME,DNAME,TSEX,MAX(AGE)FROMTEACHER因為聚合函數處理的是數據組,在本例中,MAX函數將整個TEACHER表看成一組,而TNAME、DNAME和TSEX的數據都沒有進行任何分組,因此SELECT語句沒有邏輯意義。同樣的道理,下面的代碼也是無效的。SELECTTNAME,DNAME,TSEX,SAL,AGEFROMTEACHERWHEREAGE=MAX(AGE)解決這個問題的方法,就是在WHERE子句中使用子查詢來返回最大值,然後再基於這個返回的最大值,查詢相關信息。實例8在WHERE子句中使用子查詢返回最大值查詢TEACHER表中年紀最大的教師的教工號、姓名、性別等信息。實例代碼:SELECTTNAME,DNAME,TSEX,SAL,AGEFROMTEACHERWHEREAGE=(SELECTMAX(AGE)FROMTEACHER)運行結果如圖8.8所示。圖8.8在WHERE子句中使用子查詢返回最大值MAX()和MIN()函數不僅可以作用於數值型數據,也可以作用於字元串或是日期時間數據類型的數據。實例9MAX()函數用於字元型數據如下面代碼:SELECTMAX(TNAME)ASMAXNAMEFROMTEACHER運行結果如圖8.9所示。圖8.9在字元串數據類型中使用MAX的結果可見,對於字元串也可以求其最大值。*說明對字元型數據的最大值,是按照首字母由A~Z的順序排列,越往後,其值越大。當然,對於漢字則是按照其全拼拼音排列的,若首字元相同,則比較下一個字元,以此類推。當然,對與日期時間類型的數據也可以求其最大/最小值,其大小排列就是日期時間的早晚,越早認為其值越小,如下面的實例。實例10MAX()、MIN()函數用於時間型數據從COURSE表中查詢最早和最晚考試課程的考試時間。其中COURSE表的結構和數據可參見本書6.1節的表6-1。實例代碼:SELECTMIN(CTEST)ASEARLY_DATE,MAX(CTEST)ASLATE_DATEFROMCOURSE運行結果如圖8.10所示。圖8.10COURSE表中最早和最晚考試課程的考試時間可見,返回結果的數據類型與該列定義的數據類型相同。注意確定列中的最大值(最小值)時,MAX()(MIN())函數忽略NULL值。但是,如果在該列中,所有行的值都是NULL,則MAX()/MIN()函數將返回NULL值。8.2.4均值函數——AVG()函數AVG()用於計算一列中數據值的平均值。語法如下。SELECTAVG(column_name)FROMtable_name說明:AVG()函數的執行過程實際上是將一列中的值加起來,再將其和除以非NULL值的數目。所以,與SUM()函數一樣,AVG()函數只能作用於數值型數據,即列column_name中的數據必須是數值型的。實例11AVG()函數的應用從TEACHER表中查詢所有教師的平均年齡。實例代碼:SELECTAVG(AGE)ASAVG_AGEFROMTEACHER運行結果如圖8.11所示。圖8.11TEACHER表中所有教師的平均年齡在計算平均值時,AVG()函數將忽略NULL值。因此,如果要計算平均值的列中有NULL值,計算均值時,要特別注意。實例12AVG()函數對NULL值的處理從TEACHER表中查詢所有教師的平均工資。實例代碼:SELECTAVG(SAL)ASAVG_AGE1,SUM(SAL)/COUNT(*)ASAVG_AGE2,SUM(SAL)/COUNT(SAL)ASAVG_AGE3FROMTEACHER運行結果如圖8.12所示。圖8.12TEACHER表中所有教師的平均工資可以發現得到了不同的結果。實際上,「AVG(SAL)」與「SUM(SAL)/COUNT(SAL)」語句是等價的。因為AVG(SAL)語句的執行過程實際上是將SAL列中的值加起來,再將其和(也就等價於SUM(SAL))除以非NULL值的數目(也就等價於COUNT(SAL))。而語句「SUM(SAL)/COUNT(*)」則不然,因為COUNT(*)返回的是表中所有記錄的個數,而不管SAL列中的數值是否為NULL。注意AVG()函數在計算一列的平均值時,忽略NULL值。但是,如果在該列中,所有行的值都是NULL,則AVG()函數將返回NULL值。如果不想對列中的所有值求平均,則可在WHERE子句中使用搜索條件來限制用於計算均值的行。實例13在WHERE子句中使用搜索條件來限制用於計算均值的行從TEACHER表中查詢所有計算機系教師的平均年齡。實例代碼:SELECTAVG(AGE)ASAVGCOMPUTER_AGEFROMTEACHERWHEREDNAME='計算機'運行結果如圖8.13所示。圖8.13TEACHER表中所有計算機系教師的平均年齡當執行SELECT語句時,DBMS將表中的每行對WHERE子句中的搜索條件「DNAME='計算機'」求值。只有那些搜索條件為True時,行中的AGE值才傳到均值函數AVG(AGE)中。當然,除了顯示表中某列的平均值,還可用AVG()函數作為WHERE子句的一部分。與前面介紹的MAX()函數一樣,不能直接用於WHERE子句,必須以子查詢的形式。實例14AVG()函數作為WHERE子句中搜索條件的一部分從TEACHER表中查詢所有年齡高於平均年齡的教師的信息。實例代碼:SELECT*FROMTEACHERWHEREAGE>=(SELECTAVG(AGE)FROMTEACHER)ORDERBYAGE運行結果如圖8.14所示。圖8.14TEACHER表中所有年齡高於平均年齡的教師的信息8.2.5聚合分析的重值處理前面介紹的5種聚合函數,可以作用於所選列中的所有數據(不管列中的數據是否有重置),也可以只對列中的非重值進行處理,即把重復的值只取一次進行聚合分析。當然,對於MAX()/MIN()函數來講,重值處理意義不大。可以使用ALL關鍵字指明對所選列中的所有數據進行處理,使用DISTINCT關鍵字指明對所選列中的非重值數據進行處理。以AVG()函數為例,語法如下。SELECTAVG([ALL/DISTINCT]column_name)FROMtable_name說明:[ALL/DISTINCT]在預設狀態下,默認是ALL關鍵字,即不管是否有重值,處理所有數據。其他聚合函數的用法與此相同。注意MicrosoftAccess資料庫不支持在聚合函數中使用DISTINCT關鍵字。實例15聚合分析的重值處理從TEACHER表中查詢工資SAL列中存在的所有記錄數。實例代碼:SELECTCOUNT(ALLSAL)ASALLSAL_COUNTFROMTEACHER運行結果如圖8.15所示。圖8.15TEACHER表中工資SAL列中存在的所有記錄數當然,在代碼中去除ALL關鍵字,也可以得到相同的結果。而如果從TEACHER表中,查詢工資SAL列中存在的不同記錄的數目,可採用如下代碼。SELECTCOUNT(DISTINCTSAL)ASDISTINCTSAL_COUNTFROMTEACHER運行結果如圖8.16所示。圖8.16TEACHER表中SAL列存在的不同記錄的數目對比兩個結果,使用DISTINCT關鍵字後,工資SAL列中的重值並沒有列入統計的范圍之內。另外還要強調一點,在所有5種聚合函數中,除了COUNT(*)函數外,其他的函數在計算過程中都忽略NULL值,即把NULL值的行排除在外,不進行分析。8.2.6聚合函數的組合使用前面介紹的實例中,聚合函數都是單獨使用的。聚合函數也可以組合使用,即在一條SELECT語句中,可以使用多個聚合函數。實例16使用多個聚合函數如下面的代碼:SELECTCOUNT(*)ASnum_items,MAX(SAL)ASmax_sal,Min(AGE)ASmin_age,SUM(SAL)/COUNT(SAL)ASavg_sal,AVG(DISTINCTSAL)ASdisavg_salFROMTEACHER運行結果如圖8.17所示。圖8.17聚合函數的組合應用該例在一條SELECT語句中,幾乎用到了所有的聚合函數。其中num_items為TEACHER表所有記錄的條目,max_sal為TEACHER表中記錄的最高工資,min_age為TEACHER表中記錄的最小年齡,avg_sal為所有TEACHER表中的工資記錄的平均值,disavg_sal為TEACHER表中所有不同的工資記錄的平均值。