320 likes | 468 Views
Access 第十八單元 結構化查詢語言(二 ). 授課老師:姜子龍 E- mail:tlj2030@knjc.edu.tw. SQL 語言的分類. 查詢語言( Query Language,QL) — 用於查詢資料庫中的資料 , 如: Select fields From tables Where condition ;。 資料定義語言( Data Definition Language,DDL) — 用於定義及維護資料庫中的資料表(包括資料表名稱、欄位名稱、欄位的資料類型 … 等),如: Create table 、Create index。
E N D
Access第十八單元結構化查詢語言(二) 授課老師:姜子龍 E-mail:tlj2030@knjc.edu.tw
SQL語言的分類 • 查詢語言(Query Language,QL) —用於查詢資料庫中的資料,如:Select fields From tablesWhere condition ;。 • 資料定義語言(Data Definition Language,DDL) —用於定義及維護資料庫中的資料表(包括資料表名稱、欄位名稱、欄位的資料類型…等),如:Create table、Create index。 • 資料處理語言(Data Manipulation Language,DML) —用於處理資料庫中的資料,如:Insert、Update、Delete。 • 資料控制語言(Data Control Language,DCL) —用於控制資料庫的使用權限及安全程度,如:Grant 、Revoke、Audit。
SQL語法所使用的符號 • 符號說明: • | (選擇符號):表示選項,當有多種不同選擇項時,可「 | 」加以區隔。 • 中括號(即[與]):通常會與「 | 」一起使用,所括住的部分表示其中選項為多選一,但也可以省略不選。 • 大括號(即{與}):通常會與「 | 」一起使用,所括住的部分表示其中選項可為零次到任意多次的重複。 • , (逗號):用於分隔意義相同的各個項目。 • … (省略符號) :表示語法中重複的項目,若於本省略符號前出現逗號,表示各重複項目必須以逗號隔開。 • 大寫字語為陳述式的關鍵字,直接使用,勿需替換。 • 中文或小寫字語為需用真實的識別字來替代的部分。
練習用資料表內容 學生 課程 修習
INSERT INTO 陳述式語法 • 功能:新增一筆或多筆記錄至一個資料表。 • 新增一筆記錄至一個資料表之語法: INSERT INTO目的資料表名稱 [(欄位名稱1[,欄位名稱2[, ...]])] VALUES (欄位值1[,欄位值2[, ...]]) • 新增多筆記錄至一個資料表之語法: INSERT INTO資料表名稱 [(欄位名稱1[,欄位名稱2[, ...]])] [ IN其他資料庫名稱] SELECT [來源資料表名稱.]欄位名稱1[,欄位名稱2[, ...] FROM資料表運算式
INSERT INTO 陳述式語法(續) 目的資料表名稱(target) — 欲新增記錄之資料表或查詢的名稱。 欄位名稱(field) — 如果其前為目的資料表名稱,指欲新增資料的欄位名稱;如果其前為來源資料表名稱,則指欲從其取得資料的欄位名稱。 其他資料庫名稱(externaldatabase) — 至外部資料庫的路徑。 來源資料表名稱(source) — 複製記錄之來源資料表或查詢的名稱。 資料表運算式(tableexpression) — 欲提供資料之一個或多個來源的名稱。 可為單一資料表名稱、一個已儲存的查詢,或由 INNER JOIN、LEFT JOIN 或 RIGHT JOIN 合成的結果。
INSERT INTO 陳述式語法(續) 欄位值(value) —欲插入至新增記錄的特定欄位值。 每一個值將依照排列中的位置順序插入至相關欄位之中:欄位值1將被插入至新增記錄的 欄位1之中,欄位值2插入至 欄位2,依此類推。 必須使用逗點將這些值分隔,並且將文字欄位用引號 (' ') 括起來。 • 註解: • 如果新增包含自動編號欄位之記錄至一資料表中,且要將新增記錄重新編號,則不要包含自動編號欄位在陳述式之中。 如果要保持欄位中的原始值,請將自動編號加在陳述式之中。
INSERT INTO 陳述式語法(續) • 使用IN子句,可新增記錄至另一個資料庫中的資料表。 • 若要建立一個新的資料表,使用 SELECT... INTO陳述式建立產生查詢後資料表。 • 若要在執行新增查詢之前找出哪些記錄已被新增?首先執行一個使用相同的選取範圍準則之選取查詢,並檢視所獲得的結果。 • 新增查詢可從一個或多個資料表中複製記錄至另一個資料表。 已新增記錄的資料表將不會被新增查詢所影響。 • 除了從另一資料表中來新增現存的記錄,也可以指定在單一新增記錄之中使用 VALUES 子句來指定對每一欄位的值。 如果省略欄位清單,VALUES 子句必須包含資料表中每一欄位的值;否則, INSERT 運算將會失敗。
Access新增查詢的SQL檢視 • 在Access中,可在新增查詢的SQL檢視視窗內使用新增指令,以新增資料表的內容。 • 初次進入新增查詢的SQL檢視視窗的步驟: • 在資料庫視窗中,切換至查詢頁次。 • 按「新增」圖示 ,即出現新增查詢視窗。 • 雙按設計檢視,即出現顯示資料表視窗。 • 按選「關閉」鈕,便會離開顯示資料表交談窗。 • 進入選取查詢視窗。 • 執行Access視窗功能表列中「查詢/新增查詢」,即進入新增交談窗。 • 執行Access視窗工具列中最左邊的 圖示(若未看見可按列示鈕) ,即可進入新增查詢的SQL檢視視窗。
Access新增查詢的SQL檢視(續) • 在新增查詢的SQL檢視視窗中輸入完SQL陳述式後,可按下Access工具列上的執行紐 ,執行該新增查詢指令。 • 離開新增查詢的SQL檢視視窗: • 按下新增查詢的SQL檢視視窗右上角的「關閉」鈕。 • 在訊息對話方塊按「是」鈕,將新增查詢指令儲存起來。 • 在另存新檔對話方塊的查詢名稱欄,輸入查詢名稱,再按「確定」鈕,便可將新增查詢存檔。 • 在資料庫視窗中,會多出一個剛設計的查詢物件。
Access新增查詢的SQL檢視(續)
Access新增查詢的SQL檢視(續)
INSERT INTO 陳述式範例 • 假設要將一筆學生資料加到學生資料表中,他的學號及姓名是:'90106'、'林二'。 • 新增查詢1: • INSERT INTO 學生 ( 學號, 姓名 ) VALUES ('90106', '林二'); • 新增查詢2: • INSERT INTO 學生 VALUES ('90106', '林二');
執行動作查詢時的注意事項 • 在Access執行動作查詢時,將出現下列相關訊息窗: 若欲繼續執行,請按「是」鈕。
執行動作查詢時的注意事項(續) • 在Access執行動作查詢時,若要讓相關訊息窗不出現,可: • 執行Access視窗功能表列中「工具/選項」,即進入選項交談窗。 • 進到「編輯/尋找」頁次。 • 將確認框中的□動作查詢選項取消。 • 按「確定」鈕,便可完成取消設定。
DELETE 陳述式語法 • 功能:移除一或多個資料表中的記錄。 • 語法: DELETE [資料表名稱.]* FROM資料表名稱 WHERE篩選條件 資料表名稱(table) — 欲從其刪除記錄的資料表或查詢的名稱。 篩選條件(criteria) — 用邏輯運算子連結的比較運算式,用以決定應刪除的記錄。
DELETE 陳述式語法(續) • 刪除查詢執行時,串接刪除運算將會刪除在關聯資料表中與此刪除記錄有關的多筆記錄。 例如,客戶資料表與訂單資料表之間有一對多的關聯,如果您指定使用串接刪除,從客戶資料中刪除一筆記錄,相對應之訂單記錄也會被刪除。 • 刪除查詢不只刪除指定欄位之中的資料,同時會刪除整筆的記錄。 如果要刪除一個特定欄位之中的值,請使用更新查詢將欄位值改變為 Null。 • 使用 DROP 陳述式,可從資料庫中刪除整個資料表,同時會將資料表的結構刪除。 當使用 DELETE,僅只有記錄會被刪除,而資料表的結構以及所有屬性(例如欄位及索引的屬性)仍然保留。
Access刪除查詢的SQL檢視 • 在Access中,可在刪除查詢的SQL檢視視窗內使用刪除指令,以刪除資料表的內容。 • 初次進入刪除查詢的SQL檢視視窗的步驟: • 在資料庫視窗中,切換至查詢頁次。 • 按「新增」圖示 ,即出現新增查詢視窗。 • 雙按設計檢視,即出現顯示資料表視窗。 • 按選「關閉」鈕,便會離開顯示資料表交談窗。 • 進入選取查詢視窗。 • 執行Access視窗功能表列中「查詢/刪除查詢」,即進入刪除交談窗。 • 執行Access視窗工具列中最左邊的 圖示(若未看見可按列示鈕) ,即可進入刪除查詢的SQL檢視視窗。
Access刪除查詢的SQL檢視(續) • 在刪除查詢的SQL檢視視窗中輸入完SQL陳述式後,可按下Access工具列上的執行紐 ,執行該刪除查詢指令。 • 離開刪除查詢的SQL檢視視窗: • 按下刪除查詢的SQL檢視視窗右上角的「關閉」鈕。 • 在訊息對話方塊按「是」鈕,將刪除查詢指令儲存起來。 • 在另存新檔對話方塊的查詢名稱欄,輸入查詢名稱,再按「確定」鈕,便可將刪除查詢存檔。 • 在資料庫視窗中,會多出一個剛設計的查詢物件。
Access刪除查詢的SQL檢視(續)
Access刪除查詢的SQL檢視(續)
DELETE 陳述式範例 • 假設要刪除學生資料表中一筆資料,他的學號是:'90106'。 • 刪除查詢1: • DELETE 學生.* FROM 學生 WHERE 學號='90106'; • 刪除查詢2: • DELETE * FROM 學生 WHERE 學號='90106';
UPDATE 陳述式語法 • 功能:變更資料表中的欄位值。 • 語法: UPDATE資料表名稱 SET 欄位名稱1=新欄位值1 [欄位名稱2=新欄位值2] […] WHERE篩選條件 資料表名稱(table) — 欲修改其中資料的資料表或查詢的名稱。 欄位名稱(field) — 欲修改其中資料的欄位名稱。
UPDATE 陳述式語法(續) 新欄位值(newvalue) — 為一運算式,其結果將為特定欄位的相值。 篩選條件(criteria) — 用邏輯運算子連結的比較運算式,用以決定被更新的記錄。
UPDATE 陳述式語法(續) • 當要變更多筆記錄,或要變更的記錄在多個資料表之中時,UPDATE 是非常有用的。 • UPDATE 不產生結果資料集。 當使用更新查詢更新記錄之後,便無法復原。 如果想知道哪些記錄將被更新,首先檢驗使用相同篩選條件的選取查詢結果,然後執行更新查詢。 • 隨時備份資料庫。 如果更新時發生了錯誤,可以從備份檔中救回這些資料。
Access更新查詢的SQL檢視 • 在Access中,可在更新查詢的SQL檢視視窗內使用更新指令,以更新資料表的內容。 • 初次進入更新查詢的SQL檢視視窗的步驟: • 在資料庫視窗中,切換至查詢頁次。 • 按「新增」圖示 ,即出現新增查詢視窗。 • 雙按設計檢視,即出現顯示資料表視窗。 • 按選「關閉」鈕,便會離開顯示資料表交談窗。 • 進入選取查詢視窗。 • 執行Access視窗功能表列中「查詢/更新查詢」,即進入更新交談窗。 • 執行Access視窗工具列中最左邊的 圖示(若未看見可按列示鈕) ,即可進入更新查詢的SQL檢視視窗。
Access更新查詢的SQL檢視(續) • 在更新查詢的SQL檢視視窗中輸入完SQL陳述式後,可按下Access工具列上的執行紐 ,執行該更新查詢指令。 • 離開更新查詢的SQL檢視視窗: • 按下更新查詢的SQL檢視視窗右上角的「關閉」鈕。 • 在訊息對話方塊按「是」鈕,將更新查詢指令儲存起來。 • 在另存新檔對話方塊的查詢名稱欄,輸入查詢名稱,再按「確定」鈕,便可將更新查詢存檔。 • 在資料庫視窗中,會多出一個剛設計的查詢物件。
Access更新查詢的SQL檢視(續)
Access更新查詢的SQL檢視(續)
UPDATE 陳述式範例 • 假設要更新學生資料表中一位同學的姓名,新的姓名為:'林清白',他的學號是:'90106'。 • 更新查詢1: • UPDATE 學生 SET 姓名 = '林清白' WHERE 學號='90106';
UPDATE 陳述式範例 • 假設要更新學生的成績,他的學號是:'90101',課名是:'國文',更正後的成績為:91分。 • 更新查詢2: • UPDATE 成績查詢 SET 成績 = 91 WHERE 學號='90101' And 課名='國文'; 其中「成績查詢」為一已建立好的查詢。 SELECT [學生].[學號], [學生].[姓名], [課程].[課名], [成績] FROM 學生, 課程, 修習 WHERE ([學生].[學號]=[修習].[學號]) And ([課程].[課號]=[修習].[課號]);
問題討論‧ ‧ ‧ ﹋謝謝聆聽﹌