SQL Server實戰三:資料庫表完整性約束及索引、檢視的建立、編輯與刪除

疯狂学习GIS發表於2024-04-29

  本文介紹基於Microsoft SQL Server軟體,實現資料庫表完整性約束索引檢視的建立、編輯與刪除等操作的方法。

目錄
  • 1 互動式為資料庫表S建立PRIMARY KEY約束
  • 2 互動式建立資料庫表TEST_SC,建立PRIMARY KEY約束
  • 3 T-SQL建立資料庫表T的PRIMARY KEY約束
  • 4 T-SQL建立資料庫表TEST_C,以列約束形式建立PRIMARY KEY約束
  • 5 T-SQL建立資料庫表TEST_TC,以表約束形式建立PRIMARY KEY約束
  • 6 互動式向資料庫表TEST_TC中CNO與TNO列新增UNIQUE約束
  • 7 T-SQL為資料庫表C中CN列建立UNIQUE約束
  • 8 互動式為資料庫表TEST_SC中新增新列ID_SC,設定列屬性IDENTITY
  • 9 T-SQL向資料庫表TEST_TC中新增列ID_TC,設定列屬性IDENTITY
  • 10 互動式刪除資料庫表TEST_SC的主鍵PK_TEST_SC並取消ID_SC列標識屬性
  • 11 T-SQL刪除資料庫表C中列CN的UNIQUE約束
  • 12 互動式為資料庫表T建立DEFAULT和CHECK約束
  • 13 T-SQL為資料庫表S建立CHECK約束
  • 14 T-SQL建立資料庫表TEST_S幷包含DEFAULT和CHECK約束
  • 15 T-SQL刪除資料庫表T中PROF和COMM間CHECK約束
  • 16 互動式刪除資料庫表TEST_S中列SEX的DEFAULT約束列和列AGE的CHECK約束
  • 17 互動式建立表S與SC間參照關係
  • 18 T-SQL建立資料庫表T與TC間參照關係
  • 19 建立資料庫jxsk中5個表間關聯關係圖
  • 20 互動式刪除表C與表TC間引用關係
  • 21 互動式為表SC建立PRIMARY KEY,在此主鍵自動建立聚簇索引
  • 22 T-SQL建立資料庫表T在TNO列上按降序建立聚簇索引IND_TNO
  • 23 互動式為表T在TN列上按升序和在AGE列上按降序建立非聚簇索引IND_TN_AGE
  • 24 T-SQL建立資料庫表C在CN列上按升序建立聚簇索引IND_CN
  • 25 互動式刪除C索引IND_CN
  • 26 T-SQL刪除索引IND_TN_AGE
  • 27 互動式建立檢視
  • 28 互動式建立成績檢視VIEW_SCORETABLE
  • 29 T-SQL建立課程表檢視VIEW_CTABLE
  • 30 互動式刪除檢視欄位
  • 31 T-SQL為檢視ViewCTABLE增加一個課時欄位Cttinyint
  • 32 互動式修改檢視資料以實現修改資料庫表資料
  • 33 對檢視執行INSERT語句
  • 34 修改檢視定義後進行插入操作
  • 35 T-SQL對檢視進行DELETE操作並檢視資料變化
  • 36 互動式刪除檢視
  • 37 T-SQL刪除檢視

  系列文章中示例資料來源於《SQL Server實驗指導(2005版)》一書。依據本系列文章的思想與對操作步驟、程式碼的詳細解釋,大家用自己手頭的資料,可以將相關操作與分析過程加以完整重現。

1 互動式為資料庫表S建立PRIMARY KEY約束

(1) 啟動Microsoft SQL Server 2008 R2軟體;

(2) 在“物件資源管理器”窗格中,在“資料庫”處右鍵,在彈出的選單中選擇“附加”選項;

(3) 選擇需要加以附加的jxsk資料庫物理檔案,選擇定位資料夾“G:\sql\chutianjia sql”並選擇對應資料庫jxsk的物理檔案並選擇“確定”按鈕,再次選擇“確定”即可;

(4) 選擇“資料庫”→“jxsk”→“表”,右擊並在彈出的選單中選擇“設計”選項,如下圖;

image

(5) 選擇SNO列,右擊並選擇“設定主鍵”,如下圖;

(6) 儲存修改,關閉表設計器;

2 互動式建立資料庫表TEST_SC,建立PRIMARY KEY約束

