版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、項(xiàng)目項(xiàng)目4 學(xué)生成績(jī)管理數(shù)據(jù)庫(kù)數(shù)據(jù)表學(xué)生成績(jī)管理數(shù)據(jù)庫(kù)數(shù)據(jù)表的創(chuàng)建和維護(hù)的創(chuàng)建和維護(hù) 1. 能利用能利用SQL SERVER Management Studio進(jìn)行數(shù)據(jù)表的創(chuàng)建、進(jìn)行數(shù)據(jù)表的創(chuàng)建、修改、刪除及數(shù)據(jù)庫(kù)完整性約束的設(shè)置。修改、刪除及數(shù)據(jù)庫(kù)完整性約束的設(shè)置。 2. 熟悉熟悉SQL語(yǔ)句,能利用語(yǔ)句,能利用Transact-SQL語(yǔ)句進(jìn)行數(shù)據(jù)表的創(chuàng)建、語(yǔ)句進(jìn)行數(shù)據(jù)表的創(chuàng)建、修改、刪除及數(shù)據(jù)庫(kù)完整性約束的設(shè)置。修改、刪除及數(shù)據(jù)庫(kù)完整性約束的設(shè)置。 3針對(duì)表的建立及它們之間的關(guān)系,進(jìn)一步深化對(duì)數(shù)據(jù)庫(kù)設(shè)計(jì)理針對(duì)表的建立及它們之間的關(guān)系,進(jìn)一步深化對(duì)數(shù)據(jù)庫(kù)設(shè)計(jì)理論的理解與運(yùn)用的能力。論的理解與運(yùn)
2、用的能力。能力目標(biāo)能力目標(biāo)項(xiàng)項(xiàng)目目描描述述假如把數(shù)據(jù)庫(kù)比作一座樓房,則數(shù)據(jù)表是真正存放數(shù)據(jù)的房間。數(shù)據(jù)表是數(shù)據(jù)庫(kù)的基本構(gòu)成單元,它用來(lái)保存用戶的各種數(shù)據(jù)。本項(xiàng)目的學(xué)習(xí)內(nèi)容主要是:通過(guò)學(xué)生成績(jī)數(shù)據(jù)庫(kù)中數(shù)據(jù)表的創(chuàng)建和管理,掌握數(shù)據(jù)表的概念、創(chuàng)建、管理和查看的方法;然后通過(guò)在已創(chuàng)建的數(shù)據(jù)表中插入、刪除、修改數(shù)據(jù),學(xué)會(huì)使用SSMS和Transact-SQL語(yǔ)句插入、刪除、修改表數(shù)據(jù);最后通過(guò)課堂實(shí)訓(xùn)、課外實(shí)訓(xùn)來(lái)進(jìn)一步加強(qiáng)數(shù)據(jù)庫(kù)數(shù)據(jù)表的創(chuàng)建和維護(hù)的實(shí)操能力。學(xué)學(xué)習(xí)習(xí)任任務(wù)務(wù)任務(wù)4.1:學(xué)生成績(jī)管理數(shù)據(jù)庫(kù)數(shù)據(jù)表的創(chuàng)建任務(wù)4.2:學(xué)生成績(jī)管理數(shù)據(jù)庫(kù)數(shù)據(jù)表的查看任務(wù)4.3:學(xué)生成績(jī)管理數(shù)據(jù)庫(kù)數(shù)據(jù)表的管理任務(wù)4
3、.4:學(xué)生成績(jī)管理數(shù)據(jù)庫(kù)中表數(shù)據(jù)的插入、修改及刪除項(xiàng)目描述及學(xué)習(xí)任務(wù)項(xiàng)目描述及學(xué)習(xí)任務(wù)4.1 4.1 學(xué)生成績(jī)管理數(shù)據(jù)庫(kù)數(shù)據(jù)表的創(chuàng)建學(xué)生成績(jī)管理數(shù)據(jù)庫(kù)數(shù)據(jù)表的創(chuàng)建在創(chuàng)建用戶數(shù)據(jù)庫(kù)后,接下來(lái)的重要工作就是創(chuàng)建和管理數(shù)據(jù)表。那么,什么在創(chuàng)建用戶數(shù)據(jù)庫(kù)后,接下來(lái)的重要工作就是創(chuàng)建和管理數(shù)據(jù)表。那么,什么是數(shù)據(jù)表呢?什么是記錄、字段呢?數(shù)據(jù)表如何創(chuàng)建呢是數(shù)據(jù)表呢?什么是記錄、字段呢?數(shù)據(jù)表如何創(chuàng)建呢? ?本學(xué)習(xí)任務(wù)就是通過(guò)學(xué)本學(xué)習(xí)任務(wù)就是通過(guò)學(xué)生成績(jī)管理數(shù)據(jù)庫(kù)數(shù)據(jù)表的創(chuàng)建來(lái)學(xué)習(xí)如何在生成績(jī)管理數(shù)據(jù)庫(kù)數(shù)據(jù)表的創(chuàng)建來(lái)學(xué)習(xí)如何在SSMSSSMS和和Transact-SQLTransact-SQL命令創(chuàng)建數(shù)命
4、令創(chuàng)建數(shù)據(jù)表的相關(guān)知識(shí)。據(jù)表的相關(guān)知識(shí)。任務(wù)描述任務(wù)描述 4.1.1 表的概述表的概述表是關(guān)系模型中表示實(shí)體的方式、用來(lái)組織和存儲(chǔ)數(shù)據(jù)、具有行列結(jié)構(gòu)的數(shù)據(jù)表是關(guān)系模型中表示實(shí)體的方式、用來(lái)組織和存儲(chǔ)數(shù)據(jù)、具有行列結(jié)構(gòu)的數(shù)據(jù)對(duì)象。如表對(duì)象。如表4-14-1所示。所示。在在SQL Server中,數(shù)據(jù)表分為永久數(shù)據(jù)表和臨時(shí)數(shù)據(jù)表兩種,永久數(shù)中,數(shù)據(jù)表分為永久數(shù)據(jù)表和臨時(shí)數(shù)據(jù)表兩種,永久數(shù)據(jù)表在創(chuàng)建后一直存儲(chǔ)在數(shù)據(jù)庫(kù)文件中,直至用戶刪除為止。而臨時(shí)據(jù)表在創(chuàng)建后一直存儲(chǔ)在數(shù)據(jù)庫(kù)文件中,直至用戶刪除為止。而臨時(shí)數(shù)據(jù)表在用戶退出或系統(tǒng)修復(fù)時(shí)被自動(dòng)刪除。數(shù)據(jù)表在用戶退出或系統(tǒng)修復(fù)時(shí)被自動(dòng)刪除。學(xué)號(hào)學(xué)號(hào)姓名姓
5、名性別性別專業(yè)專業(yè)出生年月出生年月家庭地址家庭地址聯(lián)系方式聯(lián)系方式總學(xué)分總學(xué)分00110001李倩倩李倩倩女女電子商務(wù)電子商務(wù)06/07/93杭州曙光路杭州曙光路7號(hào)號(hào)135789412586000112201王鐵樹王鐵樹男男計(jì)算機(jī)應(yīng)用計(jì)算機(jī)應(yīng)用08/12/93寧波中山路寧波中山路9號(hào)號(hào)134057213575700110002張大成張大成男男電子商務(wù)電子商務(wù)12/08/92溫州天地路溫州天地路12號(hào)號(hào)132057854126100112202趙明明趙明明男男計(jì)算機(jī)應(yīng)用計(jì)算機(jī)應(yīng)用11/08/93杭州莫干山路杭州莫干山路2號(hào)號(hào)158784512786200110003周芳芳周芳芳婦婦電子商務(wù)電子
6、商務(wù)05/12/93寧波大明路寧波大明路9號(hào)號(hào)13745891245604.1.1 表的概述表的概述元組元組(記錄記錄)屬性屬性(字段字段)表表4-1 學(xué)生基本信息表學(xué)生基本信息表表是由行和列構(gòu)成,表是由行和列構(gòu)成,行被稱為記錄,是組織數(shù)據(jù)的單位,每行代表唯一的一條行被稱為記錄,是組織數(shù)據(jù)的單位,每行代表唯一的一條記錄;列被稱為字段,每一列表示記錄的一個(gè)屬性記錄;列被稱為字段,每一列表示記錄的一個(gè)屬性。在表。在表4-1中,每一行代表一中,每一行代表一個(gè)學(xué)生,各列分別表示學(xué)生的詳細(xì)資料,如學(xué)號(hào),姓名,性別,專業(yè),出生年月,家個(gè)學(xué)生,各列分別表示學(xué)生的詳細(xì)資料,如學(xué)號(hào),姓名,性別,專業(yè),出生年月,
7、家庭地址,聯(lián)系電話、總學(xué)分等。庭地址,聯(lián)系電話、總學(xué)分等。在表中,行的順序可以是任意的,列的順序也可以是任意的,對(duì)于每一個(gè)表,在表中,行的順序可以是任意的,列的順序也可以是任意的,對(duì)于每一個(gè)表,最多可以允許用戶定義最多可以允許用戶定義10241024列。列。在同一個(gè)表中,列名必須是唯一的,即,不能有在同一個(gè)表中,列名必須是唯一的,即,不能有名稱相同的兩個(gè)或兩個(gè)以上的列同時(shí)存在于一個(gè)表中,同時(shí)在定義列時(shí)還需為每一個(gè)名稱相同的兩個(gè)或兩個(gè)以上的列同時(shí)存在于一個(gè)表中,同時(shí)在定義列時(shí)還需為每一個(gè)列指定一種數(shù)據(jù)類型。但是,在同一個(gè)數(shù)據(jù)庫(kù)的不同表中,可以使用相同的列名。列指定一種數(shù)據(jù)類型。但是,在同一個(gè)數(shù)據(jù)
8、庫(kù)的不同表中,可以使用相同的列名。4.1.1 表的概述表的概述表表4-2 學(xué)生表:用來(lái)存儲(chǔ)學(xué)生的基本信息學(xué)生表:用來(lái)存儲(chǔ)學(xué)生的基本信息字段名稱字段名稱 數(shù)據(jù)類型數(shù)據(jù)類型 長(zhǎng)度長(zhǎng)度 是否為空是否為空說(shuō)明說(shuō)明學(xué)號(hào)學(xué)號(hào) CharChar9 9 否否主鍵主鍵姓名姓名CharChar8 8否否性別性別BitBit是是0 0代表男生,代表男生,1 1代表女生,默認(rèn)為代表女生,默認(rèn)為0 0專業(yè)專業(yè)VarcharVarchar5050否否出生年月出生年月SmalldatetimeSmalldatetime是是家庭地址家庭地址VarcharVarchar100100是是聯(lián)系電話聯(lián)系電話CharChar1212是
9、是總學(xué)分總學(xué)分FloatFloat是是默認(rèn)為默認(rèn)為04.1.1 表的概述表的概述表表4-3課程表:用來(lái)存儲(chǔ)課程信息課程表:用來(lái)存儲(chǔ)課程信息字段名稱字段名稱 數(shù)據(jù)類型數(shù)據(jù)類型 長(zhǎng)度長(zhǎng)度 是否為空是否為空說(shuō)明說(shuō)明課程號(hào)課程號(hào)Char9否否主鍵主鍵課名課名Varchar50否否學(xué)時(shí)學(xué)時(shí)int否否=0學(xué)分學(xué)分Float否否=0備注備注Text4.1.1 表的概述表的概述表表4-4選課表:用來(lái)存儲(chǔ)學(xué)生的選課情況及成績(jī)選課表:用來(lái)存儲(chǔ)學(xué)生的選課情況及成績(jī)字段名稱字段名稱 數(shù)據(jù)類型數(shù)據(jù)類型 長(zhǎng)度長(zhǎng)度 是否為空是否為空說(shuō)明說(shuō)明學(xué)號(hào)學(xué)號(hào)Char9否否聯(lián)合主鍵,外鍵,參照學(xué)生表聯(lián)合主鍵,外鍵,參照學(xué)生表課程號(hào)課程
10、號(hào)Char9否否聯(lián)合主鍵,外鍵,參照課程表聯(lián)合主鍵,外鍵,參照課程表成績(jī)成績(jī)Float是是成績(jī)成績(jī)=0 并且并且 成績(jī)成績(jī)=0),=0),學(xué)分學(xué)分 int Not Null check (int Not Null check (學(xué)分學(xué)分=0),=0),備注備注 text,text,CONSTRAINT PK_kh primary key(CONSTRAINT PK_kh primary key(課程號(hào)課程號(hào)) ) ) 說(shuō)明:說(shuō)明: 學(xué)時(shí)學(xué)時(shí) int Not Null int Not Null constraint Ch_1 check (constraint Ch_1 check (學(xué)時(shí)學(xué)時(shí)=
11、0)=0),說(shuō)明對(duì)學(xué)時(shí)進(jìn)行檢查約束,說(shuō)明對(duì)學(xué)時(shí)進(jìn)行檢查約束,約束名為約束名為Ch_1Ch_1;同理,學(xué)分也是一;同理,學(xué)分也是一樣進(jìn)行檢查約束,只不過(guò)約束名由樣進(jìn)行檢查約束,只不過(guò)約束名由系統(tǒng)默認(rèn)。請(qǐng)注意系統(tǒng)默認(rèn)。請(qǐng)注意( (學(xué)分學(xué)分=0)=0)是需是需要加括號(hào)的。要加括號(hào)的。 CONSTRAINT PK_kh primary CONSTRAINT PK_kh primary key(key(課程號(hào)課程號(hào)) )是設(shè)置課程號(hào)為主鍵,是設(shè)置課程號(hào)為主鍵,從【例從【例4.74.7】及本例中可以得知,】及本例中可以得知,主鍵可以定義在列級(jí)上,如【例主鍵可以定義在列級(jí)上,如【例4.74.7】,也可以定義
12、在表級(jí)上,如】,也可以定義在表級(jí)上,如本例。同理,其他約束也是如此。本例。同理,其他約束也是如此。4.1.3用用Transact-SQL語(yǔ)句創(chuàng)建學(xué)生成績(jī)管理數(shù)據(jù)庫(kù)數(shù)據(jù)表語(yǔ)句創(chuàng)建學(xué)生成績(jī)管理數(shù)據(jù)庫(kù)數(shù)據(jù)表【例【例4.94.9】用】用Transact -SQLTransact -SQL語(yǔ)句完成表語(yǔ)句完成表4-4-4 4選課表(用來(lái)存儲(chǔ)學(xué)生的選課情況及成選課表(用來(lái)存儲(chǔ)學(xué)生的選課情況及成績(jī))的創(chuàng)建。績(jī))的創(chuàng)建。Use Use 學(xué)生成績(jī)管理學(xué)生成績(jī)管理GoGocreate table create table 選課表選課表( (學(xué)號(hào)學(xué)號(hào) char(9) Not Null ,char(9) Not Nul
13、l ,課程號(hào)課程號(hào) char(9) Not Null constraint char(9) Not Null constraint FK_1 foreign key references FK_1 foreign key references 課程表課程表( (課程號(hào)課程號(hào)),),成績(jī)成績(jī) float Null,float Null,constraint ch_cj check(constraint ch_cj check(成績(jī)成績(jī)=0 and =0 and 成績(jī)成績(jī)=100),=100),constraint PK_xh1 primary key(constraint PK_xh1 prim
14、ary key(學(xué)號(hào)學(xué)號(hào), ,課程號(hào)課程號(hào)),),constraint FK_2 foreign key(constraint FK_2 foreign key(學(xué)學(xué)號(hào)號(hào))references )references 學(xué)生表學(xué)生表( (學(xué)號(hào)學(xué)號(hào)) ) )說(shuō)明:說(shuō)明: 課程號(hào)課程號(hào) char(9) Not Null char(9) Not Null constraint FK_1 foreign key constraint FK_1 foreign key references references 課程表課程表( (課程號(hào)課程號(hào)) ),表,表示:外鍵約束名為示:外鍵約束名為FK_1FK_1,
15、選課表中,選課表中的課程號(hào)參照課程表中的課程號(hào),的課程號(hào)參照課程表中的課程號(hào),是定義在列上的。是定義在列上的。 constraint FK_2 foreign constraint FK_2 foreign key(key(學(xué)號(hào)學(xué)號(hào))references )references 學(xué)生表學(xué)生表( (學(xué)學(xué)號(hào)號(hào)) ),表示外鍵約束名為,表示外鍵約束名為FK_2FK_2,選,選課表中的學(xué)號(hào)參照學(xué)生表中的學(xué)號(hào),課表中的學(xué)號(hào)參照學(xué)生表中的學(xué)號(hào),是定義在表級(jí)上的。是定義在表級(jí)上的。 constraint PK_xh1 primary constraint PK_xh1 primary key(key(學(xué)號(hào)學(xué)
16、號(hào), ,課程號(hào)課程號(hào)) ),表示主鍵約束,表示主鍵約束名為名為PK_xh1PK_xh1,是學(xué)號(hào)與課程號(hào)的聯(lián),是學(xué)號(hào)與課程號(hào)的聯(lián)合主鍵。注意,對(duì)復(fù)合約束,一定合主鍵。注意,對(duì)復(fù)合約束,一定要定義在表級(jí)上。要定義在表級(jí)上。4.1.3用用Transact-SQL語(yǔ)句創(chuàng)建學(xué)生成績(jī)管理數(shù)據(jù)庫(kù)數(shù)據(jù)表語(yǔ)句創(chuàng)建學(xué)生成績(jī)管理數(shù)據(jù)庫(kù)數(shù)據(jù)表【例例4.104.10】用用Transact -SQLTransact -SQL語(yǔ)句完成表語(yǔ)句完成表4-54-5教師表(用來(lái)存儲(chǔ)教師基本信息)教師表(用來(lái)存儲(chǔ)教師基本信息)的創(chuàng)建。的創(chuàng)建。Use Use 學(xué)生成績(jī)管理學(xué)生成績(jī)管理GoGocreate table create ta
17、ble 教師表教師表( ( 教師號(hào)教師號(hào) char(6) Not Null, char(6) Not Null, 姓名姓名 char(8) Not Null,char(8) Not Null, 職稱職稱 char(8) Not Null,char(8) Not Null, 部門編號(hào)部門編號(hào) Varchar(50) not Null,Varchar(50) not Null, 聯(lián)系方式聯(lián)系方式 char(12) null,char(12) null, primary key( primary key(教師號(hào)教師號(hào)) ) )4.1.3用用Transact-SQL語(yǔ)句創(chuàng)建學(xué)生成績(jī)管理數(shù)據(jù)庫(kù)數(shù)據(jù)表語(yǔ)句
18、創(chuàng)建學(xué)生成績(jī)管理數(shù)據(jù)庫(kù)數(shù)據(jù)表【例例4.114.11】用用Transact -SQLTransact -SQL語(yǔ)句完成表語(yǔ)句完成表4-64-6部門表(用來(lái)存儲(chǔ)部門基本信息)部門表(用來(lái)存儲(chǔ)部門基本信息)的創(chuàng)建。的創(chuàng)建。Use Use 學(xué)生成績(jī)管理學(xué)生成績(jī)管理GoGocreate table create table 部門表部門表( ( 部門編號(hào)部門編號(hào) Varchar(50) Not Null primary key, Varchar(50) Not Null primary key, 部門名稱部門名稱 Varchar(50)Varchar(50) Not Null,Not Null, 部門地址
19、部門地址 Varchar(100)Varchar(100) NullNull) )4.1.3用用Transact-SQL語(yǔ)句創(chuàng)建學(xué)生成績(jī)管理數(shù)據(jù)庫(kù)數(shù)據(jù)表語(yǔ)句創(chuàng)建學(xué)生成績(jī)管理數(shù)據(jù)庫(kù)數(shù)據(jù)表【例例4.124.12】用用Transact -SQLTransact -SQL語(yǔ)句完成表語(yǔ)句完成表4-74-7授課表(用來(lái)存儲(chǔ)教師授課的基本信授課表(用來(lái)存儲(chǔ)教師授課的基本信息)的創(chuàng)建。息)的創(chuàng)建。Use Use 學(xué)生成績(jī)管理學(xué)生成績(jī)管理GoGocreate table create table 授課表授課表( (教師號(hào)教師號(hào) char(6)char(6) Not Null foreign Not Null f
20、oreign key references key references 教師表教師表( (教師號(hào)教師號(hào)),),課程號(hào)課程號(hào)char(9) Not Nullchar(9) Not Null foreign foreign key references key references 課程表課程表( (課程號(hào)課程號(hào)),),開課時(shí)間開課時(shí)間 smalldatetime Null,smalldatetime Null,primary key(primary key(教師號(hào)教師號(hào), ,課程號(hào)課程號(hào)) ) )說(shuō)明:說(shuō)明: 教師號(hào)教師號(hào) char(6) Not Null char(6) Not Null f
21、oreign key references foreign key references 教師表教師表( (教師號(hào)教師號(hào)) ),表示對(duì)教師號(hào)有一個(gè)外,表示對(duì)教師號(hào)有一個(gè)外鍵約束,約束名由系統(tǒng)默認(rèn),授課鍵約束,約束名由系統(tǒng)默認(rèn),授課表中的教師號(hào)參照教師表中的教師表中的教師號(hào)參照教師表中的教師號(hào)。號(hào)。 課程號(hào)課程號(hào) char(9) Not Null char(9) Not Null foreign key references foreign key references 課程表課程表( (課程號(hào)課程號(hào)) ), 表示課程號(hào)有一個(gè)外表示課程號(hào)有一個(gè)外鍵約束,約束名由系統(tǒng)默認(rèn),授課鍵約束,約束名由系統(tǒng)
22、默認(rèn),授課表中的課程號(hào)參照課程表中的課程表中的課程號(hào)參照課程表中的課程號(hào)。號(hào)。4.1.4 規(guī)則和約束規(guī)則和約束1. 1. 規(guī)則規(guī)則規(guī)則(規(guī)則(RULERULE):是一種數(shù)據(jù)庫(kù)對(duì)象,它的作用與檢查約束類似,用來(lái)限制輸入):是一種數(shù)據(jù)庫(kù)對(duì)象,它的作用與檢查約束類似,用來(lái)限制輸入值的取值范圍。規(guī)則與值的取值范圍。規(guī)則與CHECKCHECK相比較,相比較,CHECKCHECK約束比規(guī)則更簡(jiǎn)明,它可以在創(chuàng)建約束比規(guī)則更簡(jiǎn)明,它可以在創(chuàng)建表或修改表時(shí)指定,而規(guī)則需要單獨(dú)創(chuàng)建。表或修改表時(shí)指定,而規(guī)則需要單獨(dú)創(chuàng)建。使用規(guī)則的優(yōu)點(diǎn)是:一個(gè)規(guī)則只需定義一次就可以被多次應(yīng)用,即可以應(yīng)用于使用規(guī)則的優(yōu)點(diǎn)是:一個(gè)規(guī)則
23、只需定義一次就可以被多次應(yīng)用,即可以應(yīng)用于多個(gè)表或多個(gè)列。多個(gè)表或多個(gè)列。規(guī)則的使用包括規(guī)則的創(chuàng)建、綁定、解綁和刪除??梢栽诓樵兙庉嬈髦杏靡?guī)則的使用包括規(guī)則的創(chuàng)建、綁定、解綁和刪除。可以在查詢編輯器中用Transact -SQLTransact -SQL語(yǔ)句完成。語(yǔ)句完成。(1 1)創(chuàng)建規(guī)則)創(chuàng)建規(guī)則規(guī)則是一種數(shù)據(jù)庫(kù)對(duì)象,在使用前必須被創(chuàng)建。創(chuàng)建規(guī)則的語(yǔ)法為:規(guī)則是一種數(shù)據(jù)庫(kù)對(duì)象,在使用前必須被創(chuàng)建。創(chuàng)建規(guī)則的語(yǔ)法為:CREATE RULE CREATE RULE 規(guī)則名規(guī)則名 AS AS 條件表達(dá)式條件表達(dá)式(2 2)規(guī)則的綁定)規(guī)則的綁定創(chuàng)建好的規(guī)則,則要綁定到指定列上才有意義。綁定規(guī)則的
24、語(yǔ)法為:創(chuàng)建好的規(guī)則,則要綁定到指定列上才有意義。綁定規(guī)則的語(yǔ)法為:EXECUTE sp_bindrule EXECUTE sp_bindrule 規(guī)則名稱規(guī)則名稱, , 表名表名. .字段名字段名4.1.4 規(guī)則和約束規(guī)則和約束【例【例4.134.13】 創(chuàng)建一個(gè)規(guī)則創(chuàng)建一個(gè)規(guī)則rule_xbrule_xb,將它綁定到,將它綁定到“學(xué)生表學(xué)生表”的的“性別性別”字段,保證輸入數(shù)據(jù)字段,保證輸入數(shù)據(jù)只能為只能為“0”“0”或或“1”“1”。在查詢編輯器中輸入:在查詢編輯器中輸入:CREATE RULE rule_xb AS xb=0 or xb =1 - CREATE RULE rule_xb
25、 AS xb=0 or xb =1 - 建立規(guī)則名為建立規(guī)則名為rule_xbrule_xbGOGOsp_bindrule rule_xb, sp_bindrule rule_xb, 學(xué)生表學(xué)生表. .性別性別 - -將將rule_xbrule_xb規(guī)則綁定到學(xué)生表中的性別上規(guī)則綁定到學(xué)生表中的性別上說(shuō)明:說(shuō)明: CREATE RULE rule_xb AS xb= CREATE RULE rule_xb AS xb=男男 or xb = or xb =女女 ,說(shuō)明建立了一個(gè)規(guī)則,規(guī)則名叫,說(shuō)明建立了一個(gè)規(guī)則,規(guī)則名叫rule_xbrule_xb,這個(gè)規(guī)則的功能是限制跟它綁定的字段其值只能取,
26、這個(gè)規(guī)則的功能是限制跟它綁定的字段其值只能取“0”“0”或或“1”“1”。 sp_bindrule rule_xb, sp_bindrule rule_xb, 學(xué)生表學(xué)生表. .性別性別 ,表示規(guī)則,表示規(guī)則rule_xbrule_xb已跟已跟“學(xué)生表學(xué)生表”中的中的“性性別別”字段綁定了,這樣,就使得在字段綁定了,這樣,就使得在“學(xué)生表學(xué)生表”中的字段中的字段“性別性別”其值只能取其值只能取“0”“0”或或“1”“1”。當(dāng)然,如果需要,規(guī)則當(dāng)然,如果需要,規(guī)則rule_xbrule_xb還能跟學(xué)生成績(jī)管理數(shù)據(jù)庫(kù)中的其他表中的字段進(jìn)行綁定。還能跟學(xué)生成績(jī)管理數(shù)據(jù)庫(kù)中的其他表中的字段進(jìn)行綁定。執(zhí)
27、行上述代碼,則會(huì)顯示執(zhí)行上述代碼,則會(huì)顯示“已將規(guī)則綁定到表的列已將規(guī)則綁定到表的列”。4.1.4 規(guī)則和約束規(guī)則和約束(3 3)解除綁定)解除綁定如果字段已經(jīng)不需要規(guī)則限制其值了,那么就要把已經(jīng)綁定的規(guī)則去掉,這就是解除綁定的如果字段已經(jīng)不需要規(guī)則限制其值了,那么就要把已經(jīng)綁定的規(guī)則去掉,這就是解除綁定的規(guī)則。其語(yǔ)法為:規(guī)則。其語(yǔ)法為:EXECUTE sp_unbindrule EXECUTE sp_unbindrule 表名表名. .字段名字段名 【例例4.144.14】將剛才將剛才【例例4.134.13】的綁定解除。的綁定解除。sp_unbindrule sp_unbindrule 學(xué)生
28、表學(xué)生表. .性別性別 執(zhí)行這個(gè)語(yǔ)句,則會(huì)出現(xiàn)執(zhí)行這個(gè)語(yǔ)句,則會(huì)出現(xiàn)“已解除了表列與規(guī)則之間的綁定。已解除了表列與規(guī)則之間的綁定?!保? 4)刪除規(guī)則)刪除規(guī)則如果規(guī)則已經(jīng)沒(méi)有用了,就可以將其刪除。在刪除規(guī)則前,一定要先對(duì)規(guī)則進(jìn)行解綁,當(dāng)規(guī)如果規(guī)則已經(jīng)沒(méi)有用了,就可以將其刪除。在刪除規(guī)則前,一定要先對(duì)規(guī)則進(jìn)行解綁,當(dāng)規(guī)則已經(jīng)不再作用于任何表或字段時(shí),則可以刪除規(guī)則。刪除規(guī)則的語(yǔ)法格式為:則已經(jīng)不再作用于任何表或字段時(shí),則可以刪除規(guī)則。刪除規(guī)則的語(yǔ)法格式為:drop rule drop rule 規(guī)則名規(guī)則名像像【例例4.134.13】創(chuàng)建的規(guī)則創(chuàng)建的規(guī)則rule_xbrule_xb因?yàn)橐呀?jīng)解除
29、了綁定,所以可以刪除這個(gè)規(guī)則。因?yàn)橐呀?jīng)解除了綁定,所以可以刪除這個(gè)規(guī)則。【例例4.154.15】刪除規(guī)則刪除規(guī)則rule_xbrule_xbdrop rule rule_xbdrop rule rule_xb執(zhí)行,即可。執(zhí)行,即可。4.1.4 規(guī)則和約束規(guī)則和約束2. 2. 默認(rèn)默認(rèn)默認(rèn)(默認(rèn)(DEFAULTDEFAULT):也稱默認(rèn)值,是一種數(shù)據(jù)庫(kù)對(duì)象,它與默認(rèn)約束作用相似。即:表中的):也稱默認(rèn)值,是一種數(shù)據(jù)庫(kù)對(duì)象,它與默認(rèn)約束作用相似。即:表中的一列被綁定了默認(rèn)對(duì)象,則當(dāng)向表中輸入記錄時(shí),沒(méi)有為該列輸入數(shù)據(jù),系統(tǒng)會(huì)自動(dòng)將默認(rèn)一列被綁定了默認(rèn)對(duì)象,則當(dāng)向表中輸入記錄時(shí),沒(méi)有為該列輸入數(shù)據(jù),
30、系統(tǒng)會(huì)自動(dòng)將默認(rèn)值賦給該列。默認(rèn)約束可以在創(chuàng)建表或修改表時(shí)指定,而默認(rèn)則要單獨(dú)創(chuàng)建。值賦給該列。默認(rèn)約束可以在創(chuàng)建表或修改表時(shí)指定,而默認(rèn)則要單獨(dú)創(chuàng)建。使用默認(rèn)的優(yōu)點(diǎn)是:一個(gè)默認(rèn)只需定義一次就可以被多次應(yīng)用,即可以應(yīng)用于多個(gè)表或多個(gè)使用默認(rèn)的優(yōu)點(diǎn)是:一個(gè)默認(rèn)只需定義一次就可以被多次應(yīng)用,即可以應(yīng)用于多個(gè)表或多個(gè)列。列。默認(rèn)對(duì)象的使用方法類似于規(guī)則,同樣包括創(chuàng)建、綁定、解綁和刪除。這些操作可以在查詢默認(rèn)對(duì)象的使用方法類似于規(guī)則,同樣包括創(chuàng)建、綁定、解綁和刪除。這些操作可以在查詢編輯器中完成。編輯器中完成。4.1.4 規(guī)則和約束規(guī)則和約束(1 1)創(chuàng)建默認(rèn)值)創(chuàng)建默認(rèn)值在查詢編輯器中,創(chuàng)建默認(rèn)對(duì)象
31、的語(yǔ)法格式如下:在查詢編輯器中,創(chuàng)建默認(rèn)對(duì)象的語(yǔ)法格式如下:CREATE DEFAULT CREATE DEFAULT 默認(rèn)值名默認(rèn)值名 AS AS 常量表達(dá)式常量表達(dá)式說(shuō)明:常量表達(dá)式可以包含常量表達(dá)式,可以包含常量、內(nèi)置函數(shù)或數(shù)學(xué)表達(dá)式。說(shuō)明:常量表達(dá)式可以包含常量表達(dá)式,可以包含常量、內(nèi)置函數(shù)或數(shù)學(xué)表達(dá)式。(2 2)默認(rèn)的綁定)默認(rèn)的綁定創(chuàng)建好的默認(rèn),必須將其綁定到表的字段上才能產(chǎn)生作用。綁定默認(rèn)的語(yǔ)法為:創(chuàng)建好的默認(rèn),必須將其綁定到表的字段上才能產(chǎn)生作用。綁定默認(rèn)的語(yǔ)法為:EXECUTE sp_bindefault EXECUTE sp_bindefault 默認(rèn)名稱默認(rèn)名稱, , 表
32、名表名. .字段名字段名4.1.4 規(guī)則和約束規(guī)則和約束【例例4.164.16】 創(chuàng)建一個(gè)默認(rèn)創(chuàng)建一個(gè)默認(rèn)default_xfdefault_xf,將它綁定到,將它綁定到“課程表課程表”的的“學(xué)分學(xué)分”字段,使默認(rèn)學(xué)字段,使默認(rèn)學(xué)分為分為3 3。在查詢編輯器中輸入:在查詢編輯器中輸入:CREATE DEFAULT default_xf AS 3 - CREATE DEFAULT default_xf AS 3 - 建立默認(rèn)建立默認(rèn)GOGOsp_bindefault default_xf, sp_bindefault default_xf, 課程表課程表. .學(xué)分學(xué)分 - -將將default_
33、xfdefault_xf默認(rèn)綁定到課程表默認(rèn)綁定到課程表中的學(xué)分上中的學(xué)分上說(shuō)明:說(shuō)明: CREATE DEFAULT default_xf AS 3CREATE DEFAULT default_xf AS 3,表示創(chuàng)建了一個(gè)名為,表示創(chuàng)建了一個(gè)名為default_xfdefault_xf的默認(rèn)值,其值的默認(rèn)值,其值為為3 3。 sp_bindefault default_xf, sp_bindefault default_xf, 課程表課程表. .學(xué)分學(xué)分 ,表示將創(chuàng)建的默認(rèn),表示將創(chuàng)建的默認(rèn)default_xfdefault_xf綁定到綁定到“課程表課程表”的的“學(xué)分學(xué)分”字段上,使得字段
34、上,使得“課程表課程表”中的中的“學(xué)分學(xué)分”字段其默認(rèn)值為字段其默認(rèn)值為3 3。當(dāng)然,如。當(dāng)然,如果需要,可以繼續(xù)將默認(rèn)值果需要,可以繼續(xù)將默認(rèn)值default_xfdefault_xf綁定到學(xué)生成績(jī)管理數(shù)據(jù)庫(kù)的其他表的字段上。綁定到學(xué)生成績(jī)管理數(shù)據(jù)庫(kù)的其他表的字段上。4.1.4 規(guī)則和約束規(guī)則和約束(3 3)解除綁定)解除綁定如果字段已經(jīng)不需要默認(rèn)值了,那么就可以把已經(jīng)綁定的默認(rèn)去掉,這就是解除默認(rèn)。其語(yǔ)如果字段已經(jīng)不需要默認(rèn)值了,那么就可以把已經(jīng)綁定的默認(rèn)去掉,這就是解除默認(rèn)。其語(yǔ)法為:法為:EXECUTE sp_ununbindefault EXECUTE sp_ununbindefau
35、lt 表名表名. .字段名字段名 【例【例4.174.17】將剛才【例】將剛才【例4.164.16】建立的默認(rèn)綁定解除?!拷⒌哪J(rèn)綁定解除。sp_unbindefault sp_unbindefault 課程表課程表. .學(xué)分學(xué)分 執(zhí)行這個(gè)語(yǔ)句,則會(huì)出現(xiàn)執(zhí)行這個(gè)語(yǔ)句,則會(huì)出現(xiàn)“已解除了表列與默認(rèn)之間的綁定。已解除了表列與默認(rèn)之間的綁定?!保? 4)刪除默認(rèn))刪除默認(rèn)如果默認(rèn)值已經(jīng)沒(méi)有用了,就可以將其刪除。在刪除默認(rèn)前,一定要先對(duì)默認(rèn)進(jìn)行解綁,當(dāng)如果默認(rèn)值已經(jīng)沒(méi)有用了,就可以將其刪除。在刪除默認(rèn)前,一定要先對(duì)默認(rèn)進(jìn)行解綁,當(dāng)默認(rèn)已經(jīng)不再作用于任何表或字段時(shí),則可以刪除默認(rèn)。刪除默認(rèn)的語(yǔ)法格式為
36、:默認(rèn)已經(jīng)不再作用于任何表或字段時(shí),則可以刪除默認(rèn)。刪除默認(rèn)的語(yǔ)法格式為:drop rule drop rule 默認(rèn)名默認(rèn)名由于【例由于【例4.174.17】已將默認(rèn)】已將默認(rèn)default_xfdefault_xf解除了綁定,所以可以刪除這個(gè)默認(rèn)。解除了綁定,所以可以刪除這個(gè)默認(rèn)?!纠?.184.18】刪除默認(rèn)刪除默認(rèn)default_xfdefault_xfdrop DEFAULT default_xfdrop DEFAULT default_xf執(zhí)行,即可。執(zhí)行,即可。4.2 4.2 學(xué)生成績(jī)管理數(shù)據(jù)庫(kù)數(shù)據(jù)表的查看學(xué)生成績(jī)管理數(shù)據(jù)庫(kù)數(shù)據(jù)表的查看一個(gè)表建立之后,要學(xué)會(huì)查看,以便于修改。本
37、學(xué)習(xí)任務(wù)主要學(xué)習(xí)在一個(gè)表建立之后,要學(xué)會(huì)查看,以便于修改。本學(xué)習(xí)任務(wù)主要學(xué)習(xí)在SSMSSSMS及及Transact-SQLTransact-SQL語(yǔ)句查看數(shù)據(jù)表的方法。語(yǔ)句查看數(shù)據(jù)表的方法。任務(wù)描述任務(wù)描述 4.2 學(xué)生成績(jī)管理數(shù)據(jù)庫(kù)數(shù)據(jù)表的查看學(xué)生成績(jī)管理數(shù)據(jù)庫(kù)數(shù)據(jù)表的查看1. 1. 在在SSMSSSMS中查看表結(jié)構(gòu)中查看表結(jié)構(gòu)【例例4.194.19】利用利用SSMSSSMS查看學(xué)生成績(jī)管理數(shù)據(jù)庫(kù)中查看學(xué)生成績(jī)管理數(shù)據(jù)庫(kù)中“學(xué)生表學(xué)生表”的屬性、的屬性、“學(xué)號(hào)學(xué)號(hào)”列的屬性及學(xué)列的屬性及學(xué)生表與其他表的依賴關(guān)系。生表與其他表的依賴關(guān)系。略略2. 2. 用用Transact -SQLTrans
38、act -SQL語(yǔ)句查看學(xué)生成績(jī)管理數(shù)據(jù)表語(yǔ)句查看學(xué)生成績(jī)管理數(shù)據(jù)表查看數(shù)據(jù)表屬性格式:查看數(shù)據(jù)表屬性格式:sp_help sp_help 表名表名 【例例4.204.20】利用利用Transact -SQLTransact -SQL命令查看學(xué)生成績(jī)管理數(shù)據(jù)庫(kù)中學(xué)生表的詳細(xì)信息。命令查看學(xué)生成績(jī)管理數(shù)據(jù)庫(kù)中學(xué)生表的詳細(xì)信息。在查詢編輯器中輸入:在查詢編輯器中輸入:USE USE 學(xué)生成績(jī)管理學(xué)生成績(jī)管理GOGOsp_help sp_help 學(xué)生表學(xué)生表執(zhí)行命令,則顯示執(zhí)行命令,則顯示“學(xué)生表學(xué)生表”的表結(jié)構(gòu)的詳細(xì)信息。的表結(jié)構(gòu)的詳細(xì)信息。4.34.3學(xué)生成績(jī)管理數(shù)據(jù)庫(kù)數(shù)據(jù)表的管理學(xué)生成績(jī)管理
39、數(shù)據(jù)庫(kù)數(shù)據(jù)表的管理數(shù)據(jù)表創(chuàng)建后,可根據(jù)需要對(duì)它進(jìn)行修改和刪除,修改的內(nèi)容可以是列的屬性,數(shù)據(jù)表創(chuàng)建后,可根據(jù)需要對(duì)它進(jìn)行修改和刪除,修改的內(nèi)容可以是列的屬性,如列名、數(shù)據(jù)類型、長(zhǎng)度等,也可以添加列、刪除列等,還可以刪除表。本學(xué)如列名、數(shù)據(jù)類型、長(zhǎng)度等,也可以添加列、刪除列等,還可以刪除表。本學(xué)習(xí)任務(wù)就是介紹如何在習(xí)任務(wù)就是介紹如何在SSMSSSMS及及Transact -SQLTransact -SQL命令管理數(shù)據(jù)表。命令管理數(shù)據(jù)表。任務(wù)描述任務(wù)描述 4.3.1 在在SSMS中管理數(shù)據(jù)表中管理數(shù)據(jù)表1. 1. 在在SSMSSSMS中修改數(shù)據(jù)表中修改數(shù)據(jù)表【例【例4.214.21】在】在SSMS
40、SSMS中修改學(xué)生成績(jī)管理數(shù)據(jù)庫(kù)中中修改學(xué)生成績(jī)管理數(shù)據(jù)庫(kù)中“學(xué)生表學(xué)生表”的學(xué)號(hào),將其寬度定義為的學(xué)號(hào),將其寬度定義為1010。略略2 2刪除數(shù)據(jù)表刪除數(shù)據(jù)表【例例4.224.22】在在SSMSSSMS中刪除學(xué)生成績(jī)管理數(shù)據(jù)庫(kù)中中刪除學(xué)生成績(jī)管理數(shù)據(jù)庫(kù)中“選課表選課表”。3. 3. 修改數(shù)據(jù)表名修改數(shù)據(jù)表名【例例4.234.23】在在SSMSSSMS中修改學(xué)生成績(jī)管理數(shù)據(jù)庫(kù)中中修改學(xué)生成績(jī)管理數(shù)據(jù)庫(kù)中“學(xué)生表學(xué)生表”為為“student1”student1”。4.3.2 用用Transact-SQL語(yǔ)句管理數(shù)據(jù)表語(yǔ)句管理數(shù)據(jù)表1 1 修改數(shù)據(jù)表基本語(yǔ)句格式修改數(shù)據(jù)表基本語(yǔ)句格式Alter T
41、able Alter Table 表名表名 Alter column Alter column 列名列名 新數(shù)據(jù)類型新數(shù)據(jù)類型 - -修改列屬性修改列屬性 Add Add 列名列名 數(shù)據(jù)類型數(shù)據(jù)類型 完整性約束完整性約束 - -添加列添加列 Drop column Drop column 列名列名 - -刪除列刪除列 Drop Drop 完整性約束名完整性約束名 - -刪除約束刪除約束說(shuō)明:說(shuō)明: Alter column Alter column 列名列名 新數(shù)據(jù)類型,表示修改列屬性;新數(shù)據(jù)類型,表示修改列屬性; Add Add 列名列名 數(shù)據(jù)類型數(shù)據(jù)類型 完整性約束完整性約束 ,表示增添一
42、列;,表示增添一列; Drop column Drop column 列名,表示刪除一列;列名,表示刪除一列; Drop Drop 完整性約束名,表示刪除約束。完整性約束名,表示刪除約束?!纠?.244.24】將授課表中的開課時(shí)間的數(shù)據(jù)類型修改為將授課表中的開課時(shí)間的數(shù)據(jù)類型修改為DatetimeDatetime。在查詢編輯器中輸入并執(zhí)行:在查詢編輯器中輸入并執(zhí)行:alter table alter table 授課表授課表alter column alter column 開課時(shí)間開課時(shí)間 datetimedatetime4.3.2 用用Transact-SQL語(yǔ)句管理數(shù)據(jù)表語(yǔ)句管理數(shù)據(jù)表
43、2 2應(yīng)用應(yīng)用(1 1)修改列屬性)修改列屬性格式格式Alter table Alter table 表名表名Alter Column Alter Column 列名列名 新數(shù)據(jù)類型新數(shù)據(jù)類型【例【例4.254.25】將授課表中的開課時(shí)間的數(shù)據(jù)類型修改為】將授課表中的開課時(shí)間的數(shù)據(jù)類型修改為SmalldatetimeSmalldatetime。在查詢編輯器中輸入并執(zhí)行如下語(yǔ)句:在查詢編輯器中輸入并執(zhí)行如下語(yǔ)句:Alter table Alter table 授課表授課表Alter column Alter column 開課時(shí)間開課時(shí)間 Smalldatetime Smalldatetime(
44、2 2)添加列)添加列格式格式Alter table Alter table 表名表名Add Add 字段名字段名 數(shù)據(jù)類型數(shù)據(jù)類型 約束約束 4.3.2 用用Transact-SQL語(yǔ)句管理數(shù)據(jù)表語(yǔ)句管理數(shù)據(jù)表【例【例4.264.26】在授課表添加一個(gè)字段:開課地點(diǎn),】在授課表添加一個(gè)字段:開課地點(diǎn),varchar(30) nullvarchar(30) null。在查詢編輯器中輸入并執(zhí)行如下語(yǔ)句:在查詢編輯器中輸入并執(zhí)行如下語(yǔ)句:Alter table Alter table 授課表授課表Add Add 開課地點(diǎn)開課地點(diǎn) varchar(20) null varchar(20) null注
45、意:添加的字段要設(shè)置為空值,如果不是空值,則添加的列具有指定的注意:添加的字段要設(shè)置為空值,如果不是空值,則添加的列具有指定的 DEFAULT DEFAULT 定義,定義,或者要添加的列是標(biāo)識(shí)列或時(shí)間戳列。或者要添加的列是標(biāo)識(shí)列或時(shí)間戳列?!纠纠?.274.27】在】在“課程表課程表”添加一個(gè)字段:序號(hào)添加一個(gè)字段:序號(hào) Smallint not null Smallint not null,標(biāo)識(shí)種子為,標(biāo)識(shí)種子為1 1,增量為,增量為1 1,且是唯一約束。,且是唯一約束。Alter table Alter table 課程表課程表Add Add 序號(hào)序號(hào) smallint Not null
46、 IDENTITY(1,1) constraint un_1 unique smallint Not null IDENTITY(1,1) constraint un_1 unique注意:注意: IDENTITY(1,1) IDENTITY(1,1),表示添加的序號(hào)設(shè)置了標(biāo)識(shí)列。,表示添加的序號(hào)設(shè)置了標(biāo)識(shí)列。4.3.2 用用Transact-SQL語(yǔ)句管理數(shù)據(jù)表語(yǔ)句管理數(shù)據(jù)表(3 3)刪除列)刪除列格式格式Alter table Alter table 表名表名Drop column Drop column 字段名字段名【例【例4.284.28】將【例】將【例4.264.26】課程表添加的字
47、段:】課程表添加的字段:“開課地點(diǎn)開課地點(diǎn)”刪除。刪除。在查詢編輯器中執(zhí)行如下語(yǔ)句在查詢編輯器中執(zhí)行如下語(yǔ)句Alter table Alter table 授課表授課表Drop column Drop column 開課地點(diǎn)開課地點(diǎn)注意:當(dāng)刪除的列上有約束時(shí),則需要?jiǎng)h除約束后,再刪除列。如,要?jiǎng)h除在【例注意:當(dāng)刪除的列上有約束時(shí),則需要?jiǎng)h除約束后,再刪除列。如,要?jiǎng)h除在【例4.274.27】中】中添加的字段:添加的字段:“序號(hào)序號(hào)”,則要?jiǎng)h除其唯一性約束,然后才能刪除該列。,則要?jiǎng)h除其唯一性約束,然后才能刪除該列。即先執(zhí)行:即先執(zhí)行:Alter table Alter table 課程表課程表
48、Drop constraint un_1Drop constraint un_1再執(zhí)行:再執(zhí)行:Alter table Alter table 課程表課程表Drop column Drop column 序號(hào)序號(hào)4.3.2 用用Transact-SQL語(yǔ)句管理數(shù)據(jù)表語(yǔ)句管理數(shù)據(jù)表(4 4)添加約束)添加約束格式格式Alter table Alter table 表名表名Add Add 約束約束 【例【例4.294.29】將教師表中的】將教師表中的“職稱職稱”默認(rèn)為:講師,默認(rèn)名為默認(rèn)為:講師,默認(rèn)名為de_2de_2。Alter table Alter table 教師表教師表Add cons
49、traint de_2 default Add constraint de_2 default 講師講師 for for 職稱職稱【例【例4.304.30】將課程表中的】將課程表中的“學(xué)分學(xué)分”默認(rèn)為:默認(rèn)為:4 4。Alter table Alter table 課程表課程表Add default 4 for Add default 4 for 學(xué)分學(xué)分注意:【例注意:【例4.294.29】與【例】與【例4.304.30】的區(qū)別是一個(gè)指定了默認(rèn)約束名,一個(gè)沒(méi)有指定,由系統(tǒng)默】的區(qū)別是一個(gè)指定了默認(rèn)約束名,一個(gè)沒(méi)有指定,由系統(tǒng)默認(rèn)。認(rèn)。4.3.2 用用Transact-SQL語(yǔ)句管理數(shù)據(jù)表語(yǔ)句
50、管理數(shù)據(jù)表(5 5)刪除約束)刪除約束格式格式Alter table Alter table 表名表名Drop Constraint Drop Constraint 約束名約束名【例【例4.314.31】將【例】將【例4.294.29】中添加的默認(rèn)約束】中添加的默認(rèn)約束de_2de_2刪除。刪除。Alter table Alter table 教師表教師表Drop constraint de_2 Drop constraint de_2 為了加強(qiáng)添加約束和刪除約束的技能,下面再進(jìn)行強(qiáng)化訓(xùn)練。為了加強(qiáng)添加約束和刪除約束的技能,下面再進(jìn)行強(qiáng)化訓(xùn)練?!纠纠?.324.32】將】將“選課表選課表”中
51、的聯(lián)合主鍵中的聯(lián)合主鍵PK_xh1PK_xh1刪除。刪除。Alter table Alter table 選課表選課表Drop constraint PK_xh1Drop constraint PK_xh1【例【例4.334.33】添加選課表中的學(xué)號(hào),課程號(hào)的聯(lián)合主鍵】添加選課表中的學(xué)號(hào),課程號(hào)的聯(lián)合主鍵PK_xh1PK_xh1。 alter table alter table 選課表選課表Add constraint PK_xh1 primary key(Add constraint PK_xh1 primary key(學(xué)號(hào)學(xué)號(hào), ,課程號(hào)課程號(hào)) )4.3.2 用用Transact-SQ
52、L語(yǔ)句管理數(shù)據(jù)表語(yǔ)句管理數(shù)據(jù)表【例【例4.344.34】將選課表中的外鍵】將選課表中的外鍵FK_1FK_1刪除。刪除。Alter table Alter table 選課表選課表Drop constraint fk_1Drop constraint fk_1【例【例4.354.35】將上題中的刪除的選課表中的外鍵】將上題中的刪除的選課表中的外鍵FK_1FK_1添加。添加。 alter table alter table 選課表選課表add constraint fk_1 foreign key(add constraint fk_1 foreign key(學(xué)號(hào)學(xué)號(hào)) references )
53、 references 學(xué)生表學(xué)生表( (學(xué)號(hào)學(xué)號(hào)) )【例【例4.364.36】在】在“學(xué)生表學(xué)生表”中為聯(lián)系電話建立唯一約束中為聯(lián)系電話建立唯一約束UN_2UN_2。Alter table Alter table 學(xué)生表學(xué)生表Add constraint NU_2 unique(Add constraint NU_2 unique(聯(lián)系電話聯(lián)系電話) )4.3.2 用用Transact-SQL語(yǔ)句管理數(shù)據(jù)表語(yǔ)句管理數(shù)據(jù)表3 3刪除數(shù)據(jù)表刪除數(shù)據(jù)表格式格式Drop table Drop table 表名表名1,1,表名表名22刪除表名刪除表名1 1,表名,表名2 2。【例【例4.374.37
54、】將】將“授課表授課表”刪除。刪除。在查詢編輯器中執(zhí)行如下語(yǔ)句并執(zhí)行:在查詢編輯器中執(zhí)行如下語(yǔ)句并執(zhí)行:Drop table Drop table 授課表授課表說(shuō)明:為了不影響后面的學(xué)習(xí),實(shí)際操作中可不執(zhí)行此語(yǔ)句。說(shuō)明:為了不影響后面的學(xué)習(xí),實(shí)際操作中可不執(zhí)行此語(yǔ)句?!纠纠?.384.38】將】將“學(xué)生表學(xué)生表”、“選課表選課表”刪除。刪除。在查詢編輯器中執(zhí)行如下語(yǔ)句并執(zhí)行:在查詢編輯器中執(zhí)行如下語(yǔ)句并執(zhí)行:Drop table Drop table 學(xué)生表學(xué)生表, ,選課表選課表說(shuō)明:為了不影響后面的學(xué)習(xí),實(shí)習(xí)操作中可不執(zhí)行此語(yǔ)句。說(shuō)明:為了不影響后面的學(xué)習(xí),實(shí)習(xí)操作中可不執(zhí)行此語(yǔ)句。4.
55、3.2 用用Transact-SQL語(yǔ)句管理數(shù)據(jù)表語(yǔ)句管理數(shù)據(jù)表4 4重命名數(shù)據(jù)表重命名數(shù)據(jù)表格式格式SP_rename SP_rename 原表名原表名,新表名新表名【例例4.394.39】將將“教師表教師表”更名為更名為“教師表教師表1”1”。在查詢編輯器中執(zhí)行如下語(yǔ)句并執(zhí)行在查詢編輯器中執(zhí)行如下語(yǔ)句并執(zhí)行sp_rename sp_rename 教師表教師表, , 教師表教師表11【例例4.404.40】將將“教師表教師表1”1”更名為更名為“教師表教師表”。sp_rename sp_rename 教師表教師表1, 1, 教師表教師表 4.3.2 用用Transact-SQL語(yǔ)句管理數(shù)據(jù)表
56、語(yǔ)句管理數(shù)據(jù)表5 5重命名列名重命名列名還可以利用還可以利用sp_renamesp_rename更改列名更改列名格式格式sp_rename sp_rename 表名表名. .原列名原列名,新列名新列名 【例【例4.414.41】將學(xué)生表中】將學(xué)生表中“學(xué)號(hào)學(xué)號(hào)”更名為更名為“學(xué)號(hào)學(xué)號(hào)1”1”。在查詢編輯器中執(zhí)行如下語(yǔ)句在查詢編輯器中執(zhí)行如下語(yǔ)句USE USE 學(xué)生成績(jī)管理學(xué)生成績(jī)管理GOGOsp_rename sp_rename 學(xué)生表學(xué)生表. .學(xué)號(hào)學(xué)號(hào),學(xué)號(hào)學(xué)號(hào)11【例【例4.424.42】請(qǐng)大家再次將學(xué)生表中的】請(qǐng)大家再次將學(xué)生表中的“學(xué)號(hào)學(xué)號(hào)1”1”改為改為“學(xué)號(hào)學(xué)號(hào)”USE USE
57、學(xué)生成績(jī)管理學(xué)生成績(jī)管理GOGOsp_rename sp_rename 學(xué)生表學(xué)生表. .學(xué)號(hào)學(xué)號(hào)1,1,學(xué)號(hào)學(xué)號(hào) 4.44.4學(xué)生成績(jī)管理數(shù)據(jù)庫(kù)中表數(shù)據(jù)的插入、修改及刪除學(xué)生成績(jī)管理數(shù)據(jù)庫(kù)中表數(shù)據(jù)的插入、修改及刪除新表建立后,表中并不包含任何記錄,要想實(shí)現(xiàn)存儲(chǔ)必須向表中添加數(shù)據(jù)。本新表建立后,表中并不包含任何記錄,要想實(shí)現(xiàn)存儲(chǔ)必須向表中添加數(shù)據(jù)。本學(xué)習(xí)任務(wù)主要學(xué)習(xí)在學(xué)習(xí)任務(wù)主要學(xué)習(xí)在SSMSSSMS和和Transact-SQLTransact-SQL命令進(jìn)行表記錄的添加、修改和刪除。命令進(jìn)行表記錄的添加、修改和刪除。任務(wù)描述任務(wù)描述 4.4.1 在在SSMS實(shí)現(xiàn)記錄的添加、修改和刪除實(shí)現(xiàn)記錄
58、的添加、修改和刪除【例【例4.434.43】將表】將表4-134-13中的數(shù)據(jù)輸入到學(xué)生表中。中的數(shù)據(jù)輸入到學(xué)生表中。略略4.4.2 Transact-SQL語(yǔ)言實(shí)現(xiàn)表中記錄的添加、刪除及修改語(yǔ)言實(shí)現(xiàn)表中記錄的添加、刪除及修改【例例4.444.44】在課程表中添加一行記錄:在課程表中添加一行記錄:use use 學(xué)生成績(jī)管理學(xué)生成績(jī)管理gogoinsert insert 課程表課程表( (課程號(hào)課程號(hào), ,課名課名, ,學(xué)分學(xué)分, ,學(xué)時(shí)學(xué)時(shí), ,備注備注) values(1001,) values(1001,數(shù)據(jù)庫(kù)技術(shù)數(shù)據(jù)庫(kù)技術(shù),4,72,4,72,適合適合電子信息專業(yè)課程電子信息專業(yè)課程)
59、或者:或者:insert into insert into 課程表課程表( (課程號(hào)課程號(hào), ,課名課名, ,學(xué)分學(xué)分, ,學(xué)時(shí)學(xué)時(shí), ,備注備注) values(1001,) values(1001,數(shù)據(jù)庫(kù)技術(shù)數(shù)據(jù)庫(kù)技術(shù),4,72,4,72,適合電子信息專業(yè)課程適合電子信息專業(yè)課程)4.4.2 Transact-SQL語(yǔ)言實(shí)現(xiàn)表中記錄的添加、刪除及修改語(yǔ)言實(shí)現(xiàn)表中記錄的添加、刪除及修改(1 1)格式)格式INSERT INTO INSERT INTO 表名表名(字段字段1 1,字段,字段2 2,字段字段n) values (n) values (值值1 1,值,值2 2,值值n)n)說(shuō)明:說(shuō)
60、明: 字段數(shù)與字段數(shù)與valusevaluse中提供的值的個(gè)數(shù)要相同,而且數(shù)據(jù)類型要一致。中提供的值的個(gè)數(shù)要相同,而且數(shù)據(jù)類型要一致。 若給一條記錄中的所有字段都提供數(shù)據(jù),則可以省略表名后的字段。若給一條記錄中的所有字段都提供數(shù)據(jù),則可以省略表名后的字段。 用已經(jīng)存在的一個(gè)表中的數(shù)據(jù)給指定的字段賦值的方法將在項(xiàng)目用已經(jīng)存在的一個(gè)表中的數(shù)據(jù)給指定的字段賦值的方法將在項(xiàng)目5 5中介紹。中介紹。 標(biāo)識(shí)列不能插入指定的數(shù)據(jù)值。標(biāo)識(shí)列不能插入指定的數(shù)據(jù)值。4.4.2 Transact-SQL語(yǔ)言實(shí)現(xiàn)表中記錄的添加、刪除及修改語(yǔ)言實(shí)現(xiàn)表中記錄的添加、刪除及修改(2 2)應(yīng)用)應(yīng)用【例例4.454.45】在
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025-2030年壓力管理放松手環(huán)行業(yè)深度調(diào)研及發(fā)展戰(zhàn)略咨詢報(bào)告
- 2025-2030年戶外露營(yíng)充氣床墊行業(yè)跨境出海戰(zhàn)略研究報(bào)告
- 2025-2030年復(fù)古皮質(zhì)書柜行業(yè)跨境出海戰(zhàn)略研究報(bào)告
- 2025-2030年復(fù)古旋轉(zhuǎn)木馬企業(yè)制定與實(shí)施新質(zhì)生產(chǎn)力戰(zhàn)略研究報(bào)告
- 2025-2030年即食蛋糕卷行業(yè)跨境出海戰(zhàn)略研究報(bào)告
- 2025-2030年復(fù)古風(fēng)格定制自行車服務(wù)行業(yè)跨境出海戰(zhàn)略研究報(bào)告
- 2025-2030年口腔健康飲食配送服務(wù)行業(yè)深度調(diào)研及發(fā)展戰(zhàn)略咨詢報(bào)告
- 2025-2030年圖書館借還書機(jī)器人企業(yè)制定與實(shí)施新質(zhì)生產(chǎn)力戰(zhàn)略研究報(bào)告
- 2025-2030年發(fā)光塑膠彩虹燈串企業(yè)制定與實(shí)施新質(zhì)生產(chǎn)力戰(zhàn)略研究報(bào)告
- 壓力容器安全檢測(cè)技術(shù)的應(yīng)用與比較考核試卷
- SB-T 11238-2023 報(bào)廢電動(dòng)汽車回收拆解技術(shù)要求
- 供熱管道施工方案
- 旅游公司發(fā)展規(guī)劃
- 新舊施工現(xiàn)場(chǎng)臨時(shí)用電安全技術(shù)規(guī)范對(duì)照表
- 空氣能熱泵系統(tǒng)設(shè)計(jì)與安裝展示
- 03軸流式壓氣機(jī)b特性
- 五星級(jí)酒店收入測(cè)算f
- 扁桃體伴腺樣體肥大
- 《探尋中國(guó)環(huán)保旅行之道》– 中國(guó)旅游業(yè)可持續(xù)發(fā)展聯(lián)合研究報(bào)告 -mckinsey
- 2023年04月中央軍委后勤保障部公開招考專業(yè)技能崗位文職人員筆試歷年高頻試題摘選含答案解析
- 公務(wù)員錄用體檢操作手冊(cè)
評(píng)論
0/150
提交評(píng)論