課程介紹
學習資料庫與 SQL 語法,以最新的 Microsoft server 資料庫系統為學習平台。介紹資料庫的基本概念與關聯式資料庫的規劃技巧,再針對資料庫的建構及 SQL 語法循序漸進解說示範。從資料庫基礎理論到學習各項實物技術與進階技巧。引導學生逐步架構出自己的資料庫系統,以輕鬆簡單的方式完成繁雜的資料庫設計與管理的工作。
評量方式
比率 | 完成內容 |
10% | 填寫前、後測問卷 |
10% | 觀看教學影片 |
20% | 單元測驗 |
60% | 期中、期末考試 |
教科書:
Microsoft SQL Server 2016 設計實務
學校業務:羅雅麗,0912-563-723
參考用書:SQL Server 2019/2017 資料庫設計與開發實務
教學進度:
課程核心單元 |
週次 |
教學內容 |
資料庫基礎愾念 |
第 1 週 |
認識資料庫系統 |
第 2 週 |
規劃關聯式資料庫 |
|
熟悉資料庫平台 認識SQL語言 |
第 3 週 |
熟悉資料庫平台 |
第 4-5 週 |
SQL語言、SQL Server資料庫物件 |
|
MS SQL基本操作 |
第 6-7 週 |
建立資料庫、資料表、資料庫圖表 |
第 7-8 週 |
新增、修改、刪除、查詢 |
|
第 9 週 |
學習成效評量 |
|
MS SQL實務操作 |
第 10-11 週 |
更多查詢技巧、建立檢視表 |
第 11-12 週 |
善用索引 |
|
MS SQL進階操作 |
第 13-14 週 |
T-SQL 程式語言 |
第 14-15 週 |
預存程序、自訂函數與順序物件 |
|
第 15-16 週 |
觸發程序、資料指標(Cursor) |
|
第 16-17 週 |
交易與鎖定 |
|
第 18 週 |
學習成效評量 |
課程活動
-
1.認識資料庫系統 (112/9/11)學習重點關聯式資料庫:目前最普及的資料庫類型資料庫系統網路架構:單機式、主從式、分散式架構資料庫管理系統 (DBMS) 的功能:
- 資料定義、資料處理、資料安全、資料備份
SQL 語言可分三大類:- 資料定義語言 (DDL)
- 資料操作語言 (DML)
- 資料控制語言 (DCL)
資料庫管理者的工作:- 維持資料庫有效率運作;監督、紀錄資料庫的操作歷程;修改資料庫的資料結構及各項設定;資料庫的備份與回復。
-
閱讀 > 7 分鐘 1.1 Chap01_系統簡介、資料庫的類型 07:09
-
閱讀 > 4 分鐘 1.2 Chap01_資料庫系統內部結構、網路架構、DBMS的功能 04:26
-
閱讀 > 4 分鐘 1.3 Chap01_結構化查詢語言、資料庫系統的使用者 04:08
-
2.規劃關聯式資料庫 (112/9/11)學習重點資料庫規劃的四個階段
- 了解客戶需求、概念設計、邏輯設計、建立資料庫
認識關聯、Primary Key & Foreign Key資料完整性- 實體完整性、值域(區域)完整性、參考完整性、使用者定義完整性
資料表關聯種類- 一對一關聯、一對多關聯、多對多關聯
資料表正規化- 第一階正規化:每個欄位都只存單一值
- 第二階正規化:去除部分功能相依
- 第三階正規化:去除遞移 (間接) 相依
- Boyce-Codd 正規化:Primary Key (PK) 中的個欄位不可相依於其他非 PK 的欄位
-
閱讀 > 8 分鐘 2.1 Chap02_簡易的規劃流程、設計完善的資料庫 08:10
-
閱讀 > 5 分鐘 2.2 Chap02_收集資料項並轉換成欄位 05:34
-
閱讀 > 5 分鐘 2.4 Chap02_資料的完整性、資料表的關聯種類 05:27
-
閱讀 > 13 分鐘 2.5 Chap02_資料庫的正規化分析 13:52
-
閱讀 > 9 分鐘 2.6 Chap02_資料庫規劃實戰 09:08
-
分數 > 60, 2023-09-18 2.7 測驗:第02章-規劃關聯式資料庫
-
3.熟悉SQL Server 平台 (112/9/18)學習重點SQL Server 的工具程式
- 可以經由 SQL Server 2019 安裝中心更改
SQL Server Configuration Manager- 可以設定各種服務的啟動模式:自動、已停止、手動
SSMS 介面介紹- 物件總管窗格、執行 SQL 敘述、儲存 SQL 敘述、儲存執行結果、範本建立 SQL 敘述、登入帳戶 & 使用權限設定、連線遠端 SQL Server
-
閱讀 > 9 分鐘 3.1 Chap03_管理架構類型、工具程式與管理伺服器端服務 09:17
-
閱讀 > 14 分鐘 3.2 Chap03_SSMS 環境介紹 14:53
-
閱讀 > 10 分鐘 3.6 Chap03_SSMS 帳戶驗證模式、權限設定 10:07
-
閱讀 > 10 分鐘 3.7 Chap03_SSMS 新增登入帳戶、設定資料庫使用者 10:50
-
閱讀 > 6 分鐘 3.8 Chap03_SSMS 用戶端連接遠端伺服器、通訊協定 06:37
-
4.認識 SQL 語言與資料型別 (112/9/18 & 112/9/23)學習重點SQL 語言分類
- DDL:定義 (或建立) 資料庫物件,修改資料庫物件的 SQL 敘述,CREATE、ALTER、DROP。
- DML:用來做資料處理的敘述,INSERT、UPDATE、DELETE、SELECT。
- DCL:設定資料庫物件使用權限的敘述,GRANT、DENY、REVOKE。
SQL 資料型別:- 系統內建資料型別:
整數 - bingint、int、samllint、tinyint、bit精確位數 - numeric、decimal近似浮點數值 - float、real日期時間 - datetime、datetime2、smalldatetime、date、time、datetimeoffset字串 - char(n)、varchar(n)、varchar(max)、textUnicode 字串 - nchar(n)、nvarchar(n)、nvarchar(max)、ntext二元碼字串 - binary(n)、varbinary(n)、varbinary(max)、image貨幣 - money、smallmoney標記 - timestamp、uniqueidentifierXML - xml空間資料 - geometry、geograph其他 - sql_variant、cursor、table、hierachyid- 使用者自訂資料型別:指使用者所定義的表示表結構定義的類型。
識別名稱-
閱讀 > 5 分鐘 4.1 Chap04_SQL 語法標準與傳統程式語言的差別 05:14
-
閱讀 > 5 分鐘 4.2 Chap04_SQL 語言關鍵字、子句、敘述與功能分類 05:31
-
閱讀 > 17 分鐘 4.3 Chap04_資料型別 17:06
-
閱讀 > 9 分鐘 4.4 Chap04_NULL、DEFAULT 與識別名稱 09:31
-
分數 > 60, 2023-09-25 4.5 測驗:第04章-認識 SQL 語言與資料型別
-
5.檢視 SQL Server 的資料庫物件 (112/9/25)學習重點SQL Server 內建資料庫
- master:記錄所有 SQL Server 的系統資訊
- model:範本資料庫
- msdb:SQL Server 代理程式使用的資料庫
- tempdb:存放暫時的資料表和預存程序
檢視 SQL Server 的狀態資訊檢視資料庫各類物件:資料庫圖表、資料表、檢視表、可程式性、儲存體、安全性、使用者-
閱讀 > 8 分鐘 5.1 Chap05_內建資料庫、資料庫相關資訊 08:04
-
閱讀 > 14 分鐘 5.2 Chap05_檢視資料庫的各類物件 14:26
-
閱讀 > 6 分鐘 5.3 Chap05_以『物件總管詳細資料』檢視物件 06:41
-
分數 > 60, 2023-10-02 5.4 測驗:第05章-檢視 SQL Server 的資料庫物件
-
6.建立資料庫 (112/10/2)填寫問卷,請登入SIP後就會直接跳出需填寫問卷畫面!學習重點SSMS 建立資料庫 或 CREATE DATABASESSMS 修改資料庫設定資料庫卸離 、附加 (CREATE DATABASE ... FOR ATTACH)、刪除 (DROP DATABASE)ALTER DATABASE 敘述修改資料庫
-
閱讀 > 6 分鐘 6.1 Chap 06_SSMS 建立資料庫 06:59
-
閱讀 > 11 分鐘 6.2 Chap 06_CREATE DATABASE 敘述建立資料庫 11:48
-
閱讀 > 7 分鐘 6.3 Chap 06_建立包含 FILESTREAM 結構的資料庫 07:46
-
閱讀 > 6 分鐘 6.4 Chap 06_卸離與附加資料庫 06:08
-
閱讀 > 7 分鐘 6.5 Chap 06_SSMS 修改資料庫設定 07:08
-
閱讀 > 12 分鐘 6.6 Chap 06_ALTER DATABASE 敘述修改資料庫 12:46
-
閱讀 > 2 分鐘 6.7 Chap 06_刪除資料庫 02:11
-
分數 > 60, 2023-10-09 6.8 測驗:第06章-建立資料庫
-
閱讀 > 1 分鐘 6.10 SQL 程式檔
-
-
7.建立資料表與資料庫圖表 (112/10/16)學習重點SSMS 建立資料表 或 CREATE TABLESSMS 修改資料表SSMS 建立資料表關聯設定條件約束 - 維護資料完整性資料庫圖表 - 資料表關聯視覺化暫存資料表種類
- 區域暫存資料表 (#)、全域暫存資料表 (##)
自動記錄資料異動 - Temporal 資料表-
閱讀 > 10 分鐘 7.1 Chap07_SSMS 建立資料表 10:15
-
閱讀 > 3 分鐘 7.2 Chap07_SSMS 修改資料表 03:39
-
閱讀 > 6 分鐘 7.3 Chap07_SSMS 建立資料表間的關聯 06:00
-
閱讀 > 5 分鐘 7.4 Chap07_SSMS 設定條件約束維護資料完整性 05:40
-
閱讀 > 13 分鐘 7.5 Chap07_SSMS 刪除資料表、資料庫圖表與圖表物件 13:09
-
閱讀 > 12 分鐘 7.6 Chap07_CREATE TABLE 敘述建立資料表_01 12:16
-
閱讀 > 13 分鐘 7.7 Chap07_CREATE TABLE 敘述建立資料表_02 13:11
-
閱讀 > 12 分鐘 7.8 Chap07_CREATE TABLE 敘述建立資料表_03 12:15
-
閱讀 > 10 分鐘 7.9 Chap07_ALTER TABLE 敘述修改資料表 10:52
-
分數 > 60, 2023-10-23 7.11 測驗:第07章-建立資料表與資料庫圖表
-
8.資料的新增、修改與刪除 (112/10/23)學習重點SSMS 開啟及查詢資料表新增記錄
- INSERT:基本語法如下
- INSERT / SELECT:
- INSERT / EXEC:
簡易查詢 & 查詢結果建立資料表&更新記錄 - UPDATE 敘述刪除記錄 - DELETE 敘述TRUNCATE TABLE 敘述 - 不會記錄於交易紀錄檔中,比 DELETE 資料表名稱的速度快TRUNCATE TABLE 資料表名稱OUTPUT 子句 - 使用 Inserted 和 Deleted 虛擬資料表取得執行 DML 指令前後的記錄。- 顯示更動的紀錄
- 輸出更動的紀錄至資料表或變數
SSMS 資料匯入與匯出大量資料複製 - bcp & BULK INSERT-
閱讀 > 12 分鐘 8.1 Chap08_SSMS 編輯資料 12:20
-
閱讀 > 14 分鐘 8.2 Chap08_新增記錄 - INSERT 敘述 14:17
-
閱讀 > 8 分鐘 8.3 Chap08_簡易查詢 - SELECT 敘述初體驗 08:41
-
閱讀 > 4 分鐘 8.5 Chap08_更新記錄 - UPDATE 敘述 04:58
-
閱讀 > 8 分鐘 8.7 Chap08_輸出更動的資料 - OUTPUT 子句 08:57
-
閱讀 > 14 分鐘 8.8 Chap08_以精靈匯入及匯出資料 14:56
-
分數 > 60, 2023-10-30 8.10 測驗:第08章-資料的新增、修改與刪除
-
閱讀 > 1 分鐘 8.13 匯入資料範例檔
-
9.查詢資料-善用 SELECT 敘述 (112/10/30)填寫問卷,請登入SIP後就會直接跳出需填寫問卷畫面!提醒:11/6 星期一,期中考試,線上測驗(選擇20題)時間:19:00 - 19:30地點:在家、教室均可學習重點SELECT 欄位清單
- 資料表的欄位名稱
- 刪除重複記錄:ALL 與 DISTINCT
- 前幾筆記錄:TOP n 與 TOP n PERCENT
- 使用欄位別名
FROM 資料表來源- 定義資料表別名
- JOIN 的類型:INNER、LEFT、RIGHT、FULL 和 CROSS
- Self-Joins:自己 JOIN 自己
WHERE 搜尋條件- 搜尋條件可以是比較運算子建立的條件運算式。
- 運算元如果是欄位值,可以是文字、數值或日期/時間。
GROUP BY 欄位清單- 將資料列依據條件,分群組 (GROUP),讓 SELECT 子句中的彙總函數產生作用。
- 如果分群的欄位不只一個,請使用「,」逗號分隔。
HAVING 搜尋條件- GROUP BY 子句可以配合 HAVING 子句來指定搜尋條件。
- HAVING 子句可以使用聚合函數,但 WHERE 子句不可以。
- HAVING 子句條件所參考的欄位一定屬於 SELECT 子句的欄位清單。
ORDER BY 子句- 可以使用 ROLLUP 和 CUBE 來顯示多層次統計資料的摘要資訊。
- WITH CUBE 是針對 GROUP BY 子句的各群組欄位執行小計與加總。
- WITH ROLLUP 是針對第一個欄位執行加總運算。
-
閱讀 > 13 分鐘 9.2 Chap09_FROM 子句 13:23
-
閱讀 > 6 分鐘 9.3 Chap09_WHERE 子句、GROUP BY 子句 06:36
-
閱讀 > 3 分鐘 9.4 Chap09_HAVING 子句、ORDER BY 子句 03:59
-
分數 > 60, 2023-11-06 9.5 測驗:第09章-查詢資料-善用 SELECT 敘述
-
閱讀 > 1 分鐘 9.7 SQL 程式檔 & 資料庫"練習09"
-
10.更多的查詢技巧 (112/11/13)學習重點子查詢
- 子查詢敘述需用小括弧 () 括住。
- 子查詢中不能使用 INTO 子句。
- 子查詢中有用到 "SELECT TOP n...", 才可設定 ORDER BY 子句來排序。
獨立子查詢:可以脫離主查詢,單獨執行的子查詢關聯 (相依) 子查詢:無法單獨存在的子查詢使用 SSMS 設計 SQL 查詢T-SQL字串常數:以單引號括起來,若字串內容本身即含有單引號時,可用連續兩個單引號來表示。Unicode 字串常數:必須在字串最前面加上一個大寫的 N。日期時間:須用單引號括起來的日期或時間字串。位元運算子:邏輯運算子:- AND、OR:是做為兩個陳述式的邏輯判斷之用。
- BETWEEN / AND:表示在兩者之間,因此只要是在給定條件之間的資料都符合要求。
- IN:用來判斷給定的值是否在指定的項目列表或是子查詢中。
- LIKE:用指定的字串來找尋記錄。
- NOT:可將邏輯運算元的值反向。
邏輯函數- IIF(boolean_expression, true_value, false_value)
- CHOOSE (index, val_1, val_2 [, val_n ])
-
閱讀 > 6 分鐘 10.1 Chap10_以 UNION 合併多個查詢結果 06:30
-
閱讀 > 13 分鐘 10.2 Chap10_子查詢 Subquery 13:34
-
閱讀 > 17 分鐘 10.3 Chap10_以 SSMS 設計 SQL 查詢 17:50
-
閱讀 > 6 分鐘 10.4 Chap10_T-SQL 的常數、隱含式型別轉換 06:10
-
閱讀 > 10 分鐘 10.5 Chap10_T-SQL 的運算子、處理欄位中 NULL 值 10:06
-
閱讀 > 1 分鐘 10.8 SQL 程式檔 & 資料庫"練習10"
-
11.建立檢視表 (112/11/20)學習重點檢視表的優點:增加可讀性、資料安全及保密、降低查詢的複雜度、方便程式維護。檢視表與資料表的差異:
- 資料表是實際儲存記錄的地方。
- 檢視表並不保存任何記錄,它儲存的是查詢敘述。
SSMS 建立檢視表CREATE VIEW 敘述 建立檢視表簡單型語法:完整型語法:select_statement 不可以使用INTO、ORDER BY、COMPUTE 或 COMPUTE BY
編輯檢視表記錄條件:- 檢視表中的欄位,若源自於計算欄位,或是運用彙總函數、運算式所產生的,則該欄位的值不能在檢視表中更改。
- 來源資料表中不必 (也不可) 輸入的欄位,例如設定識別屬性或 Timestamp 型別的欄位,在檢視表中同樣也不必 (不能) 輸入或更改。
- 在檢視表中更動的內容最好只影響到單一資料表,以免發生出乎意料的結果。
-
閱讀 > 6 分鐘 11.1 Chap11_檢視表的用途 06:26
-
閱讀 > 3 分鐘 11.2 Chap11_SSMS 建立檢視表 03:06
-
閱讀 > 12 分鐘 11.3 Chap11_以 CREATE VIEW 敘述建立檢視表 12:11
-
閱讀 > 1 分鐘 11.6 SQL 程式檔 & 資料庫"練習11"
-
12.善用索引加快查詢效率 (112/11/27)學習重點索引可以提昇 SQL 查詢效率叢集索引:建立叢集索引後,資料表的記錄資料會依叢集索引欄位的鍵值來排序。非叢集索引:資料表的記錄不會依非叢集索引的鍵值來排序,葉節點是索引分頁,不是資料分頁。主索引 (Primary Index):資料表只有一個主索引,索引欄位可以是一個或多個欄位的組合 (複合索引),範例如下:UNIQUE 索引:系統會建立一個非叢集的唯一索引,範例如下:一般索引:索引欄位值並不需要是唯一的,加速資料表的搜尋與排序。T-SQL 建立索引T-SQL 修改索引使用 SSMS 建立 & 修改索引
-
閱讀 > 5 分鐘 12.2 Chap12_SSMS 的物件總管來建立與管理索引 05:27
-
閱讀 > 4 分鐘 12.3 Chap12_SSMS 的資料表設計工具來建立與管理索引 04:05
-
閱讀 > 12 分鐘 12.4 Chap12_以 SQL 語法處理索引 12:18
-
閱讀 > 11 分鐘 12.5 Chap12_設定計算欄位的索引 11:30
-
閱讀 > 12 分鐘 12.6 Chap12_設定檢視表的索引 12:03
-
閱讀 > 6 分鐘 12.7 Chap12_篩選的索引 06:16
-
分數 > 60, 2023-12-04 12.8 測驗:第12章-善用索引加快查詢效率
-
閱讀 > 1 分鐘 12.10 SQL 程式檔 & 資料庫"練習12"
-
13.T-SQL 程式設計 (112/12/4)請進入SIP填寫後測問卷學習重點批次執行
- 用 GO 分隔不同的批次,放在一起的批次,其中一個指令錯誤,即會停止。CREATE VIEW、CREATE DEFAULT、CREATE RULE、CREATE PROCEDURE & CREATE TRIGGER 只能單獨方在一個批次中執行。
批次錯誤時系統的處理方式:- 編譯錯誤時:不會有任何敘述被執行
- 執行中發生較大的錯誤時:之前的敘述不會影響,之後不會被執行。
- 執行中發生輕微的錯誤時:只取消該錯誤的批次,其他不受影響。
使用註解 (Comment)
區域變數- DECLARE @local_variable data_type
- 變數不能是 text、ntext 或 image 資料型別
全域變數- 是系統預定義的,返回一些系統資訊,全域性變數以兩個 @@ 開頭
table 型別的變數
條件判斷與流程控制- IF...ELSE 條件判斷
- WHILE 迴圈
- CASE 函數
- GOTO 跳躍控制
特殊的程式控制- WAITFOR 時間延遲
- RETURN 傳回值
- EXECUTE 執行預存程序或 SQL 字串
- NULL 值的處理
-
閱讀 > 8 分鐘 13.1 Chap13_批次執行、使用註解、區域變數與全域變數 08:19
-
閱讀 > 3 分鐘 13.2 Chap13_table 型別的變數 03:56
-
閱讀 > 14 分鐘 13.3 Chap13_條件判斷與流程控制 14:24
-
閱讀 > 14 分鐘 13.4 Chap13_特殊的程式控制 14:02
-
閱讀 > 12 分鐘 13.5 Chap13_錯誤處理 12:20
-
閱讀 > 15 分鐘 13.8 Chap13_使用不同資料庫或不同 Server 中的物件 15:51
-
分數 > 60, 2023-12-11 13.9 測驗:第13章-T-SQL 程式設計
-
14.預存程序 (112/12/18)請進入SIP填寫後測問卷提醒:1/8 星期一,期末考試,線上測驗(選擇20題)時間:19:00 - 19:30
地點:在家、教室均可學習重點預存程序:- 將例行、常用和複雜的資料庫操作預先建指令敘述的集合。
- 預存程序只需編譯一次,就可以執行多次。
- 執行預存程序可以增進系統效能。
預存程序的優點:增加執行效率、節省網路頻寬、模組化程式設計、提供安全性。
預存程序種類:使用者自訂預存程序、系統預存程序以 sp_ 開頭、延伸預存程序以 xp_ 開頭。修改預存程序刪除預存程序-
閱讀 > 9 分鐘 14.1 Chap14_預存程序簡介 09:25
-
閱讀 > 10 分鐘 14.2 Chap14_以 SQL 建立預存程序與使用 10:35
-
閱讀 > 5 分鐘 14.3 Chap14_SSMS 建立、執行、管理預存程序 05:23
-
分數 > 60, 2023-12-25 14.4 測驗:第14章-預存程序(未填期末問卷者,小心您的期末成績)
-
閱讀 > 1 分鐘 14.6 SQL 程式檔 & 資料庫"練習14"
-
15.自訂函數與順序物件 (112/12/25)請進入SIP填寫後測問卷提醒:1/8 星期一,期末考試,線上測驗(選擇20題)時間:19:00 - 19:30
地點:在家、教室均可學習重點自訂函數與預存程序的差異- 預存程序只能傳回一個整數值。自訂函數可傳回各種型別的資料,除 text、ntext、image、cursor 與 rowversion。
- 預存程序可以經由參數來傳回資料 (參數設為 OUTPUT),自訂函數只能接收參數。
- 預存程序可以做資料異動,例如新增或修改資料、更改資料庫的設定…等。自訂函數則不能更改資料庫的狀態或內容。
- 預存程序必須以 EXECUTE 來執行,自訂函數也可不需 EXECUTE 則可以。
- 自訂函數禁止使用 TRY ... CATCH
順序物件- 數值序列會以定義的間隔,依照遞增或遞減的順序來產生
- 順序物件不受限於單一資料表,可共用一個順序物件替不同資料表的不同欄位產生流水號。
T-SQL 建立順序物件-
閱讀 > 15 分鐘 15.3 Chap15_自訂函數的使用技巧 15:04
-
閱讀 > 13 分鐘 15.4 Chap15_使用順序物件 13:36
-
閱讀 > 1 分鐘 15.6 SQL 程式檔 & 資料庫"練習15"