(1) 在“物件資源管理器”窗格中,在“資料庫”→“jxsk”→“表”處右鍵,在彈出的選單中選擇“新建表”選項,輸入TEST_SC各列的設定,如下圖;

(2) 同時選擇SNO和CNO列, 右擊並選擇“設定主鍵”,在SNO列和CNO列的行選擇器中各顯示一把鑰匙,表示SNO與CNO是關係TEST_SC的主鍵。此時SNO和CNO列中“允許NULL值”列的對勾消失,表示SNO、CNO都不能取空值,如下圖;

(3) 儲存修改,輸入表名TEST_SC,關閉表設計器,重新命名後如下圖;

3 T-SQL建立資料庫表T的PRIMARY KEY約束

(1) 在“物件資源管理器”窗格中,在“資料庫”→“jxsk”→“表”→“dbo.T”處右鍵,在彈出的選單中選擇“設計”選項,如下圖;

(2) 將TNO列“允許NULL值”值設定為非空,儲存修改,如下圖;關閉表設計器;

(3) 單擊螢幕上方 “工具欄”選單中的“新建查詢”按鈕,開啟“查詢編輯器”視窗,並在“查詢編輯器”視窗中輸入以下T-SQL語句:

USE jxsk
GO
ALTER TABLE T
ADD CONSTRAINT PK_TNO PRIMARY KEY(TNO)
GO

(4) 將jxsk設定為當前資料庫,單擊 “工具欄”中的“執行(x)”按鈕,即可執行上述T-SQL語句,如下圖;

(5) 在“物件資源管理器”窗格中,在“資料庫”→“jxsk”→“表”→“dbo.T”處右鍵,在彈出的選單中選擇“重新整理”選項,選擇“列”與“索引”,可見其所示內容中已存在透過上述方法新建立的聚集型別索引PK_TNO,如下圖;

4 T-SQL建立資料庫表TEST_C,以列約束形式建立PRIMARY KEY約束

(1) 單擊螢幕上方 “工具欄”選單中的“新建查詢”按鈕,開啟“查詢編輯器”視窗,並在“查詢編輯器”視窗中輸入以下T-SQL語句:

USE jxsk
GO
CREATE TABLE TEST_C(
CNO CHAR(2)CONSTRAINT PK_TEST_C PRIMARY KEY,
CN CHAR(10),
CT TINYINT)
GO

(2) 將jxsk設定為當前資料庫,單擊 “工具欄”中的“執行(x)”按鈕,即可執行上述T-SQL語句,如下圖;

(3) 在“物件資源管理器”窗格中,在“資料庫”→“jxsk”→“表”→“dbo.TEST_C”處右鍵,在彈出的選單中選擇“重新整理”選項,選擇“列”與“索引”,可見其所示內容中已存在透過上述方法新建立的聚集型別索引PK_ TEST_C,如下圖;

5 T-SQL建立資料庫表TEST_TC,以表約束形式建立PRIMARY KEY約束

(1) 單擊螢幕上方 “工具欄”選單中的“新建查詢”按鈕,開啟“查詢編輯器”視窗,並在“查詢編輯器”視窗中輸入以下T-SQL語句:

USE jxsk
GO
CREATE TABLE TEST_TC(
TNO CHAR(2),
CNO CHAR(2),
CONSTRAINT PK_TEST_TC PRIMARY KEY(TNO,CNO))
GO

(2) 將jxsk設定為當前資料庫,單擊 “工具欄”中的“執行(x)”按鈕,即可執行上述T-SQL語句,如下圖;

(3) 在“物件資源管理器”窗格中,在“資料庫”→“jxsk”→“表”→“dbo.TEST_TC”處右鍵,在彈出的選單中選擇“重新整理”選項,選擇“列”與“索引”,可見其所示內容中已存在透過上述方法新建立的聚集型別索引PK_ TEST_TC,如下圖;

6 互動式向資料庫表TEST_TC中CNO與TNO列新增UNIQUE約束

(1) 在“物件資源管理器”窗格中,在“資料庫”→“jxsk”→“表”→“dbo.TC”處右鍵,在彈出的選單中選擇“設計”選項;

(2) 單擊工具欄“管理索引和鍵”按鈕,選擇“新增”,按要求設定名稱;單擊“列”右端省略號按鈕,單擊第二行第一列下拉按鈕,選擇CNO列,單擊“確定”按鈕;在“型別”處選擇“唯一值”,如下四幅圖;

(3) 關閉對話方塊;

7 T-SQL為資料庫表C中CN列建立UNIQUE約束

