數(shù)據(jù)庫探索之旅——操作基本表三步曲

目錄

  1. 第一步:創(chuàng)建(定義)基本表
    1.1 選擇數(shù)據(jù)庫
    1.2 語法格式
    1.3 建表實例
  2. 第二步:修改基本表
    2.1 語法格式
    2.2 改表實例
  3. 第三步:刪除基本表
    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]
)

一點說明:

  1. 格式中的 [] (方括號)表示其中內容可以根據(jù)具體情況決定是否選用。在命令輸入時搪搏,不要輸入方括號狭握。
  2. 格式中 的<> (尖括號)表示其中內容為實際語義,內容以實際名稱或參數(shù)輸入慕嚷,為必選內容哥牍。在命令輸入時,不要輸入尖括號喝检。
  3. 格式中的 () (小括號)是語句的組成部分嗅辣,一定要輸入。
  4. 格式中的[,...n] 指示前面的項可以循環(huán)n次挠说,具體值由逗號分隔澡谭。
  5. 同一個數(shù)據(jù)庫中不允許出現(xiàn)同名的表。
  6. 列名又稱為字段名、屬性名蛙奖,表示基本表的各個屬性潘酗,同一個表中不允許出現(xiàn)同名的列。
  7. 數(shù)據(jù)類型是列允許存放的數(shù)據(jù)的類型雁仲。
  8. 約束條件用以分為列級和表級仔夺,用以做某些約束。

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ù)類型瓢宦,是否允許為空,但不可以看見完整性約束條件灰羽。


數(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 <列名>>

在刪除列時阳仔,如果列具有如下特征則不能刪除

  1. 用于 CHECK、FOREIGN KEY扣泊、UNIQUE 或 PRIMARY KEY 約束近范;
  2. 用于索引
  3. 與 DEFAULE 定義管理或綁定到某一默認對象嘶摊;
  4. 綁定到規(guī)則
  5. 用作表的全文鍵
  6. 已注冊支持全文

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 刪除表時,存在以下限制和約束齐蔽。

  1. 不能刪除被 FOREIGN KEY 約束引用的表两疚。必須先刪除引用 FOREIGN KEY 的約束或引用表。如果要在同一個DROP TABLE 語句中刪除引用表以及包含主鍵的表含滴,則必須先列出引用表诱渤。
  2. 刪除表時,標的規(guī)則或默認值將被解除綁定谈况,與該表關聯(lián)的任何約束或觸發(fā)器會被自動刪除勺美。如果要重新創(chuàng)建表,則必須重新綁定相應的規(guī)則和默認值碑韵,重新創(chuàng)建某些觸發(fā)器赡茸,并添加所有必須的約束。
  3. 如果刪除的表中包含帶有 FILESTREAM 屬性的 varbinary(max) 列泼诱,則不會刪除在文件系統(tǒng)中存儲的任何數(shù)據(jù)坛掠。
  4. 不應在同一個批處理中對同一個表執(zhí)行 DROP TABLE 和 CREATE TABLE ,否則可能出現(xiàn)意外錯誤。
  5. 任何引用已刪除表或存儲過程時都必須使用 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)——完整性約束條件

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市友多,隨后出現(xiàn)的幾起案子牲平,更是在濱河造成了極大的恐慌,老刑警劉巖域滥,帶你破解...
    沈念sama閱讀 210,978評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件纵柿,死亡現(xiàn)場離奇詭異,居然都是意外死亡启绰,警方通過查閱死者的電腦和手機昂儒,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,954評論 2 384
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來委可,“玉大人渊跋,你說我怎么就攤上這事∽徘悖” “怎么了拾酝?”我有些...
    開封第一講書人閱讀 156,623評論 0 345
  • 文/不壞的土叔 我叫張陵,是天一觀的道長卡者。 經常有香客問我蒿囤,道長,這世上最難降的妖魔是什么崇决? 我笑而不...
    開封第一講書人閱讀 56,324評論 1 282
  • 正文 為了忘掉前任材诽,我火速辦了婚禮,結果婚禮上嗽桩,老公的妹妹穿的比我還像新娘岳守。我一直安慰自己,他們只是感情好碌冶,可當我...
    茶點故事閱讀 65,390評論 5 384
  • 文/花漫 我一把揭開白布涝缝。 她就那樣靜靜地躺著扑庞,像睡著了一般。 火紅的嫁衣襯著肌膚如雪拒逮。 梳的紋絲不亂的頭發(fā)上罐氨,一...
    開封第一講書人閱讀 49,741評論 1 289
  • 那天租悄,我揣著相機與錄音潭辈,去河邊找鬼寄摆。 笑死搓扯,一個胖子當著我的面吹牛,可吹牛的內容都是我干的译荞。 我是一名探鬼主播,決...
    沈念sama閱讀 38,892評論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼恕刘!你這毒婦竟也來了缤谎?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 37,655評論 0 266
  • 序言:老撾萬榮一對情侶失蹤褐着,失蹤者是張志新(化名)和其女友劉穎坷澡,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體含蓉,經...
    沈念sama閱讀 44,104評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡频敛,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 36,451評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了馅扣。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片斟赚。...
    茶點故事閱讀 38,569評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖差油,靈堂內的尸體忽然破棺而出拗军,到底是詐尸還是另有隱情,我是刑警寧澤蓄喇,帶...
    沈念sama閱讀 34,254評論 4 328
  • 正文 年R本政府宣布食绿,位于F島的核電站,受9級特大地震影響公罕,放射性物質發(fā)生泄漏。R本人自食惡果不足惜耀销,卻給世界環(huán)境...
    茶點故事閱讀 39,834評論 3 312
  • 文/蒙蒙 一楼眷、第九天 我趴在偏房一處隱蔽的房頂上張望铲汪。 院中可真熱鬧,春花似錦罐柳、人聲如沸掌腰。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,725評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽齿梁。三九已至,卻和暖如春肮蛹,著一層夾襖步出監(jiān)牢的瞬間勺择,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,950評論 1 264
  • 我被黑心中介騙來泰國打工伦忠, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留省核,地道東北人。 一個月前我還...
    沈念sama閱讀 46,260評論 2 360
  • 正文 我出身青樓昆码,卻偏偏與公主長得像气忠,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子赋咽,可洞房花燭夜當晚...
    茶點故事閱讀 43,446評論 2 348

推薦閱讀更多精彩內容