本文以實驗教學形式,系統講解 SQL Server 中資料庫表的創建、修改、刪除及數據增刪改查(CRUD)核心操作,適用於初學者快速建立實戰技能。
stu_DB。方式一:企業管理器圖形化建表
方式二:T-SQL 腳本建表(推薦,可版本控制)
-- 語法結構
CREATE TABLE [database_name.[owner].] table_name (
column_name data_type [DEFAULT 'default_value']
[CONSTRAINT constraint_name constraint_definition],
...
[IDENTITY (seed, increment)]
) [ON {filegroup | DEFAULT}] [TEXTIMAGE_ON {filegroup | DEFAULT}];
-- 範例 1:學生表(含主鍵、非空、檢查、默認約束)
CREATE TABLE student (
sno CHAR(8) PRIMARY KEY,
sname CHAR(10) NOT NULL,
ssex CHAR(2) CHECK (ssex='男' OR ssex='女'),
sage SMALLINT,
sdept CHAR(20) DEFAULT ('計算機系')
);
-- 範例 2:自增主鍵 + 默認值 + 檢查約束
CREATE TABLE ta1 (
pid INT IDENTITY(1,1) PRIMARY KEY,
[name] CHAR(10) DEFAULT 'unknow',
birthday DATETIME CHECK (birthday < GETDATE())
);
-- 1. 新增列
ALTER TABLE student ADD class CHAR(6);
-- 2. 刪除列
ALTER TABLE student DROP COLUMN Sdept;
-- 3. 新增帶 CHECK 約束的列
ALTER TABLE student ADD grade INT CONSTRAINT ch_grade CHECK (grade < 100);
-- 4. 新增帶默認值的可空列
ALTER TABLE student ADD matriculationday SMALLDATETIME NULL
CONSTRAINT adddateflt DEFAULT GETDATE();
實驗要求:自行設計不少於 8 條表結構修改語句並驗證。
刪除有外鍵關聯的表時,必須先刪除子表(如 SC、Result),再刪除父表(Student、Course、Grade),否則會報錯。企業管理器中可直接右鍵刪除,腳本用 DROP TABLE table_name。
EXEC sp_addtype newtype2, 'CHAR(6)', 'not null'。EXEC sp_rename 'old_name', 'new_name'。EXEC sp_droptype 'type_name'。注意:被表引用的類型無法直接刪除。-- 顯式列出欄位(推薦)
INSERT INTO student (Sno, Sname, Ssex, Sage, Sdept)
VALUES ('04265005', '劉輝', '男', 21, '計算機系');
-- 利用默認值
INSERT INTO student (Sno, Sname, Ssex, Sage)
VALUES ('04265006', '李慧', '女', 21); -- Sdept 自動填 '計算機系'
-- 自增表插入
INSERT INTO ta1 ([name], birthday) VALUES ('lan', '1977-03-02');
驗證重點:違反唯一性/檢查/外鍵約束時的報錯行為;默認值生效情況;非法數據是否能入庫。
UPDATE student SET Sdept = '機械系' WHERE Sno = '04265005';
同樣需驗證約束邊界條件。
-- 條件刪除(記錄日誌,可回滾,觸發器生效) DELETE FROM student WHERE Sno = '04265005'; -- 全表清空(不記錄日誌,不可回滾,重置自增種子,速度極快) TRUNCATE TABLE student;
驗證重點:外鍵約束下的刪除阻擋行為。
為後續實驗,需向 5 張核心表各插入 ≥20 條測試數據,涵蓋各類約束邊界值。建議編寫腳本自動化生成,確保數據分布真實。
本實驗涵蓋了從對象創建到數據維護的完整生命周期,掌握這些技能是 SQL Server 開發與管理的基石。