(1) 單擊螢幕上方 “工具欄”選單中的“新建查詢”按鈕,開啟“查詢編輯器”視窗,並在“查詢編輯器”視窗中輸入以下T-SQL語句:

USE jxsk
GO
ALTER TABLE C
ADD CONSTRAINT UNIQUE_C UNIQUE(CN)
GO

(2) 將jxsk設定為當前資料庫,單擊 “工具欄”中的“執行(x)”按鈕,即可執行上述T-SQL語句,如下圖;

(3) 在“物件資源管理器”窗格中,在“資料庫”→“jxsk”→“表”→“dbo. C”處右鍵,在彈出的選單中選擇“重新整理”選項,選擇“列”與“索引”,可見其所示內容中已存在透過上述方法新建立的聚集型別索引PK_ TEST_C與非聚集型別索引UNIQUE_C,如下圖;

8 互動式為資料庫表TEST_SC中新增新列ID_SC,設定列屬性IDENTITY

(1) 在“物件資源管理器”窗格中,選擇“資料庫”→“jxsk”→“表”,右擊“dbo.TEST_SC”,在彈出的選單中選擇“設計”;

(2) 插入新空行,輸入列名ID_SC,資料型別為int,且不許為空;選中此列,在“標識規範”左側的加號圖示處單擊,在開啟的列表中選擇“是”,如以下兩幅圖;

(3) 單擊工具欄中的儲存按鈕,並將視窗關閉;

9 T-SQL向資料庫表TEST_TC中新增列ID_TC,設定列屬性IDENTITY

(1) 單擊螢幕上方 “工具欄”選單中的“新建查詢”按鈕,開啟“查詢編輯器”視窗,並在“查詢編輯器”視窗中輸入以下T-SQL語句:

USE jxsk
GO
ALTER TABLE TEST_TC ADD ID_TC INT IDENTITY
GO

(2) 將jxsk設定為當前資料庫,單擊 “工具欄”中的“執行(x)”按鈕,即可執行上述T-SQL語句,如下圖;

(3) 在“物件資源管理器”窗格中,在“資料庫”→“jxsk”→“表”→“dbo. TEST_TC”處右鍵,在彈出的選單中選擇“設計”選項,檢視屬性視窗中“標識列”的屬性設定,如下圖;

10 互動式刪除資料庫表TEST_SC的主鍵PK_TEST_SC並取消ID_SC列標識屬性

(1) 在“物件資源管理器”窗格中,在“資料庫”→“jxsk”→“表”→“dbo. TEST_TC”處右鍵,在彈出的選單中選擇“設計”選項,如下圖;

(2) 單擊“標識規範”左側加號圖示,在“(是標識)”右側下拉按鈕開啟的下拉選單中選擇“否”;

(3) 選中SNO與CNO列,右擊選擇“刪除主鍵”,如下圖;關閉表設計器;

11 T-SQL刪除資料庫表C中列CN的UNIQUE約束

(1) 單擊螢幕上方 “工具欄”選單中的“新建查詢”按鈕,開啟“查詢編輯器”視窗,並在“查詢編輯器”視窗中輸入以下T-SQL語句,如下圖:

USE jxsk
GO
ALTER TABLE C DROP UNIQUE_C
GO

(2) 將jxsk設定為當前資料庫,單擊 “工具欄”中的“執行(x)”按鈕,即可執行上述T-SQL語句,如下圖;

(3) 在“物件資源管理器”窗格中,在“資料庫”→“jxsk”→“表”→“dbo.C”處右鍵,在彈出的選單中選擇“重新整理”選項,選擇“列”與“索引”,可見其所示內容中已不存在透過上述方法新建立的非聚集型別索引UNIQUE_C,鍵中也不含該索引,如下圖;

12 互動式為資料庫表T建立DEFAULT和CHECK約束

(1) 在“物件資源管理器”窗格中,在“資料庫”→“jxsk”→“表”→“dbo.C”處右鍵,在彈出的選單中選擇“設計”選項;

(2) 單擊選擇SEX列,然後在視窗下面的“列屬性”框中“預設值或繫結”輸入框中,輸入‘男’,在說明中輸入DE_T_SEX,如下圖;

(3) 單擊工具欄中的“管理CHECK約束”按鈕,開啟表T的“CHECK約束”對話方塊;單擊“新增”按鈕,檢視視窗內容變化。對視窗中的各項進行如下設定:在“(名稱)”輸入框中,把預設名改為CHECK_T,將“在建立或重新啟用時檢查現有資料”選項設定為“否”,單擊“表示式”右端的按鈕,開啟“CHECK約束表示式”對話方塊,輸入以下表示式,如以下圖:

