SQL语言的使用.ppt_第1页
SQL语言的使用.ppt_第2页
SQL语言的使用.ppt_第3页
SQL语言的使用.ppt_第4页
SQL语言的使用.ppt_第5页
已阅读5页,还剩50页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第 14 章 SQL語言的使用,簡介SQL語言 - 什麼是SQL語言,SQL語言為目前公認的關聯式資料庫建立與資料之標準語言,該語言衍生自SEQUEL語言。 在1980年代,美國國家標準局,以SEQUEL語言為藍本,建立出關聯式查詢語言的標準,目前有SQL-89與SQL-92等版本。,簡介SQL語言 - SQL語言的組成,SQL語言可分為三個部份: 一、資料定義語言(DDL) 二、資料操作語言(DML) 三、資料控制語言(DCL),簡介SQL語言 - JSP網頁與SQL語言,SQL語言是一種操作資料庫的標準語言,JSP網頁利用Statement物件,執行SQL敘述,自連結資料庫取得資料。,簡介

2、SQL語言 - 利用Access進行除錯,將欲執行的SQL敘述,輸出到網頁或Resin伺服器的執行視窗,再複製該語法。接著開啟JSP網頁所連結的Access資料庫,將SQL敘述貼到查詢物件,並執行,此時Access將顯示錯誤發生的明確位置,與錯誤原因。 建立查詢物件的方法,請參考下三張投影片。,簡介SQL語言 - 利用Access進行除錯,快速點兩下,簡介SQL語言 - 利用Access進行除錯,按下,簡介SQL語言 - 利用Access進行除錯,切換至SQL檢視畫面,選取,按下,練習,叫出自建的access檔來練習一下SQL.,簡介SQL語言 - 在JSP網頁中執行SQL敘述,在JSP網頁中

3、,執行SQL敘述操作資料庫的方式,可依照是否傳回記錄集區別,共分以下兩種: 一、執行資料選取 (Select) 二、進行資料的新增(Insert) 刪除(Delete) 修改 (Update),簡介SQL語言 - SQL語法說明所使用的符號,英文字母大寫 :為SQL所使用的保留字。 |選擇符號 :|選擇符號用於表示某幾個語法部份,可以選擇性使用。 大括號 : 在大括號通常會與|選擇符號一起使用,表示大括號內,以|選擇符號連結的各語法,需擇一執行。 逗號 :分隔意義相同的各個項目。 省略符號:表示語法中重複的項目。,選取資料 - SELECT敘述小助教的使用,SELECT敘述小助教是利用JSP網

4、頁所撰寫,欲執行小助教時,請利用瀏覽器瀏覽JspBookSelTutor目錄下的SelTutor.htm檔。執行畫面如下圖所示:,顯示執行結果,鍵入欲執行的SQL敘述,按下此鈕執行SQL敘述,重設欲執行的SQL敘述,練習,在Eclipse中建立SelTutor project Import file from H:jspJspBookTomcatExSelTutor 修改SelView.jsp中資料庫連線設定, 連至自建的mdb,選取資料 - 選取資料的SELECT敘述,進行資料篩選/查詢的SQL敘述為SELECT敘述,該敘述語法如下:,SELECT 欄位名稱1 AS 欄位別名1 , 欄位名稱

5、2 AS 欄位別名2 , . FROM 資料表名稱 WHERE . ORDER BY . ,選取資料 - 選取資料的SELECT敘述,語法各部份的說明如下: 欄位名稱:欲選取欄位的名稱。 欄位別名:在記錄集中代表資料表某欄位的另一個名稱。 資料表名稱:欲選取資料的資料表名稱。 WHERE . :資料篩選的條件子句。 ORDER BY . :指定排序子句,用於指定一個或多個欄位做為遞增或遞減排序的依據。,練習,SELECT * FROM Book SELECT Author as 作者, Title as 書名 FROM Book,選取資料 - WHERE子句的使用,WHERE子句用於建立篩選資

