筆記摘要:

講述了在SQL Server中創建數據表的完整過程,包括選擇目標數據庫、定義表結構、設置主鍵與非空約束、使用可變與固定長度字符串類型,並示範了教師表、課程分類表和課程表的創建方法。

思維導圖:

C#上位機軟件:17.4 基於T-SQL創建數據表和check檢查約束_主鍵

學習筆記:

**指向目標數據庫[00:23](#?seek_t=23)** 

  創建數據表前必須先指定當前要操作的數據庫,避免誤建到master數據庫中導致後續問題。

- **判斷數據表是否存在[01:12](#?seek_t=72)** 

  建議在創建前檢查表是否已存在,防止重複創建出錯,提高腳本可重複執行性。

- **創建數據表基本語法格式[01:58](#?seek_t=118)** 

  使用`CREATE TABLE`關鍵字後接表名,括號內定義列結構,結尾使用`GO`命令提交。

- **定義講師編號列及主鍵[02:14](#?seek_t=134)** 

  第一列為`teacher_id int`,作為唯一標識,需設為主鍵(primary key),確保數據唯一性且不可為空。

- **主鍵的特性説明[03:09](#?seek_t=189)** 

  主鍵用於唯一區分表中每條記錄,具有非空性和唯一性,是數據完整性的重要保障。

- **定義登錄賬號列[03:29](#?seek_t=209)** 

  登錄賬號可為郵箱或手機號,使用`varchar(50)`定義為可變長度字符串類型。

- **可變長度與固定長度字符串對比[03:43](#?seek_t=223)** 

  - `varchar(n)`:可變長度,實際佔用空間隨內容變化,節省存儲。 

  - `char(n)`:固定長度,不足部分補空格,可能造成空間浪費。

- **大文本字段類型介紹[04:13](#?seek_t=253)** 

  對於大量字符存儲,可使用`text`類型;另有`nvarchar`和`nchar`支持Unicode編碼。

- **Unicode字符串類型特點[04:30](#?seek_t=270)** 

  `nvarchar(n)`中n代表字符數,每個漢字佔兩個字節,因此`nvarchar(50)`可存50個漢字或100個英文字符。

- **國內常用字符串類型建議[05:06](#?seek_t=306)** 

  國內場景下`varchar`通常足夠,若用`nvarchar`則長度可減半設置以優化存儲。

- **非空約束的添加[05:30](#?seek_t=330)** 

  使用`NOT NULL`約束保證字段必須有值,如登錄賬號、密碼等關鍵字段。

- **主鍵自動非空説明[05:44](#?seek_t=344)** 

  主鍵字段默認不可為空,無需顯式添加`NOT NULL`,但其他字段需手動指定。

- **定義密碼字段[05:52](#?seek_t=352)** 

  密碼字段命名為`password`,類型設為`varchar(18)`,並添加`NOT NULL`約束。

- **密碼長度約束提示[06:22](#?seek_t=382)** 

  可額外添加檢查約束限制密碼長度為6到18位,具體實現後續講解。

- **定義講師姓名字段[06:28](#?seek_t=388)** 

  字段名為`teacher_name`,類型為`varchar(20)`,要求非空。

- **定義電話號碼字段[06:47](#?seek_t=407)** 

  字段名為`phone_number`,類型建議`varchar(11)`以適應手機號碼,也可根據需求擴展。

- **定義現住址字段[07:09](#?seek_t=429)** 

  地址字段使用`nvarchar(100)`,支持最多100個漢字,滿足中文地址存儲需求。

- **字段間逗號使用規範[05:26](#?seek_t=326)** 

  字段定義間用逗號分隔,最後一個字段後不能加逗號,否則語法錯誤。

- **創建教師表完成與驗證[08:00](#?seek_t=480)** 

  完成表定義後執行腳本,刷新對象資源管理器可見新表`teacher`生成。

- **主鍵標識查看[08:11](#?seek_t=491)** 

  在數據庫管理工具中,小鑰匙圖標表示該列為表的主鍵。

- **添加註釋説明[08:21](#?seek_t=501)** 

  可在代碼中添加註釋説明“創建講師表”,提升腳本可讀性。

- **創建課程分類表提示[08:35](#?seek_t=515)** 

  提示學員暫停視頻自行練習創建`course_category`表,包含分類ID和名稱字段。

- **課程分類表字段設計[08:48](#?seek_t=528)** 

  包含`category_id`(主鍵)和`category_name`(非空)兩個字段。

- **創建課程表結構[09:04](#?seek_t=544)** 

  新建`course`表,字段設計與教師表類似但內容不同。

- **定義課程ID字段[09:26](#?seek_t=566)** 

  `cos_id int`作為主鍵,唯一標識每門課程。

- **定義課程名稱字段[09:29](#?seek_t=569)** 

  `cos_name varchar(50)`存儲課程名稱,非空。

- **定義課程內容簡述字段[09:49](#?seek_t=589)** 

  `cos_content nvarchar(500)`存儲課程簡介,支持最多500個漢字。

- **定義課時字段[10:08](#?seek_t=608)** 

  `class_hour int NOT NULL`表示課程總課時,整數類型,不可為空。

- **定義學分字段[10:31](#?seek_t=631)** 

  `credit int NOT NULL`表示課程學分,整數類型,不可為空。

- **多表創建總結與保存[10:57](#?seek_t=657)** 

  根據業務需要可繼續添加其他數據表,當前示例共創建三張表:teacher、course_category、course。

- **腳本保存與重新執行[11:04](#?seek_t=664)** 

  及時保存SQL腳本文件,修改後可選中全部代碼重新執行以更新數據庫結構。

- **刷新驗證多表生成[11:19](#?seek_t=679)** 

  再次刷新表列表,確認三張數據表均已成功創建。

- **引入數據添加前的思考[11:25](#?seek_t=685)** 

  表創建完成後提出問題:直接插入數據可能存在風險,如何通過約束機制保證數據完整性?

- **預告下一主題:數據表約束[11:48](#?seek_t=708)** 

  下一部分將講解數據表的約束機制,解決數據添加時的完整性與有效性問題。


C#上位機軟件:17.4 基於T-SQL創建數據表和check檢查約束_主鍵_02

 1. 創建數據庫操作前,確保指定正確的數據庫名稱,避免數據誤建在master數據庫中,影響後續操作。 2. 在創建數據表時,使用create關鍵字並指定表名,如teacher,通過括號內定義列名、數據類型及主鍵等屬性,確保數據的唯一性和完整性。 3. 選擇合適的數據類型,如int、varchar、nchar等,根據數據特性設定列的約束條件,如not null,保證數據的有效性和安全性。 4. 通過主鍵、外鍵等關係定義表之間的關聯,以及通過添加註釋、約束等增強數據表的可讀性和可維護性,如講師編號作為主鍵,確保每位講師信息的唯一性。 5. 完成數據表創建後,通過執行SQL命令並刷新數據庫視圖,檢查數據表是否成功創建,同時驗證表結構和數據完整性,確保後續數據操作的順利進行。

C#上位機軟件:17.4 基於T-SQL創建數據表和check檢查約束_數據庫_03


C#上位機軟件:17.4 基於T-SQL創建數據表和check檢查約束_數據庫_04

 1. 創建課程分類表,包含分類編號和分類名稱,為後續課程發佈提供類目關聯基礎。 2. 確定課程表格式,確保與分類表結構一致,便於數據管理和檢索。 3. 課程表設計需明確課程與分類的關聯機制,即使現階段不實施,也為未來擴展留有空間。 4. 在課程分類表中,先完成基礎結構的建立,具體課程與分類的關聯邏輯可後續補充完善。 5. 課程分類表的建立是整個課程管理系統的基礎,確保後續課程管理流程的順利進行。

C#上位機軟件:17.4 基於T-SQL創建數據表和check檢查約束_數據庫_05

 1. 對話中討論了課程的基本信息修改,包括課程ID(cos ID)、課程名稱(cos name)以及課程內容簡述,要求內容不超過500漢字。 2. 提到了課程時長的設定,全程開發課程至少需要500課時,而高級進階課程則至少需要200課時,強調了課時數應為整數。 3. 課程學分被定義為credit int類型,且不能為空,這是課程信息中不可或缺的一部分。 4. 討論中提到了可能存在的其他數據庫表,暗示課程信息可能只是系統中眾多數據表之一,表明了系統設計的複雜性。 5. 對話最後提到的“勞特納”可能是對課程或系統某個方面的特定稱呼,但具體含義未在對話中明確解釋,需要進一步澄清。

C#上位機軟件:17.4 基於T-SQL創建數據表和check檢查約束_字段_06

 1. 創建並保存了三張數據表,通過執行命令和刷新操作,確保數據表成功添加到數據庫中,這是構建數據庫結構的基礎步驟。 2. 強調在添加數據前需考慮數據完整性,避免直接插入數據可能引發的問題,這是保證數據庫健康運行的關鍵環節。 3. 提出思考如何在添加數據時確保不出問題,引導學生探索數據庫約束機制,以增強數據表的穩定性和數據質量。 4. 鼓勵學生在理解數據表創建過程後,進一步學習和應用數據表的約束,這是提升數據庫管理能力的重要途徑。 5. 整個教學過程結合實踐操作與理論思考,旨在培養學生既掌握技術操作又具備問題解決能力,為後續深入學習奠定基礎。

C#上位機軟件:17.4 基於T-SQL創建數據表和check檢查約束_字段_07