(PROF='教授' AND COMM=4000)OR
(PROF='副教授' AND COMM=2000)OR
(PROF='講師' AND COMM=1500)OR
(PROF='助教' AND COMM=1000)

(4) 單擊“確定”→“確定”,如下圖;關閉對話方塊與設計器;

13 T-SQL為資料庫表S建立CHECK約束

(1) 單擊螢幕上方 “工具欄”選單中的“新建查詢”按鈕,開啟“查詢編輯器”視窗,並在“查詢編輯器”視窗中輸入以下T-SQL語句:

USE jxsk
GO
ALTER TABLE S WITH CHECK
ADD CONSTRAINT CHECK_AGE CHECK(AGE>=14 AND AGE<=40)
GO

(2) 將jxsk設定為當前資料庫,單擊 “工具欄”中的“執行(x)”按鈕,即可執行上述T-SQL語句,如下圖;

(3) 在“物件資源管理器”窗格中,在“資料庫”→“jxsk”→“表”→“dbo.S”處右鍵,在彈出的選單中選擇“重新整理”選項,選擇“約束”,可見其所示內容中已存在透過上述方法新建立約束CHECK_AGE,如下圖;

14 T-SQL建立資料庫表TEST_S幷包含DEFAULT和CHECK約束

(1) 單擊螢幕上方 “工具欄”選單中的“新建查詢”按鈕,開啟“查詢編輯器”視窗,並在“查詢編輯器”視窗中輸入以下T-SQL語句:

USE jxsk
GO
CREATE TABLE TEST_S(
SNO CHAR(2) NOT NULL,
SN CHAR(8) NOT NULL,
SEX CHAR(2) NULL CONSTRAINT DEFAULT_SEX DEFAULT '男'
CONSTRAINT CHECK_SEX CHECK(SEX='男' OR SEX='女'),
AGE TINYINT NULL CONSTRAINT DEFAULT_AGE DEFAULT 18,
CONSTRAINT CHECK_S_AGE CHECK(AGE>=14 AND AGE<=40))
GO

(2) 將jxsk設定為當前資料庫,單擊 “工具欄”中的“執行(x)”按鈕,即可執行上述T-SQL語句,如下圖;

(3) 在“物件資源管理器”窗格中,在“資料庫”→“jxsk”→“表”→“dbo.TEST_S”處右鍵,在彈出的選單中選擇“重新整理”選項,檢視“列”和“約束”,如下圖;

15 T-SQL刪除資料庫表T中PROF和COMM間CHECK約束

(1) 單擊螢幕上方 “工具欄”選單中的“新建查詢”按鈕,開啟“查詢編輯器”視窗,並在“查詢編輯器”視窗中輸入以下T-SQL語句:

USE jxsk
GO
ALTER TABLE T
DROP CONSTRAINT CHECK_T
GO

(2) 單擊 “工具欄”中的“執行(x)”按鈕,即可執行上述T-SQL語句,如下圖;

(3) 在“物件資源管理器”窗格中,在“資料庫”→“jxsk”→“表”→“dbo.T”處右鍵,在彈出的選單中選擇“重新整理”選項,選擇“約束”可見其所示內容中不已存在透過上述方法新建立的CHECK約束,如下圖;

16 互動式刪除資料庫表TEST_S中列SEX的DEFAULT約束列和列AGE的CHECK約束

(1) 在“物件資源管理器”窗格中,選擇“資料庫”→“jxsk”→“表”並右擊表TEXT_S,在彈出的選單中選擇“設計”;

(2) 在表格下方,清除“預設值”中的‘男’,如下圖;開啟CHECK約束對話方塊,在“選定的CHECK約束:”框中選擇CHECK_S_AGE約束;

(3) 單擊“刪除”按鈕,可以看到CHECK_S_AGE約束被刪除,如上方圖;

(4) 關閉表TEST_S“CHECK約束”對話方塊與表設計器;

17 互動式建立表S與SC間參照關係

(1) 在“物件資源管理器”窗格中,選擇“資料庫”→“jxsk”→“表”並右擊表SC,在彈出的選單中選擇“設計”;