6、料的條件,語法如下: WHERE + 查詢條件,選取資料 - WHERE子句的使用,WHERE子句的查詢條件分為以下六類: 第一類:文字查詢條件 第二類:數字查詢條件 第三類:日期查詢條件 第四類:Not、In運算子的運用 第五類:應用VBA內建函數的查詢條件 第六類:多重查詢條件,選取資料 - WHERE子句的使用,文字查詢條件的建立 欲在某文字欄位尋找某資料時,條件式的設定語法如下: 欄位名稱 = 文字值 SELECT Author as 作者, Title as 書名 FROM Book WHERE Author=位元文化,選取資料 - WHERE子句的使用,當只知道欲查詢資料的部份字串

7、時,可以利用Like保留字,建立尋找部份字串符合之資料的條件式。此類部份條件查詢的設定公式如下: Like + 萬用字元 + 已知的部份條件,選取資料 - WHERE子句的使用,萬用字元的種類與使用方法如下述:,練習,SELECT BookID, Title, Author FROM Book Where Author Like 位元% SELECT BookID, Title, Author FROM Book Where BookID Like _32_,練習,SELECT * FROM Book WHERE BookID Like M-Z2_ SELECT BookID, Title,

8、Author FROM Book WHERE BookID P%,選取資料 - WHERE子句的使用,數字查詢條件,練習,SELECT Title, Author, Price FROM Book WHERE Price 600 SELECT Title, Author, Price FROM Book WHERE Price Between 500 And 700,選取資料 - WHERE子句的使用,日期查詢條件,練習,Refer to P. 14-18 Example 14-10, 14-11,選取資料 - WHERE子句的使用,Not、In運算子的運用 Not運算子是一個邏輯運算子,代表

9、否定的意義。 在使用時,將Not運算子置於WHERE子句的資料篩選條件式之前,語法如下: WHERE Not 條件式 In運算子用於搭配WHERE子句,執行某欄位中特定儲存值的篩選工作,語法如下: In 欄位名稱 (值1, 值2, ),練習,Refer to P. 14-19 Example 14-12 Refer to P. 14-20 Example 14-13 Refer to P. 14-21 Example 14-14 Refer to P. 14-22 Example 14-15,選取資料 - WHERE子句的使用,應用VBA內建函數的查詢條件 當連結的資料庫為Access時,在W

10、HERE子句中亦可運用VBA(Visual Basic for Application,此語言應用於Access的程式開發)所提供的函數。,練習,Refer to P. 14-23 Example 14-16,選取資料 - WHERE子句的使用,多重查詢條件 當查詢條件不止一個時,可以利用And與Or兩個運算子,同時運用數個條件式查詢資料。,練習,Refer to P. 14-23 Example 14-17 Refer to P. 14-24 Example 14-18,選取資料 - 計算欄位的建立,SELECT敘述裡亦可執行簡單的欄位計算,可使用下表所列的運算子:,選取資料 - 計算欄位的

11、建立,若要計算各訂購明細的小計欄位,便需要以單價欄乘數量欄。 語法如下: SELECT 單價 * 金額 As 小計 FROM 訂單明細,練習,Refer to P. 14-25 Example 14-19,選取資料 - ORDER BY子句的使用,ORDER BY子句用於指定排序資料所依據的欄位。 語法如下: ORDER BY 排序欄位1 ASC | DESC , 排序欄位2 ASC | DESC , ASC表示以遞增排序 DESC表示以遞減排序,練習,Refer to P. 14-26 Example 14-20,選取資料 - 利用表單輸入查詢資料的範例,選取查詢在JSP網頁內的應用大致上有

12、兩種: 固定式查詢 參數式查詢 固定式查詢:不需要使用者提供查詢參數,通常用於執行例行性的查詢動作 。 參數式查詢:查詢條件必須等待使用者輸入的查詢,這種查詢方式往往針對某種特定需求,提供使用者查詢資料庫中資料的方法。,ch14/ex14-21/SQLQry.jsp,編修資料的SQL敘述 - 利用SQL敘述修改資料,執行編修資料庫中資料的SQL敘述時,需使用Statement物件的executeUpdate方法,而執行後,此類SQL敘述並不會回傳ResultSet物件。 語法如下: statement物件變數.executeUpdate(String sql字串),編修資料的SQL敘述 - 利

