文章目錄
- 前言:
- 一.增加表的列
- 二.删除表的列
- 三.增加表的表級限制,并使其暫時限制失效
- 四.删除表
前言:
在上一篇文章《建立資料庫》中,我們學會了如何建立資料庫,使用資料庫,删除資料庫。這一章我們繼續承接上文,在上文,我們已經建立了三張表:
create table 學生
(
學号 char(5) not null unique,
姓名 char(8) not null,
年齡 smallint default 20,
性别 char(2) check(性别 in ('男','女')),
所在系 char(20)
)
GO
create table 課程
(
課程号 char(5) primary key,
課程名 varchar(20),
先行課 char(5)
)
go
create table 選課
(
學号 char(5),
課程号 char(5),
成績 smallint check(成績 between 0 and 100),
constraint c1 primary key(學号,課程号),
constraint c2 foreign key(學号) references 學生(學号),
constraint c3 foreign key(課程号) references 課程(課程号)
)
PS :
作者在了解這個
reference
的時候遇到了點困難,這裡我是這樣了解的。我們定義兩個表,兩個表中含有相同屬性,将表2的相同屬性定義為外鍵
foreign key
,而這個外鍵的取值範圍可以
reference
表1的相同屬性。
一.增加表的列
文法:
alter
table
表名
add
屬性名 資料類型 是否為空
alter table 學生 add 年級 int null
輸出:
二.删除表的列
文法:
alter table
表名
drop column
屬性名
alter table 學生 drop column
輸出:
三.增加表的表級限制,并使其暫時限制失效
舉列子:
我們為學生表增加一個表級限制--------年齡要大于18歲,并使其暫時限制失效。
這裡我們需要使用
constraint
配合
check
使用。
alter table 學生 add constraint 年齡限制 check(年齡>18)
當我們在代碼執行成功後,我們在年齡裡輸入數字進行測試。
當我們輸入的年齡超過18歲了,我們就可以輸入成功了。
現在我們又要使剛剛加的年齡限制暫時失效,請看代碼:
alter table 學生 nocheck constraint
這裡我們要學習的知識點是
nocheck constraint
限制名
值得說的是這個限制名就是在上面我們設定表級限制的時候起的一個名字------“年齡限制”。
執行一下代碼:
這時候我們的年齡輸入的是1,小于18,輸入成功,說明“年齡限制”已經被取消了。我們隻要把