(2) 單擊 “關係”按鈕,開啟“外來鍵關係”視窗,單擊“新增”按鈕,檢視到關係名是系統給出的預設名:FK_SC_SC。單擊“表和列規範”右端的按鈕,開啟“表和列”對話方塊。在“主鍵表”中,選定主表S,選定欄位SNO。在“外來鍵表”中,選定子表SC,選定欄位SNO。單擊“確定”按鈕關閉“表和列”對話方塊。將“外來鍵關係”對話方塊中的“在建立或重新啟用時檢查現有資料”一項設定為“否”。單擊“INSERT和UPDATE規範”左側的田按鈕,將“更新規則”一項設定為“級聯”,如下圖;

(3) 關閉“外來鍵關係”對話方塊,關閉表設計器,儲存對錶SC進行的上述修改。;

(4) 開啟資料表S與SC,對照其中學號為S1的記錄;把資料庫表S中的學號S1改為S9,資料庫表S中的內容次序發生改變,如圖所示。單擊SC表視窗,使其成為當前表,檢視到SC表中2個學號值是S1的都變為S9,且表SC中的記錄次序也發生了改變,如下圖;

18 T-SQL建立資料庫表T與TC間參照關係

(1) 點選螢幕上方 “工具欄”選單中的“新建查詢”按鈕,開啟“查詢編輯器”視窗,並在“查詢編輯器”視窗中輸入以下T-SQL語句:

USE jxsk
GO
ALTER TABLE TC WITH NOCHECK
ADD CONSTRAINT FK_T_TC FOREIGN KEY(TNO)REFERENCES T(TNO)
ON DELETE CASCADE
GO

(2) 單擊 “工具欄”中的“執行(x)”按鈕,即可執行上述T-SQL語句,如下圖;

(3) 在“物件資源管理器”窗格中,在“資料庫”→“jxsk”→“表”→“dbo.TC”處右鍵,在彈出的選單中選擇“重新整理”選項,選擇“鍵”可見其所示內容中已存在透過上述方法新建立的FK_T_TC約束,如下圖;

(4) 開啟資料庫表T與TC,使用“刪除”命令把資料庫表T學號值為T1的記錄刪除;單擊資料庫表TC使其成為當前視窗,單擊工具欄中的執行置鈕,檢視到TC表中2個學號值是T1的記錄都不存在了,如下圖;

19 建立資料庫jxsk中5個表間關聯關係圖

(1) 在“物件資源管理器”窗格中,選擇“資料庫”→“jxsk”,右擊資料關係圖,開啟2個視窗,一個是建立關係圖的視窗;一個是“新增表”視窗,其中列出了jxsk中的所有使用者表,如下圖;

(2) 選擇表C,單擊“新增”按鈕,表C即加入關係圖視窗中。重複此過程,把表S、SC、T、TC都新增到關係圖視窗中,新增完成後還可調整5個表的相對位置。新增到關係圖中的資料庫表如圖所示;

(3) 在關係圖視窗中,可以看到表T與TC之間已存在一條關係線;單擊並按住表C中的CNO欄位,拖動至表TC中的CNO欄位,鬆開滑鼠左鍵,同時開啟“外來鍵關係”和“表和列”兩個視窗,觀察視窗中的各項值。單擊“表和列”視窗的“確定”按鈕退出該視窗,然後在“外來鍵關係”視窗中,將“在建立或重新啟用時檢查現有資料”一項設定為“否”,單擊“INSERT和UPDATE規範”左側的田按鈕,將“更新規則”和“刪除規則”兩項均設定為“級聯”,單擊確定;重複步驟,形成五個表之間的關係關聯圖;

(4) 點選儲存按鈕,輸入關係圖名稱;關閉視窗;

(5) 在“物件資源管理器”窗格中,選擇“資料庫”→“jxsk”,選擇資料關係圖,可顯示關係圖;

20 互動式刪除表C與表TC間引用關係

(1) 在“物件資源管理器”窗格中,在“資料庫”→“jxsk”→“表”→“dbo.C”處右鍵,在彈出的選單中選擇“設計”選項;

(2) 在“選定的關係”框中,選擇名為FK_TC_C的關係,單擊“刪除”按鈕,此關係即被刪除。關閉外來鍵關係視窗,關閉表設計器視窗;

21 互動式為表SC建立PRIMARY KEY,在此主鍵自動建立聚簇索引

(1) 用表設計器開啟表SC;開啟“索引/鍵”對話方塊。在SC表設計器中,選擇“索引/鍵”選項,開啟“索引/鍵”對話方塊,如下圖示;此時視窗中內容為空,說明表SC中沒有建立任何索引。單擊“關閉”按鈕,返回表設計器;