13、用SQL敘述修改資料,語法各部份的說明: statement物件變數: 執行SQL敘述的Statement物件。 sql字串: 執行的SQL敘述。,編修資料的SQL敘述 - 新增資料,利用SQL敘述新增資料 語法如下: INSERT INTO 資料表名稱 (欄位1, 欄位2, .) VALUES (值1, 值2, .),編修資料的SQL敘述 - 新增資料,下面的SQL敘述,把一筆資料新增至BookIns資料表中。(refer to P.14-37) INSERT INTO BookIns (BookID, Title, Author, PDate, Price, Pages, BookMemo

14、) VALUES(A1243,Access 2002 程式設計,位元文化, 2001/11/21, 690, 1150,市面上唯一一本深入 研究Access程式設計的書籍),ch14/ex14-22/SQLIns.jsp,編修資料的SQL敘述 - 新增資料,將表單中的資料新增至資料庫 在JSP網頁中,通常會提供一個表單讓使用者輸入資料,然後將表單傳遞過來的資料,串聯成SQL敘述,然後執行。 當使用者完成一次資料的新增後,再按下還要新增資料超連結,欲呼叫此網頁產生資料輸入表單時,必須重設session物件中的Done變數,否則無法再次新增資料。,ch14/ex14-23/SQLFrm.jsp,編

15、修資料的SQL敘述 - 刪除資料,刪除資料的SQL語法: 使用篩選條件時,將僅刪除符合查詢條件的記錄。,DELETE 資料表名稱.* FROM 資料表名稱 WHERE 篩選條件,編修資料的SQL敘述 - 刪除資料,以下敘述將從BookDel資料表刪除BookID為P3237的書籍。 若未設定篩選條件,則將刪除資料表的所有資料。,DELETE * FROM BookDel WHERE BookID = P3237,DELETE * FROM BookDel,ch14/ex14-24/SQLDel.jsp,編修資料的SQL敘述 - 更新資料,更新資料時使用的SQL語法: 新值為用於更新資料之欄位值

16、。,UPDATE 資料表名稱 SET 欄位名稱 = 新值 WHERE 資料篩選條件,編修資料的SQL敘述 - 更新資料,以下敘述將把BookUpd資料表中所有書籍的售價(Price欄)更改為原售價的八折。,UPDATE BookUpd SET Price = Price * 0.8,ch14/ex14-25/SQLUpd.jsp ch14/ex14-26/SQLUpd2.jsp,PreparedStatement的運用,PreparedStatement物件: 針對需要重複執行的SQL敘述而建立。 隸屬於java.sql套件,可以說是用於處理SQL語法範本的物件,將以?符號代替查詢參數的值。,

17、PreparedStatement的運用,運用PreparedStatement物件執行查詢的步驟: STEP 1、取得資料庫連結,取得ODBC資料連結的說明請參考13-3-2節。若欲取得JNDI定義的資料庫連結,請參考13-7節。 STEP 2、建立SQL敘述範本,並以?代替欲運用的執行參數。,PreparedStatement的運用,STEP 3、呼叫Connection物件的prepareStatement方法,並傳入SQL敘述範本,建立PreparedStatement物件。 STEP 4、設定執行參數。 STEP 5、執行PreparedStatement物件。,PreparedSt

18、atement的運用,參數的設定 運用PreparedStatement物件進行查詢前,需先呼叫PreparedStatement物件的方法,設定執行SQL敘述所需參數。 針對不同型別的資料,必須呼叫不同的方法,各方法的主要語法如下:,PreparedStatement物件.set型別(索引, 參數值) Refer to P.14-69,PreparedStatement的運用,語法說明如下: 型別:依照欲設定參數之型別,所呼叫對應的方法。索引:指定欲設定參數值的參數。 參數值:欲設定給參數的值。 以下敘述將設定pstmt物件(PreparedStatement物件)之SQL敘述的第2個參數值為100。,pstmt.setInt(2, 100);,PreparedStatement的運用,執行PreparedStatement物件 執行P

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论