《資料庫入門程式.ppt.ppt》由会员分享,可在线阅读,更多相关《資料庫入門程式.ppt.ppt(350页珍藏版)》请在三一办公上搜索。
1、,Java系列概論資料庫入門程式Java System Concepts and Database Programming 賈蓉生 胡大源 林金池 編著,第一篇,Java資料庫環境,本書在眾多資料庫中,選定Java/Access資料庫系統,以實作方式表現資料庫之功能。Access應屬最方便且功能不輸其他者,凡有Office的電腦,開機即可使用,無需另添購軟體。Java是功能強大的物件導向語言,本身即擁有網路功能,是多數網路電玩採用的設計語言,也是多數大銀行建立網路銀行的設計語言,本書使用Java剖析資料庫之各項應用。,第一章,Java系統安裝,1-1 簡介,本系列書籍使用標準版J2SE,亦即標
2、準版開發套件(J2SE Development Kit),簡稱為jdk。讀者可於網站(http:/)下載、或使用本書隨書光碟提供之Java系統安裝程式,如何安裝、如何設定?請參考本章執行步驟。本章內容包括安裝Java 系統軟體(jdk-6.0)、設定Java環境、編輯第一個Java程式、編譯Java程式、執行類別檔案。,1-2 安裝Java 系統軟體(jdk-6.0),jdk-6.0為Java程式之系統軟體,讀者可於“http:/”免費下載昇陽(Sun)之最新版、或使用本書光碟C:BookJavaVol_4System已備妥之執行檔“jdk-6u4-windows-i586-p.exe”。,1
3、-3 設定Java環境,Java之執行式均備儲於C:Program FilesJavajdk1.6.0_04bin目錄內(如下圖)。當要編譯Java程式、或執行Java程式碼時,必須先將該程式或程式碼移置於此目錄內,才可執行,甚為不便。,1-4 編輯第一個Java程式,可儲存Java程式之編輯工具非常多,筆者認為“記事本”最為樸實,負擔輕、效率高,因此建議讀者以“記事本”為Java程式之編輯器。,第二章,第一個Java資料庫應用,2-1 簡介,我們可以關聯代數(Relation Algebra)輕易地解釋非常困難的查詢邏輯、並藉SQL資料庫語言實作執行,而Java却可流暢地驅動SQL執行各類查
4、詢邏輯。在尚未真正進入資料庫精髓之前,為了讓讀者先觸摸Java與Access之關係,本章將片段基礎介紹:建立資料庫、設定ODBC、建立資料表、輸入資料、讀取資料。,2-2 建立Access資料庫,本書使用Java/Access系統,以Access2007為範例資料庫(如要使用其他資料庫請自行按規定轉換),本節以手動於目錄C:BookJavaVol_4Programch0202_2建立資料庫Book.accdb。,2-3 設定ODBC,當資料庫建立完成後(如前節之Book.accdb),我們可立即以手動方式建立資料表(Data Tables)、輸入/讀取資料。但却無法藉由Win作業系統之應用程式
5、來建立資料表、輸入/讀取資料。如果要藉由Win作業系統之應用程式來建立資料表、輸入/讀取資料,必須先設定ODBC(Open Database Connectivity),用以連通Win作業系統與資料庫。,2-4 建立資料表,資料表(Data Relation Tabes)為儲存資料的表格,包括欄位(Field)與資料型態(Type)。本節將分別介紹:手動資料表(by hands)、Java資料表(by Java)。在查詢操作上,因手動資料表操作複雜,有些查詢邏輯不易執行,但我們可以關聯代數(Relation Algebra)輕易地解釋非常困難的查詢邏輯、並藉SQL資料庫語言實作執行,而Java
6、却可流暢地驅動SQL執行各類查詢邏輯。,2-4-2 Java建立資料表(by Java),1、設定ODBC,將資料庫與Win系統連接2、載入驅動程式sun.jdbc.odbc.JdbcOdbcDriver,執行方法為:Class.forName(sun.jdbc.odbc.JdbcOdbcDriver):3、建立連接物件,連接資料庫,執行方法為:Connection con=DriverManager.getConnection(jdbc:odbc:xxx);其中con為連接物件,xxx為資料庫邏輯名稱。4、以連接物件之方法程序createStatement()建立敘述物件,執行方法為:Sta
7、tement stmt=con.createStatement();其中stmt為敘述物件。5、依SQL語言建立字串“create table”,其中“”為設定之資料表名稱及所屬各欄位。再以敘述物件之方法程序executeUpdate()建立資料表,執行方法為:stmt.executeUpdate(xxxxx);其中xxxxx為SQL字串。,範例01:設計檔案CreateTable02_4_2.java,其功能為解釋以Java建立資料表。,01 import java.sql.*;02 public class CreateTable02_4_2 03 public static void m
8、ain(String args)04 String JDriver=sun.jdbc.odbc.JdbcOdbcDriver;05 String connectDB=jdbc:odbc:Book02_4;06 try 07 Class.forName(JDriver);08 09 catch(java.lang.ClassNotFoundException e)10 System.out.println(ForName:+e.getMessage();11,範例01:續,12 try 13 Connection con=DriverManager.getConnection(connectDB
9、);14 Statement stmt=con.createStatement();15 String query=create table 書目_by_Java(+編號 Text(20),+書名 Text(20),+作者 Text(10),+書價 Number+);16 stmt.executeUpdate(query);17 stmt.close();18 con.close();19 20 catch(SQLException e)21 System.out.println(SQLException:+e.getMessage();22 23 24,2-5-2 Java輸入資料表(by
10、Java),當以Java對資料庫(Data Bases)之資料表(Data Tables)輸入資料時,其關鍵步驟與2-4-2節相同,唯一不同者是將項5之SQL字串“create table”改成“insert into”。,範例02:設計檔案InsertTable02_5_2.java,其功能為解釋以Java將資料輸入資料表。,01 import java.sql.*;02 public class InsertTable02_5_2 03 public static void main(String args)04 String JDriver=sun.jdbc.odbc.JdbcOdbcD
11、river;05 String connectDB=“jdbc:odbc:Book02_5”;06 try 07 Class.forName(JDriver);08 09 catch(java.lang.ClassNotFoundException e)10 System.out.println(ForName:+e.getMessage();11,範例02:續1,12 try 13 Connection con=DriverManager.getConnection(connectDB);14 Statement stmt=con.createStatement();15 String qu
12、ery1=insert into 書目_by_Java values(+001,資料庫 系統概論,賈蓉生,527);16 String query2=insert into 書目_by_Java values(+002,Java基礎入門程式,賈蓉生,442);17 String query3=insert into 書目_by_Java values(+003,Java網路入門程式,賈蓉生,476);18 String query4=insert into 書目_by_Java values(+004,Java動畫遊戲程式,賈蓉生,500);19 String query5=insert in
13、to 書目_by_Java values(+005,Java資料庫入門程式,賈蓉生,480);,範例02:續2,20 String query6=insert into 書目_by_Java values(+006,Java網站資料庫程式,賈蓉生,510);21 stmt.executeUpdate(query1);22 stmt.executeUpdate(query2);23 stmt.executeUpdate(query3);24 stmt.executeUpdate(query4);25 stmt.executeUpdate(query5);26 stmt.executeUpdate
14、(query6);27 stmt.close();28 con.close();29 30 catch(SQLException e)31 System.out.println(SQLException:+e.getMessage();32 33 34,2-6 讀取資料表,當以Java對資料庫(Data Bases)之資料表(Data Tables)讀物資料時,其關鍵步驟與2-4-2節相同,不同者有:(1)將SQL字串改成 select*from xxx,其中xxx為資料表名稱;(2)以該SQL字串建立ResultSet物件;(3)以該ResultSet物件藉while迴圈讀取資料表內的每筆資
15、料。,範例03:設計檔案PrintTable02_6.java,其功能為解釋以Java讀取資料表之內容。,01 import java.sql.*;02 public class PrintTable02_6 03 public static void main(String args)04 String JDriver=sun.jdbc.odbc.JdbcOdbcDriver;05 String connectDB=jdbc:odbc:Book02_6;06 try 07 Class.forName(JDriver);08 09 catch(java.lang.ClassNotFoundEx
16、ception e)10 System.out.println(ForName:+e.getMessage();11,範例03:續,12 try 13 Connection con=DriverManager.getConnection(connectDB);14 Statement stmt=con.createStatement();15 ResultSet rs=stmt.executeQuery(select*from 書目_by_Java);16 System.out.println(編號+t+書名+t+t+t+作者+t+書價);17 while(rs.next()18 System
17、.out.println(rs.getString(編號)+t+rs.getString(書名)+t+rs.getString(作者)+t+rs.getInt(書價);19 20 stmt.close();21 con.close();22 23 catch(SQLException e)24 System.out.println(SQLException:+e.getMessage();25 26 27,2-7 習題(Exercises),01、我們可手動作資料庫應用,為何還要藉助Java來作資料庫應用?02、設定ODBC(Open Database Connectivity)有何意義?03
18、、當以Java建立資料庫(Data Bases)之資料表(Data Tables)時,其關鍵步驟為何?04、當以Java對資料庫(Data Bases)之資料表(Data Tables)輸入資料時,其關鍵步驟為何?05、當以Java對資料庫(Data Bases)之資料表(Data Tables)讀物資料時,其關鍵步驟為何?,第二篇,Java資料庫關聯查詢,資料庫(Database)設計的重點考量為資料儲存(Data Store)與資料查詢(Data Query),儲存資料要井然有序,查詢資料要迅速有效,前者將於爾後詳細討論,本篇將專業討論“如何以Java程式使用SQL字串作迅速有效地資料查詢
19、?”。,第三章,基礎操作(Basic Operations),3-1 簡介,本章將針對現今資料庫使常用的資料錄關聯模型(Record Relational Model),在資料查詢上,作有系統地探討,以Access2007為範例資料庫、以Java為程式語言、以SQL為查詢語言,執行各類基礎查詢。,3-3 SQL查詢基礎架構(Basic Query Structure),關聯式資料庫(Relational Database)是由多個資料表(Relations)組合而成,每一資料表都有一個獨一無二的名稱,其查詢語言SQL是由三組子句(Clauses)所組成:欄位選取子句(select Clause
20、)、資料表選取子句(from Clause)、與條件子句(where Clause)。,3-5 欄位選取查詢(select Clause),關聯式資料庫(Relational Database)是由數個資料表(Relational Table)所組成,表格為資料錄(Record)形態,由數個欄位(Columns)組成。欄位與欄位間、表格與表格之間有其一定的數學關係,依照這些關係,我們可精準地執行指定之查詢。,範例04:設計Java程式Select_04.java,使用資料庫Bank03.accdb之資料表Deposit(如圖3-3-4),試請“印出欄位branch_name之各資料內容”。,0
21、1 import java.sql.*;02 public class Select_04 03 public static void main(String args)04 String JDriver=sun.jdbc.odbc.JdbcOdbcDriver;05 String connectDB=jdbc:odbc:Bank03;06 try 07 Class.forName(JDriver);08 09 catch(java.lang.ClassNotFoundException e)10 System.out.println(ForName:+e.getMessage();11,範例
22、04:續,12 try 13 Connection con=DriverManager.getConnection(connectDB);14 Statement stmt=con.createStatement();15 ResultSet rs=stmt.executeQuery(SELECT branch_name+FROM Deposit);16 System.out.println(branch_name);17 System.out.println(-);18 while(rs.next()19 System.out.println(rs.getString(branch_name
23、);20 21 stmt.close();22 con.close();23 24 catch(SQLException e)25 System.out.println(SQLException:+e.getMessage();26 27 28,範例05:參考範例04,設計Java程式Select_05.java,使用資料庫Bank03.accdb之資料表Deposit(如圖3-3-4),試請“印出欄位branch_name之各資料內容,使用distinct”。,(1)SQL查詢句設計為:SELECT distinct branch_name FROM Deposit(2)設計程式Select
24、_05.java(參考本書CD檔案)。,範例06:參考範例05,設計Java程式Select_06.java,使用資料庫Bank03.accdb之資料表Deposit(如圖3-3-4),試請“印出欄位branch_name之各資料內容,使用all”。,(1)SQL查詢句設計為:SELECT all branch_name FROM Deposit(2)設計程式Select_06.java(參考本書CD檔案)。,範例07:設計Java程式Select_07.java,使用資料庫Bank03.accdb之資料表Deposit(如圖3-3-4),試請“印出欄位branch_name、customer
25、_name之各資料內容”。,(1)SQL查詢句設計為:SELECT branch_name,customer_name FROM Deposit(2)設計程式Select_07.java(參考本書CD檔案)。,範例08:設計Java程式Select_08.java,使用資料庫Bank03.accdb之資料表Deposit(如圖3-3-4),試請“於存款額(balance)配發5%利息,印出欄位branch_name、customer_name、balance之各資料內容”。,(1)SQL查詢句設計為:SELECT branch_name,customer_name,balance*1.05 a
26、s newbalance FROM Deposit 其中newbalance為配發5%利息後新得之存款欄位名稱。(2)設計程式Select_08.java(參考本書CD檔案)。,3-6 條件選取(where Clause),條件選取支援選擇性資料之查詢,設定特定條件,篩除不合條件的資料,只選取滿足條件的資料。常用之條件選取有:單一條件選取(如範例09)、多個條件選取(如範例10)、中間條件選取(如範例11)。,範例09:設計Java程式Where_09.java,使用資料庫Bank03.accdb之資料表Borrow(如圖3-3-1),試請“印出分行(branch_name)Perryridg
27、e之各借款帳戶帳號(loan_number)與借款額(amount)”。,(1)SQL查詢句設計為:SELECT loan_number,amount FROM Borrow WHERE branch_name=Perryridge(2)設計程式Where_09.java(如本書CD檔案),範例10:設計Java程式Where_10.java,使用資料庫Bank03.accdb之資料表Borrow(如圖3-3-1),試請“印出分行(branch_name)Perryridge、借款額大於2500之各借款帳戶帳號(loan_number)與借款額(amount)”。,(1)SQL查詢句設計為:S
28、ELECT loan_number,amount FROM Borrow WHERE branch_name=Perryridge and amount 2500(2)設計程式Where_10.java(參考本書CD檔案)。,範例11:設計Java程式Where_11.java,使用資料庫Bank03.accdb之資料表Borrow(如圖3-3-1),試請“印出借款額大於等於2500、和小於等於3000之各借款帳戶帳號(loan_number)與借款額(amount)”。,(1)SQL查詢句設計1為:SELECT loan_number,amount FROM Borrow WHERE amo
29、unt between 2500 and 3000(2)SQL查詢句設計2為:SELECT loan_number,amount FROM Borrow WHERE amount=2500(3)設計程式Where_11.java(參考本書CD檔案)。,3-7 多個資料表關聯選取(from Clause),一個有效率的機構總是依賴一個分工的組織,資料庫也是一樣,以多個不同功能的資料表奠定分工的基礎。如本章範例資料庫Bank03.accdb,存款部門建立資料表Deposit、借款部門建立資料表Borrow、公關部門建立資料表Customer、組織部門建立資料表Branch。各部門各依資料表分工作業
30、,必要時亦可相互支援合作,即為本節之多個資料表關聯選取。當將兩個資料表關聯操作時,兩個資料表必須至少有一個相同名稱的欄位,我們可以程式關聯、或以手動關聯執行之,筆者偏向手動關聯,因可降低系統的負擔。,範例12:設計Java程式Tables_12.java,使用資料庫Bank03.accdb之資料表Borrow(如圖3-3-1)與Deposit(如圖3-3-4),試請“印出所有持有借款帳戶的客戶(customer_name)及其居住的城市(customer_city)”。,(1)SQL查詢句設計為:SELECT Borrow.customer_name,Customer.customer_cit
31、y FROM Borrow,Customer WHERE Borrow.customer_name=Customer.customer_name 因是同時使用兩個資料表,在欄位左端需加置所屬資料表名稱,否則系統將無所適從選擇正確的資料表。(2)設計程式Tables_12.java(如本書CD檔案),範例13:與範例12相同,設計Java程式Tables_13.java,使用資料庫Bank03.accdb之查詢表Borrow_Deposit,試請“印出所有持有借款帳戶的客戶(customer_name)及其居住的城市(customer_city)”。,(1)SQL查詢句設計為:SELECT Bo
32、rrow.customer_name,Customer.customer_city FROM Borrow_Customer(2)設計程式Tables_13.java(參考本書CD檔案)。,3-8 更名操作(Rename Operation),在操作過程中,更改名稱(Rename)可將繁雜的名稱整理成精簡的名稱,增加可讀性與應用性,SQL提供更名機制“as”,可更改資料表(Relations)或欄位(Attributes)的名稱。同時也可用於欄位計算後之新名稱(如範例08)。,範例14:設計Java程式Rename_14.java,使用資料庫Bank03.accdb之查詢表Borrow_Dep
33、osit,試請“印出下列SQL查詢句之執行結果”。,(1)SQL查詢句設計為:SELECT customer_name as client_name,customer_city as city FROM Borrow,Customer WHERE Borrow.customer_name=Customer.customer_name and branch_name=Perryridge 為了降低系統負擔,可以查詢表Borrow_Customer取代資料表Borrow,Customer,並將SQL字串改為下列字串。(2)SQL查詢句設計為:SELECT customer_name as clie
34、nt_name,customer_city as city FROM Borrow_Customer WHERE branch_name=Perryridge(3)設計程式Rename_14.java(參考本書CD檔案):,3-9 資料組變數(Tuple Variables),有些查詢問題牽涉到資料組間之關係,極不容易解答,但以資料組變數之輔助,則可輕易解決。,範例15:設計Java程式Variables_15.java,使用資料庫Bank03.accdb之資料表Deposit,試請“印出其分行名稱(branch_name)與客戶名稱(customer_name),如果有重複之分行名稱,則選取
35、存款額(amount)較大的資料組”。,(1)SQL查詢句設計為:SELECT distinct T.branch_name,T.customer_name FROM Deposit as T,Deposit as S WHERE T.balance S.balance(2)設計程式Variables_15.java(參考本書CD檔案):,3-10 字串操作(String Operations),在SQL字串中,有些符號具有特定意義,尤其是字串括號、暫離符號、與模糊取代(like)之用法,常用格式有:1、單引號(Single Quote):SQL字串以單引號括住字串之兩端,如 It is my
36、 book。2、雙引號(Double Quote):如果字串中已有單號成員,如 Its my book,則以雙引號取代之,如 It”s my book。3、百分號(Percent)%:用於次字串(Sub String)之模糊取代(like),如 downtown=down%,其中%=town。4、底線(Underscore)_:用於字元(Character)之模糊取代(like),如 down_own=downtown,其中 _=t;down_ _ _n=downtown,其中 _ _ _=t o w。5、右斜線:視為暫離符號(Escape),當字串中有特殊符號時,為了避免誤會,SQL提供右斜
37、線 作暫離,如 10%of people 應改為 10%of people。,範例16:設計Java程式String_16.java,使用資料庫Bank03.accdb之查詢表Deposit_Customer,試請“印出在分行(branch_name)%rryr%所有持有借款帳戶的客戶(customer_name)及其居住的城市(customer_city)”。,(1)SQL查詢句設計為:SELECT customer_name,customer_city FROM Borrow_Customer WHERE branch_name like%rryr%(2)設計程式Strein_16.jav
38、a(參考本書CD檔案):,3-11 排序操作(Ordering the Display of Tuples),SQL提供指令“order by”指定某欄位(Attribute)為排序欄位,依其中的內容執行資料組(Tuples)排序(Ordering)。,範例17:設計Java程式Order_17.java,使用資料庫Bank03.accdb之查詢表Borrow_Customer,試請“印出Perryridge分行(branch_name)之所有客戶名稱(customer_name),並依客戶名稱之字母順序作排序”。,(1)SQL查詢句設計為:SELECT customer_name FROM
39、Borrow_Customer WHERE Branch_name=Perryridge ORDER BY customer_name(2)設計程式Order_17.java(參考本書CD檔案),範例18:設計Java程式Order_18.java,使用資料庫Bank03.accdb之查詢表Borrow_Customer,試請“印出下列SQL之執行結果”。,(1)SQL查詢句設計為:SELECT customer_name FROM Borrow_Customer WHERE Branch_name=Perryridge ORDER BY customer_name desc(2)設計程式Or
40、der_18.java(參考本書CD檔案)。,範例19:設計Java程式Order_19.java,使用資料庫Bank03.accdb之資料表Borrow,試請“印出下列SQL之執行結果”。,(1)SQL查詢句設計為:SELECT*FROM Borrow ORDER BY amount asc,loan_name desc(2)設計程式Order_19.java(參考本書CD檔案)。,3-12 習題(Exercises),01、查詢語言SQL是由那三組子句(Clauses)所組成?02、SQL執行合併相同資料時,其關鍵指令為何?03、SQL強迫執行所有資料時,其關鍵指令為何?04、如有多個條件
41、時,SQL以何者關鍵指令執行邏輯連接?05、如果條件是取範圍中間值,則使用何者關鍵指令?06、當將兩個資料表關聯操作時,其必要條件為何?07、以手動關聯操作有何意義?08、在操作過程中,更改名稱(Rename)有何意義?其關鍵指令為何?09、資料組變數(Tuple Variable)有何意義?10、在SQL字串中,那些常用符號具有特定意義?11、如何執行資料組(Tuples)排序(Ordering)?,第四章,集合操作(Set Operations),4-1 簡介,所謂集合(Set)是謂“有一完善定義的範圍(well-defined List/Collection),在範圍內包涵適當數量之元素
42、(Elements)”。SQL提供集合操作功能,以指令“聯集(union)”、“交集(intersect)、“差集(except)”組合多個資料集合(Sets)或運算式。,4-2 集合之定義(Definitions of Set),集合操作可概分四類運算方法:聯集運算(Union)、交集運算(Intersect)、相對餘補集運算(Relative Complement)、與絕對餘補集運算(Absolute Complement)。,圖4-2,(a),(b),(c),(d),4-3聯集運算(Union Operation),SQL聯集運算(Union Operation)如同關聯代數(Relat
43、ional Algebra)之“”,建立多個資料集合或運算式間之“or”關係,使用指令“union”。,範例20:設計Java程式Set_20.java,使用資料庫Bank03.accdb之資料表Borrow與Deposit,試請“印出有存款或是有借款的所有客戶名稱(customer_name)”。,(1)SQL查詢句設計為:(SELECT customer_name FROM Borrow)UNION(SELECT customer_name FROM Deposit)(2)設計程式Set_20.java(如本書CD檔案),範例21:比較範例20,設計Java程式Set_21.java,使用
44、資料庫Bank03.accdb之資料表Borrow與Deposit,試請“印出下列SQL查詢句之執行結果”。,(1)SQL查詢句設計為:(SELECT customer_name FROM Borrow)UNION all(SELECT customer_name FROM Deposit)(2)設計程式Set_21.java(如本書CD檔案)。,4-4交集運算(Intersect Operation),SQL交集操作(Intersect Operation)如同關聯代數(Relational Algebra)之“”,建立多個資料集合或運算式間之“and”關係,使用指令“intersect”。
45、,範例22:設計Java程式,使用資料庫Bank03.accdb之資料表Borrow與Deposit,試請“印出同時有存款和有借款的所有客戶名稱(customer_name)”。,(1)SQL查詢句設計為:(SELECT customer_name FROM Borrow)INTERSECT(SELECT customer_name FROM Deposit)(2)討論事項:資料庫Access並未將“INTERSECT”納為保留字指令,亦即無法以其執行交集運算。有關交集運算、Access另以巢式子查詢(Nested Subqueries)之“成員集合測試(Test Set Membership
46、)”取代執行(如6-2節範例37)。,4-5差集運算(Except/Minus Operation),SQL差集操作(Except/Minus Operation)如同關聯代數(Relational Algebra)之“”,建立多個資料集合或運算式間之“not”關係,使用指令“except”或“minus”。,範例23:設計Java程式,使用資料庫Bank03.accdb之資料表Borrow與Deposit,試請“印出有存款帳戶但無借款帳戶所有客戶名稱(customer_name)”。,(1)SQL查詢句設計為:(SELECT customer_name FROM Deposit)MINUS(
47、SELECT customer_name FROM Borrow)(2)討論事項:如指令“INTERSECT”,資料庫Access亦未將“EXCEPT/MINUS”納為保留字指令,亦即無法以其執行差集運算。有關差集運算、Access另以巢式子查詢(Nested Subqueries)之“成員集合測試(Test Set Membership)”取代執行(如6-2節範例38)。,4-6 習題(Exercises),01、何謂集合(Set)?02、何謂聯集運算(Union)?03、何謂交集運算(Intersection)?04、何謂相對餘補集運算(Relative Complement)?05、何謂
48、絕對餘補集運算(Absolute Complement)?06、SQL聯集運算(Union Operation)如同關聯代數(Relational Algebra)之“”,建立多個資料集合或運算式間之“or”關係,使用何者指令?07、SQL交集操作(Intersect Operation)如同關聯代數(Relational Algebra)之“”,建立多個資料集合或運算式間之“and”關係,使用何者指令?08、資料庫Access為何無法以“INTERSECT”執行交集運算?09、SQL差集操作(Except/Minus Operation)如同關聯代數(Relational Algebra)之
49、“”,建立多個資料集合或運算式間之“not”關係,使用何者指令?10、資料庫Access為何無法以“EXCEPT/MINUS”執行差集運算?,第五章,聚合函數(Aggregate Functions),5-1 簡介,SQL提供指令“avg”計算特定欄位各資料組之平均值。,範例24:設計Java程式Aggregate_24.java,使用資料庫Bank03.accdb之資料表Branch(如圖3-3-2),試請“印出所有分行之平均資產”。,(1)SQL查詢句設計為:SELECT avg(assets)as avg_assts FROM Branch(2)設計程式Aggregate_24.java
50、(如本書CD檔案)。,5-3 總和值(Sum),SQL提供指令“sum”計算特定欄位各資料組之總和值。,範例25:設計Java程式Aggregate_25.java,使用資料庫Bank03.accdb之資料表Borrow(如圖3-3-1),試請“印出所有借款帳戶之借款總額(sum of loan)”。,(1)SQL查詢句設計為:SELECT sum(amount)as total_amount FROM Borrow(2)設計程式Aggregate_25.java(如本書CD檔案)。,範例26:設計Java程式Aggregate_26.java,使用資料庫Bank03.accdb之資料表Bor