(2) 同時選中列SNO和列CNO,單擊工具欄中的按鈕,即在SNO和CNO上建立了主鍵,如圖所示。

(3) 在SC表設計器中,右擊,選擇“索引/鍵”選項,開啟“索引/鍵”對話方塊,檢視列表中的資訊:索引“列”是SNO(ASC)和CNO(ASC),當前的索引“名稱”為PK_SC_1,“建立為聚集的”為“是”。此索引即是建立主鍵時,系統自動生成的聚簇索引。

(4) 關閉表設計器視窗;

22 T-SQL建立資料庫表T在TNO列上按降序建立聚簇索引IND_TNO

(1) 點選螢幕上方 “工具欄”選單中的“新建查詢”按鈕,開啟“查詢編輯器”視窗,並在“查詢編輯器”視窗中輸入以下T-SQL語句:

USE jxsk
GO
CREATE CLUSTERED INDEX IND_TNO ON T(TNO DESC)
GO

(2) 單擊 “工具欄”中的“執行(x)”按鈕,即可執行上述T-SQL語句。

(3) 在表設計器中,選擇“索引/鍵”選項,開啟“索引/鍵”對話方塊,可看到IND_TNO;

23 互動式為表T在TN列上按升序和在AGE列上按降序建立非聚簇索引IND_TN_AGE

(1) 用表設計器開啟資料庫 jxsk 中的資料庫表T。打卡建立“索引/鍵”對話方塊。在T表設計器中,右擊,選擇“索引/鍵”選項,開啟“索引/鍵”對話方塊,如圖所示。

(2) 單擊“新增”扭鈕,觀察“索引/鍵”對話方塊中各項的變化。在右側列表中,單擊“列”行中的一個單元格,再單擊該行右端的按鈕,開啟“索引列”對話方塊,按照圖所示進行設定。設定完成後單擊“確定”按鈕返回“索引/鍵”對話方塊。設定索引名稱並儲存;

24 T-SQL建立資料庫表C在CN列上按升序建立聚簇索引IND_CN

(1) 點選螢幕上方 “工具欄”選單中的“新建查詢”按鈕,開啟“查詢編輯器”視窗,並在“查詢編輯器”視窗中輸入以下T-SQL語句:

USE jxsk
GO
CREATE UNIQUE INDEX IND_CN ON C(CN)
GO

(2) 單擊 “工具欄”中的“執行(x)”按鈕,即可執行上述T-SQL語句。

25 互動式刪除C索引IND_CN

(1) 用表設計器開啟表SC;開啟“索引/鍵”對話方塊。在SC表設計器中,選擇“索引/鍵”選項,開啟“索引/鍵”對話方塊;

(2) 單擊刪除按鈕,儲存修改並關閉視窗;

26 T-SQL刪除索引IND_TN_AGE

(1) 點選螢幕上方 “工具欄”選單中的“新建查詢”按鈕,開啟“查詢編輯器”視窗,並在“查詢編輯器”視窗中輸入以下T-SQL語句:

USE jxsk
GO
DROP INDEX T.IND_TN_AGE
GO

(2) 單擊 “工具欄”中的“執行(x)”按鈕,即可執行上述T-SQL語句。

27 互動式建立檢視

(1) 在“物件資源管理器”中,展開資料庫jxsk,右擊“檢視”,在開啟的快捷選單中選擇“新建檢視”選項,如圖所示,即可開啟一個“新增表”對話方塊;

(2) 新增基本表。在“新增表”對話方塊中選擇表S,單擊“新增”按鈕,如圖所示,選擇“關閉”按鈕,關閉“新增表”對話方塊,返回建立檢視視窗,可看到建立檢視視窗中增加了表S,如圖所示。

(3) 在表S中,分別選中欄位SNO、SN、SEX、DEPT左側的核取方塊,表示選中這些欄位,將它們加入檢視中,觀察下面窗格中的變化,如圖所示。

(4) 單擊檢視設計器工具欄中的1按鈕,執行檢視定義。視窗下面的表格資料即為檢視的內容。單擊工具欄中的口按鈕,開啟對話方塊,輸入檢視名稱View_S,如圖所示。單擊“確定”按鈕即可儲存;

(5) 關閉“建立檢視視窗”,在“物件資源管理器”中,單擊資料庫jxsk中的“檢視”節點,右視窗“摘要”中的View_S即是剛建立的檢視,另一個為系統檢視資料夾,如下圖所示;

