目錄
- 第一步:創(chuàng)建(定義)基本表
1.1 選擇數(shù)據(jù)庫
1.2 語法格式
1.3 建表實例 - 第二步:修改基本表
2.1 語法格式
2.2 改表實例 - 第三步:刪除基本表
3.1 語法格式
3.2 刪表實例
1. 第一步:創(chuàng)建(定義)基本表
1.1 選擇數(shù)據(jù)庫
在要對某個數(shù)據(jù)庫進行表的操作前邪铲,我們需要先選定它芬位。語法格式為:
USE 數(shù)據(jù)庫名
這次我們對 practice 這個數(shù)據(jù)庫進行操作
USE practice
1.2 語法格式
在表的定義式,需要定義表名带到,該表中的列(列名昧碉、數(shù)據(jù)類型揽惹、約束條件)被饿。
其語法格式如下:
CREATE TABLE <表名> (
<列名1> <數(shù)據(jù)類型> [ <列級完整性約束>]
[, <列名2> <數(shù)據(jù)類型> [ <列級完整性約束>] ]
[, ...n]
[, 表級完整性約束條件] [, ...n]
)
一點說明:
- 格式中的 [] (方括號)表示其中內容可以根據(jù)具體情況決定是否選用。在命令輸入時搪搏,不要輸入方括號狭握。
- 格式中 的<> (尖括號)表示其中內容為實際語義,內容以實際名稱或參數(shù)輸入慕嚷,為必選內容哥牍。在命令輸入時,不要輸入尖括號喝检。
- 格式中的 () (小括號)是語句的組成部分嗅辣,一定要輸入。
- 格式中的[,...n] 指示前面的項可以循環(huán)n次挠说,具體值由逗號分隔澡谭。
- 同一個數(shù)據(jù)庫中不允許出現(xiàn)同名的表。
- 列名又稱為字段名、屬性名蛙奖,表示基本表的各個屬性潘酗,同一個表中不允許出現(xiàn)同名的列。
- 數(shù)據(jù)類型是列允許存放的數(shù)據(jù)的類型雁仲。
- 約束條件用以分為列級和表級仔夺,用以做某些約束。
1.3 建表實例
我們建立一個基本表 Student 攒砖,其中包括屬性學號(Sno)缸兔,姓名(Sname),性別(Sex)吹艇,出生時間(SBirthDay)惰蜜,專業(yè)(Sdept),同時對這些屬性建立完整性約束條件受神。
定義 Sno 為主碼抛猖;Sex 只可取值 'F'、'M' 鼻听;對 Sname和Sex建立唯一性索引财著,確保統(tǒng)一性別學生沒有重名。代碼如下:
CREATE TABLE Student(
Sno CHAR(10) PRIMARY KEY,
Sname VARCHAR(5) NOT NULL,
Sex CHAR(1) NOT NULL CHECK(Sex='F' OR Sex='M'),
SBirthDay DATE ,
Sdept VARCHAR(15),
CONSTRAINT S_UINO UNIQUE(Sname,Sno)
)
從 Student 表的數(shù)據(jù)字典可以看出表的列名精算,數(shù)據(jù)類型瓢宦,是否允許為空,但不可以看見完整性約束條件灰羽。
2. 第二步:修改基本表
基本表在使用的過程中需要根據(jù)需求做出改變,這些改變包括增加列鱼辙、刪除列廉嚼、重命名列和表、增加完整性約束條件倒戏、刪除完整性約束條件等怠噪。修改基本表也可以叫做基本表的維護。
2.1 語法格式
ALTER TABLE <表名>
[ ADD <新列名> <數(shù)據(jù)類型> [完整性約束條件] ]
[ DROP <完整性約束條件> ]
[ ALTER <列名> <數(shù)據(jù)類型> ]
有以上語法格式可分為三種操作方式:ADD杜跷、DROP傍念、ALTER
ADD方式 可用于新增列和完整性約束條件,列定義同 CREATE TABLE 語句中的列定義方式相同葛闷。其語法格式為:
ALTER TABLE <表名> ADD <列定義> | <完整性約束定義>
使用此方式增加列時自動填充NULL憋槐,因為在新增列是不能同時為列加入數(shù)據(jù),所以不能將新增加的列定義為NOT NULL
DROP 方式 可以用于刪除指定的完整性約束條件或指定的列淑趾,語法格式為:
ALTER TABLE <表名> DROP <完整性約束名> | <COLUMN <列名>>
在刪除列時阳仔,如果列具有如下特征則不能刪除
- 用于 CHECK、FOREIGN KEY扣泊、UNIQUE 或 PRIMARY KEY 約束近范;
- 用于索引
- 與 DEFAULE 定義管理或綁定到某一默認對象嘶摊;
- 綁定到規(guī)則
- 用作表的全文鍵
- 已注冊支持全文
ALTER 方式 用于修改某些列的數(shù)據(jù)類型,語法如下:
ALTER TABLE <> ALTER COLUMN <列名> <新數(shù)據(jù)類型>
以上是ADD评矩、DROP叶堆、ALTER 方式的一些基本使用方式,還有更加強大的功能等著大家去發(fā)現(xiàn)斥杜。
至于表和列的重命名需要用到存儲過程 “sp_rename”蹂空。
重命名表的格式如下:
EXEC sp_rename '原表名' ,'新表名'
重命名列的格式如下:
EXEC sp_rename '表名.原列名' ,'新列名','COLUMN'
2.2 改表實例
【實例 1 】向表 Student 中插入一列 Sadr,數(shù)據(jù)類型為 varchar(50)
ALTER TABLE Student ADD Sadr varchar(50)
【實例 2 】向表 Student 中 SBirthDay 增加CHECK約束果录,使其出生年份至少在 10 年以前上枕。
ALTER TABLE Student
ADD CONSTRAINT SBirthDay_CHE
CHECK (YEAR(SBirthDay)<YEAR(GETDATE())-10)
【實例 3 】刪除 Student 表中的表級完整性條件 S_UINO 。
ALTER TABLE Student DROP S_UINO
【實例 4 】將列 Sname 原數(shù)據(jù)類型 VARCHAR(5) 改為 VARCHAR(8)
ALTER TABLE Student ALTER COLUMN Sname VARCHAR(8)
【實例 5 】將列 Sadr 重命名為 Address
EXEC sp_rename 'Student.Sadr','Address','COLUMN'
【實例 6 】將表 Student 重命名為 S_Student
EXEC sp_rename 'Student','S_Student'
3. 第三步:刪除基本表
當不需再要某個表弱恒,或某個表出現(xiàn)不明錯誤無法改正辨萍,需要刪除重建時,需要用到刪除命令 DROP TABLE返弹。刪除表時锈玉,該表中的所有屬性,完整性約束义起,索引拉背,權限范圍,觸發(fā)器等都會被刪除默终。PROCEDURE 顯示刪除椅棺。
通過 DROP TABLE 刪除表時,存在以下限制和約束齐蔽。
- 不能刪除被 FOREIGN KEY 約束引用的表两疚。必須先刪除引用 FOREIGN KEY 的約束或引用表。如果要在同一個DROP TABLE 語句中刪除引用表以及包含主鍵的表含滴,則必須先列出引用表诱渤。
- 刪除表時,標的規(guī)則或默認值將被解除綁定谈况,與該表關聯(lián)的任何約束或觸發(fā)器會被自動刪除勺美。如果要重新創(chuàng)建表,則必須重新綁定相應的規(guī)則和默認值碑韵,重新創(chuàng)建某些觸發(fā)器赡茸,并添加所有必須的約束。
- 如果刪除的表中包含帶有 FILESTREAM 屬性的 varbinary(max) 列泼诱,則不會刪除在文件系統(tǒng)中存儲的任何數(shù)據(jù)坛掠。
- 不應在同一個批處理中對同一個表執(zhí)行 DROP TABLE 和 CREATE TABLE ,否則可能出現(xiàn)意外錯誤。
- 任何引用已刪除表或存儲過程時都必須使用 DROP VIEW 或 DROP PROCEDURE 顯示刪除屉栓,以便刪除對該表的引用舷蒲。
3.1 語法格式
DROP TABLE <表名>
3.2 刪表實例
刪除基本表 S_Student
DROP TABLE S_Student
以往的文章
數(shù)據(jù)庫探索之旅——初識數(shù)據(jù)庫
數(shù)據(jù)庫探索之旅——數(shù)據(jù)庫管理系統(tǒng)
數(shù)據(jù)庫管理系統(tǒng)——連接數(shù)據(jù)庫
數(shù)據(jù)庫管理系統(tǒng)——對數(shù)據(jù)庫的簡單操作
數(shù)據(jù)庫管理系統(tǒng)——數(shù)據(jù)類型
數(shù)據(jù)庫管理系統(tǒng)——完整性約束條件