ALTER TABLE

更改資料表

資料表建好之後,有時候會發現必須修改或新增某些欄位,此時,您必須知道該如何修改。

    • 修改資料表的語法:ALTER TABLE 資料表名稱 「修改項目」

    • 其中「修改項目」有幾種類型:新增、更改、刪除...等。我們詳列於本文之下。

    • 以下語法中有被中括號 [...] 包起來的,表示該語法可有可無。

    • 以下語法中有「...|...」表示「或」的意思。

更改資料表--新增欄位、索引的SQL語法

    • 新增欄位:ADD 欄位名稱 資料形態 欄位設定選項 [FIRST | AFTER 欄位名稱 ]

      • ALTER TABLE disscuss ADD user_image varchar(50) AFTER ip;

      • 【範例說明】:在disscuss資料表中,在ip欄位之後,新增一個名為user_image的欄位,並設定其資料形態為varchar(50),沒有欄位設定選項。

    • 新增索引:ADD INDEX [索引名稱] (欄位名稱,...)

      • ALTER TABLE disscuss ADD INDEX (name);

      • 【範例說明】:在disscuss資料表中,把name欄位新增為索引。

    • 新增主索引:ADD PRIMARY KEY (欄位名稱,...)

      • ALTER TABLE disscuss ADD PRIMARY KEY (serial);

      • 【範例說明】:在disscuss資料表中,把serial欄位新增為PRIMARY KEY。

    • 新增UNIQUE索引:ADD UNIQUE [索引名稱] (欄位名稱,...)

      • ALTER TABLE disscuss ADD UNIQUE (name);

      • 【範例說明】:在disscuss資料表中,把name欄位新增為UNIQUE索引。

更改資料表--修改欄位的SQL語法

    • 更改欄位預設值:ALTER [COLUMN] col_name {SET DEFAULT 預設值 | DROP DEFAULT}

      • ALTER TABLE disscuss ALTER COLUMN web SET DEFAULT 'http://www.dob.com.tw';

      • 【範例說明】:在disscuss資料表中,替web欄位加上'http://www.dob.com.tw'的預設值。其實用底下的CHANGE也可以做得到。

    • 更改欄位名稱、設定:CHANGE [COLUMN] 舊欄位名稱 新欄位設定

      • ALTER TABLE disscuss CHANGE COLUMN name user_name varchar(100);

      • 【範例說明】:在disscuss資料表中,把欄位name改名為user_name,並且重新設定其資料形態為varchar(100),沒有欄位設定選項。(把COLUMN去掉一樣可以執行!)

    • 修改欄位設定:MODIFY [COLUMN] 欄位設定

      • ALTER TABLE disscuss MODIFY COLUMN web char(50);

      • 【範例說明】:在disscuss資料表中,把欄位web修改成char(50)。

    • 更改整個資料表的名稱:RENAME [AS] 新資料表名稱

      • ALTER TABLE disscuss RENAME AS dc;

      • 【範例說明】:把disscuss資料表改名為dc。

更改資料表--刪除欄位、索引的SQL語法

    • 刪除一個欄位:DROP [COLUMN] 欄位名稱

      • ALTER TABLE disscuss DROP ip;

      • 【範例說明】:在disscuss資料表中,把欄位ip刪掉。

    • 刪除PRIMARY KEY:DROP PRIMARY KEY

      • ALTER TABLE disscuss DROP PRIMARY KEY;

      • 【範例說明】:把disscuss資料表中的PRIMARY KEY刪掉。

    • 刪除索引:DROP INDEX 索引名稱

      • ALTER TABLE disscuss DROP INDEX name;

      • 【範例說明】:把disscuss資料表中名為name的索引刪掉。