28 互動式建立成績檢視VIEW_SCORETABLE

(1) 在“物件資源管理器”中,展開資料庫jxsk,右擊“檢視”,在開啟的快捷選單中選擇“新建檢視”選項,開啟“新增表”視窗;

(2) 在“新增表”視窗中,選擇表C和表SC,單擊“新增”令,可看到建立檢視視窗上部分窗格中增加了表C和表SC,並檢視下面SQL窗格中語句的變化。以此類推,在“檢視”選項卡中新增檢視View_S。單擊“關閉”按鈕,關閉“新增表”視窗,返回建立檢視視窗;

(3) 在檢視View_S中,選中欄位SN左側的核取方塊,表示選中欄位SN。以此類推,在表C中選擇CN,在表SC中選擇SCORE,如圖所示; 選中檢視View_S中的SNO並將其拖曳到表SC中的SNO,檢視下面SQL窗格中語句的變化;同樣選中表SC中的CNO並拖曳到表C中的CNO,檢視下面SQL窗格中語句的變化;

(4) 單擊檢視設計器工具欄中按鈕,執行檢視定義。視窗下面的表格資料即是檢視的內容,如圖所示;

(5) 單擊工具欄中的口按鈕,開啟對話方塊,輸入檢視名稱View_SCORETABLE,單擊“確定”按鈕;

(6) 關閉“建立檢視視窗”。檢視資料庫中的檢視資訊。在“物件資源管理器”中,展開資料庫jxsk中的“檢視”節點, View_SCORETABLE即是剛建立的檢視,如上方圖所示;

29 T-SQL建立課程表檢視VIEW_CTABLE

(1) 擊螢幕上方 “工具欄”選單中的“新建查詢”按鈕,開啟“查詢編輯器”視窗,並在“查詢編輯器”視窗中輸入以下T-SQL語句:

USE jxsk
GO
CREATE VIEW VIEW_CTABLE
AS SELECT TN,CN FROM T,C,TC
WHERE T.TNO=TC.TNO AND C.CNO=TC.CNO
GO

(2) 單擊 “工具欄”中的“執行(x)”按鈕,即可執行上述T-SQL語句;

(3) 在“物件資源管理器”中,展開資料庫jxsk中的“檢視”節點, View_SCORETABLE即是剛建立的檢視;

30 互動式刪除檢視欄位

(1) 在“物件資源管理器”中,展開資料庫jxsk中的“檢視”節點。右擊View_S,在快捷選單中選擇“修改”選項,開啟設計檢視視窗,如圖所示。在此視窗中可檢視視窗中各部分內容的關係;

(2) 在資料庫表S中,取消選中SNO左端的核取方塊,即取消此項選擇,然後檢視視窗下部分列表和SQL語句的變化;

(3) 執行操作。單擊檢視設計器工具欄中的事按鈕,執行對檢視定義進行改變的操作。視窗下部分表格中顯示的是刪除SNO後檢視中的資料,如圖所示。儲存後關閉檢視設計器視窗。

31 T-SQL為檢視ViewCTABLE增加一個課時欄位Cttinyint

(1) 單擊螢幕上方 “工具欄”選單中的“新建查詢”按鈕,開啟“查詢編輯器”視窗,並在“查詢編輯器”視窗中輸入以下T-SQL語句:

USE jxsk
GO
ALTER VIEW VIEW_CTABLE
AS SELECT TN,CN,CT FROM T,C,TC
WHERE T.TNO=TC.TNO AND C.CNO=TC.CNO
GO

(2) 單擊 “工具欄”中的“執行(x)”按鈕,即可執行上述T-SQL語句。

(3) 在“物件資源管理器”中,展開資料庫jxsk中的“檢視”節點,在右窗格的“摘要”中,右擊檢視View_CTABLE,在開啟的快捷選單中選擇“開啟檢視”項,開啟檢視ViewCTABLE的資料視窗,顯示出修改後的檢視資料,如圖所示;

32 互動式修改檢視資料以實現修改資料庫表資料

(1) 分別開啟檢視View S和資料庫表S的內容,如圖所示,可見兩個表中“李奇”記錄的各欄位資料相同;

