1 / 157

第三章

第三章. 資料庫之資料選取查詢. 章節概要. 3.1 撰寫 SQL 指令 3.2 如何編輯及執行 SQL 指令 3.3 使用 SELECT 選取資料 3.4 使用 WHERE 設定條件選取資料 3.5 使用運算式及函數 3.6 使用聚合函數來統計資料  3.7 使用 GROUP BY 於資料群組化  3.8 使用 HAVING 子句篩選群組化資料  3.9 限定最大輸出筆數  3.10 關於 NULL. 3.1  撰寫 SQL 指令.

aisha
Download Presentation

第三章

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 第三章 資料庫之資料選取查詢

  2. 章節概要 • 3.1 撰寫SQL指令 • 3.2 如何編輯及執行 SQL 指令 • 3.3 使用SELECT選取資料 • 3.4 使用WHERE設定條件選取資料 • 3.5 使用運算式及函數 • 3.6 使用聚合函數來統計資料  • 3.7 使用GROUP BY於資料群組化  • 3.8 使用HAVING子句篩選群組化資料  • 3.9 限定最大輸出筆數  • 3.10 關於NULL

  3. 3.1 撰寫SQL指令 • SQL語言是一種非程序性語言(Non-procedure Language),是一種對資料庫逐次以一個個命令來操作資料庫的簡單語言。在SQL語法上和一般程式語言一樣,也有所謂的保留字或關鍵字(Keyword)。一般而言,保留字不可以用來當作資料表或欄位屬性的名稱。

  4. SQL保留字(以MySQL為例) • alter • asc • between • cross • distinct • from • having • avg • case • else • for • and • char • constraint • desc • as • by • creat • describe • drop • exists • group • identified

  5. SQL保留字(以MySQL為例)(續) • if • jey • lock • natural • null • select • in • insert • is • keys • left • on • or • set • use • order • update • like • not • outer • table • to • unique

  6. 撰寫SQL指令(續) • 使用SQL時通常是以一個敘述或指令(Statement)來描述,並以分號(;)作為結束符號。 • 執行:有些系統需使用 go 或 run • 在撰寫SQL敘述時,可以在保留字、資料表或欄位名稱之間加入空白或換行符號,以便於閱讀。

  7. 3.2 如何編輯及執行 SQL 指令 • 操作方式列舉如下: • A. 使用ODBC Viewer (可連接任何ODBC連線資料庫) • B. 使用MS Access 查詢精靈 (使用 QBE) • C. 使用SQL Server • D. 使用MySQL Query Browser • E. 使用 DB Visualizer • F. 使用Oracle SQL Developer • 例如:我們想要選取部門資料表(Departments)中的部門編號(DepartmentID)及部門名稱(Name),則下達如下的SQL指令即可:(SQL指令下一節會詳細說明) • SELECT DepartmentID, NameFROM Departments;

  8. A. 使用ODBC Viewer • 首先請自行安裝 ODBC Viewer (可連接任何ODBC連線資料庫),安裝程式見於光碟 software 目錄下的 odbcv310.exe 或自行到網站下載最新版的ODBC Viewer (http://www.slik.co.nz )。 • 請執行[開始]/[程式集]/[Slik software]下的ODBC Viewer。即如下圖。(注意:若尚未建立 orders_access ODBC連線名稱,請參考前章的ODBC設定說明。)

  9. 選取[Data Source]以連接ODBC資料庫。

  10. 選取位於[機器資料來源]頁中的orders_access或orders_mssql或orders_mysql。選取位於[機器資料來源]頁中的orders_access或orders_mssql或orders_mysql。

  11. 輸入SQL指令於編輯視窗後,按[Execute]執行。(示範為連接 orders_access)

  12. B. 使用MS Access 查詢精靈 • 首先開啟 orders.mdb,即如下圖所示:

  13. 開啟資料庫後,選取[查詢]。

  14. 選取[新增]。

  15. 選取設計檢視。

  16. 選取資料表Departments,然後按[新增]即可新增欲選取的資料表。選取資料表Departments,然後按[新增]即可新增欲選取的資料表。

  17. 於資料表的欄位上用滑鼠雙擊即可選取要顯示的欄位。選取完後,按[ ! ]執行。

  18. 執行完後的畫面。

  19. 選取[檢視]下的[SQL檢視]即可觀看相關的SQL指令。選取[檢視]下的[SQL檢視]即可觀看相關的SQL指令。 SQL 檢視的結果指令。 註:以上示範的查詢建立方法稱為依範例查詢(Query By Example; QBE)。

  20. C. 使用SQL Server(一) • 法一:使用 SQL Query Analyzer • 方法二:使用 Enterprise Manager • 首先開啟 SQL Query Analyzer (SQL 查詢分析器),即如下:

  21. 首先選取要使用的資料庫為 orders,接著輸入 SQL 指令,最後按[ ! ]執行鈕即可。

  22. 可以選取[顯示評估的執行計劃]鈕以檢視該SQL指令是如何地被執行。可以選取[顯示評估的執行計劃]鈕以檢視該SQL指令是如何地被執行。

  23. C. 使用SQL Server(二) • 以下接著示範如何於 Enterprise Manager 中下達 SQL 指令。首先開啟SQL Server Enterprise Manager 如下:

  24. 打開資料庫列表中的 orders 資料庫,接著選取 Departments 資料表,並按滑鼠右鍵,並選取查詢。

  25. 勾選想要顯示的欄位,接著按[ ! ]執行。

  26. 可以於別名欄上按滑鼠右鍵並選取刪除以刪除不適用的別名,或自行更改別名。可以於別名欄上按滑鼠右鍵並選取刪除以刪除不適用的別名,或自行更改別名。

  27. 這是刪除掉多餘的資料行及別名後重新執行的結果。這是刪除掉多餘的資料行及別名後重新執行的結果。 注意:我們也可以直接在 SQL 指令區中直接輸入要執行的 SQL 指令。

  28. C. 使用SQL Server(三) • 以下示範如何於SQL Server 2005/2008 的 SQL Server Management Studio Express 中下達 SQL 指令。首先開啟SQL Server Management Studio Express 如下:

  29. 首先點選orders資料,然後按「新增查詢(N)」,以開啟SQL編輯器。最後於編輯區內輸入查詢指令,再按「執行(X)」即可。 QBE查詢介面開啟方式:點擊工具列中的 或按快捷鍵 Ctrl+Shift+Q或選取「查詢」功能表下的「在編輯器中設計查詢」。

  30. D. 使用MySQL Query Browser • 首先執行 MySQL Query Browser 程式 • 其後相關的執行操作如下示範:

  31. 若尚未建立任何連線名稱,則按[...]以建立連線名稱。否則,請指定連線使用者名稱(Username)、密碼(Password)及欲連接的主機名稱(Hostname)和連接埠(Port)。若想預定連接的資料庫(Schema; 綱要)則直接輸入資料庫名稱,如:orders。

  32. 如圖為連接 orders 資料庫的示範連接資料。

  33. 選取適當的連線名稱或輸入資料。

  34. 於 SQL 指令輸入區輸入SQL指令,接著按執行鍵即可。(注意:資料表和欄位名稱是不分大小寫的。)

  35. E. 使用DB Visualizer • 首先執行 DB Visualizer程式。 • 其後相關的執行操作程序如下: • 建立資料庫連線名稱。 • 設定資料庫驅動程式(使用JDBC)。 • 建立SQL查詢指令和執行SQL指令。

  36. 設定連線名稱。(如:orders)

  37. 選取驅動程式。(範例為MySQL)

  38. 設定連線的目標資料和使用者資料。

  39. 於SQL Commander中輸入SQL指令。

  40. F. 使用Oracle SQL Developer • 首先執行 Oracle SQL Developer 程式。 • 其後相關的執行操作如下示範:

  41. 設定Oracle連線。

  42. 於SQL編輯區內下達SQL指令 。

  43. 3.3 使用SELECT選取資料 • 最基本的SELECT指令是由SELECT子句(SELECT Clause)和FROM子句(FROM Clause)所組成的,其指令格式如下: • 【SELECT指令格式一】 SELECT 欄位列表FROM 資料表來源列表

  44. 使用SELECT選取資料(續) • SELECT的部分設定/列舉要選取的資料表欄位名稱,而FROM的部分則指定資料表來源名稱。 • 例如:我們想要選取部門資料表(Departments)中的部門編號(DepartmentID)及部門名稱(Name),則下達如下的SQL指令即可: • SELECT DepartmentID, NameFROM Departments; • 執行結果如下圖:

  45. 使用SELECT選取資料(續) • 由於我們時常會想要選取資料表中的所有欄位的資料,此時我們可以使用 SELECT * 來選取所有的欄位。其指令格式如下: • 【SELECT指令格式二】 SELECT * FROM 資料表來源名稱

  46. 使用SELECT選取資料(續) • 我們想要選取部門資料表(Departments)中的所有欄位,則下達如下的SQL指令即可: • SELECT *FROM Departments; • 執行結果如下圖:

  47. 使用SELECT選取資料(續) • 設定在 SELECT 子句中的欄位名稱可以在空白之後加入欄位的別名(Alias)或利用 AS 來設定別名(建議使用 AS 而不要使用空白)。其SQL指令格式如下: • 【SELECT指令格式三】SELECT 欄位名稱一 AS 別名一, 欄位名稱二 AS別名二, ...FROM 資料表來源名稱

More Related