(2) 在檢視View_S中,把“李奇”的系名DEPT“外語”改為“計算機”。單擊薄按鈕,執行進行這個改變的操作,如圖所示。單擊表S視窗,使其成為當前視窗,檢視到“李奇”的DEPT欄位值仍然是“外語”,單擊按鈕霸,再檢視“李奇”的DEPT欄位值與當前的檢視View_S中的改變一致,如下圖所示。

33 對檢視執行INSERT語句

(1) 單擊螢幕上方 “工具欄”選單中的“新建查詢”按鈕,開啟“查詢編輯器”視窗,並在“查詢編輯器”視窗中輸入以下T-SQL語句:

USE jxsk
GO
INSERT INTO VIEW_S VALUES('S8','古明','男','自動化')
GO

(2) 單擊 “工具欄”中的“執行(x)”按鈕,顯示執行失敗。這是因為,檢視View_S來源於基本表S,但卻不包含基本表S的主鍵SNO,主鍵的性質是不許取空值。當向檢視中插入一行新資料時,因沒有SNO欄位值,所以,從檢視到基本表對映插入此行資料時,表S中的SNO欄位值自動取空值,這是主鍵所不允許的,故執行失敗。

34 修改檢視定義後進行插入操作

(1) 單擊螢幕上方 “工具欄”選單中的“新建查詢”按鈕,開啟“查詢編輯器”視窗,並在“查詢編輯器”視窗中輸入以下T-SQL語句:

USE jxsk
GO
ALTER VIEW VIEW_S
AS SELECT SNO,SN,SEX,DEPT FROM S
GO

(2) 單擊 “工具欄”中的“執行(x)”按鈕,即可執行上述T-SQL語句。

(3) 在“物件資源管理器”中,分別開啟檢視View_S和資料庫表S的資料視窗,兩個視窗中的資料的對應行列完全相同;

(4) 單擊螢幕上方 “工具欄”選單中的“新建查詢”按鈕,開啟“查詢編輯器”視窗,並在“查詢編輯器”視窗中輸入以下T-SQL語句:

USE jxsk
GO
INSERT INTO VIEW_S VALUES('S8','古明','男','自動化')
GO

(5) 單擊 “工具欄”中的“執行(x)”按鈕,即可執行上述T-SQL語句。

(6) 開啟檢視View_S和資料庫表S的資料視窗,如圖所示,“古明”的記錄已插入到檢視中。再單擊表S視窗中的按鈕,更新當前表內容,如圖所示,“古明”的記錄也已插入資料庫表S中;分別關閉檢視和資料庫表的視窗;

35 T-SQL對檢視進行DELETE操作並檢視資料變化

(1) 在“物件資源管理器”中,分別開啟檢視View_S和資料庫表S的資料視窗,兩個視窗中的內容是一致的,都存在學號是S8的學生記錄;

(2) 單擊螢幕上方 “工具欄”選單中的“新建查詢”按鈕,開啟“查詢編輯器”視窗,並在“查詢編輯器”視窗中輸入以下T-SQL語句:

USE jxsk
GO
DELETE VIEW_S WHERE SNO='S8'
GO

(3) 單擊 “工具欄”中的“執行(x)”按鈕,即可執行上述T-SQL語句。

(4) 單擊View_S檢視視窗選項卡,然後單擊按鈕,更新當前檢視內容,如圖所示,學號是S8的學生記錄已經不存在。再單擊表S視窗選項卡和按鈕,更新當前表內容,如圖所示,學號是S8的學生記錄也已經不存在。分別關閉檢視和資料庫表的視窗;

36 互動式刪除檢視

(1) 在“物件資源管理器”中,單擊資料庫jxsk中的檢視節點,右窗格“摘要”中的內容即為資料庫jxsk中的檢視內容。

(2) 在右窗格中,右擊檢視View_S,在開啟的快捷選單中選擇“刪除”選項,開啟“刪除物件”對話方塊。

(3) 檢視“要刪除的物件”列表,單擊要刪除的檢視View_S左側的核取方塊,單擊“確定”按鈕,檢視View_S即被刪除。

(4) 在“物件資源管理器”中,重新整理資料庫jxsk中的“檢視”節點,可看到檢視View_S已經不存在;

37 T-SQL刪除檢視

(1) 單擊螢幕上方 “工具欄”選單中的“新建查詢”按鈕,開啟“查詢編輯器”視窗,並在“查詢編輯器”視窗中輸入以下T-SQL語句:

USE jxsk
GO
DROP VIEW VIEW_CTABLE
GO

(2) 單擊 “工具欄”中的“執行(x)”按鈕,即可執行上述T-SQL語句。

相關文章