在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 教程/ 數(shù)據(jù)庫(kù)/ MySQL ALTER 命令
MySQL 復(fù)制表
MySQL ALTER 命令
MySQL 安裝
MySQL 日期與時(shí)間方面的函數(shù)
MySQL SQL Injection
MySQL 排序結(jié)果
MySQL 臨時(shí)表
MySQL 介紹
MySQL 數(shù)據(jù)導(dǎo)出
MySQL 索引
MySQL 數(shù)值函數(shù)
MySQL 更新查詢
MySQL UNION 關(guān)鍵字
MySQL RAND 函數(shù)
創(chuàng)建 MySQL 數(shù)據(jù)庫(kù)
MySQL AVG 函數(shù)
MySQL Using Join
MySQL Handling Duplicates
MySQL SUM 函數(shù)
MySQL 數(shù)據(jù)類型
MySQL 插入查詢
MySQL 字符串函數(shù)
MySQL Using Sequences
MySQL 管理
MySQL 數(shù)據(jù)導(dǎo)入
MySQL BETWEEN 子句
MySQL MIN 函數(shù)
創(chuàng)建 MySQL 表
MySQL Group By 子句
MySQL COUNT 函數(shù)
MySQL 匯報(bào)
MySQL 選擇數(shù)據(jù)庫(kù)
MySQL Where Clause
MySQL 選擇查詢
MySQL Like Clause
MySQL 正則表達(dá)式
一些非常有用的學(xué)習(xí)資源
MySQL NULL Values
MySQL 刪除查詢
MySQL 數(shù)據(jù)庫(kù)信息
一些有用的 MySQL 函數(shù)與子句
MySQL 刪除表
MySQL MAX 函數(shù)
MySQL SQRT 函數(shù)
MySQL 終止數(shù)據(jù)庫(kù)
連接 MySQL 服務(wù)器
MySQL IN 子句
MySQL CONCAT 函數(shù)
MySQL PHP語法

MySQL ALTER 命令

利用 MySQL 的 ALTER 命令可以很方便地修改表名與表字段名,以及添加或刪除表中已有的列。

為了實(shí)踐 ALTER 命令,下面先來創(chuàng)建一個(gè)名為 testalter_tbl 的表。

root@host# mysql -u root -p password;
Enter password:*******
mysql> use TUTORIALS;
Database changed
mysql> create table testalter_tbl
    -> (
    -> i INT,
    -> c CHAR(1)
    -> );
Query OK, 0 rows affected (0.05 sec)
mysql> SHOW COLUMNS FROM testalter_tbl;
+-------+---------+------+-----+---------+-------+
| Field | Type    | Null | Key | Default | Extra |
+-------+---------+------+-----+---------+-------+
| i     | int(11) | YES  |     | NULL    |       |
| c     | char(1) | YES  |     | NULL    |       |
+-------+---------+------+-----+---------+-------+
2 rows in set (0.00 sec)

刪除、添加列或?qū)ζ渲匦露ㄎ?/h2>

假如要從上面我們創(chuàng)建的這張表中刪除 i 這一列,那么應(yīng)該使用 DROP 子句和 ALTER 命令,如下所示:

mysql> ALTER TABLE testalter_tbl DROP i;

如果表中只有一列,則 DROP 子句不起作用。

添加一列,使用 ADD 并指定列定義。下面我們?cè)侔?i 這一列恢復(fù)到 testalter_tbl 中。

mysql> ALTER TABLE testalter_tbl ADD i INT;

輸入該語句之后,這張表將跟之前創(chuàng)建時(shí)一樣,含有2列。但結(jié)構(gòu)卻稍有差異。默認(rèn)情況下,新增加的列位于表的末尾。在創(chuàng)建表時(shí),i 是第一列,現(xiàn)在卻成為最后一列。

mysql> SHOW COLUMNS FROM testalter_tbl;
+-------+---------+------+-----+---------+-------+
| Field | Type    | Null | Key | Default | Extra |
+-------+---------+------+-----+---------+-------+
| c     | char(1) | YES  |     | NULL    |       |
| i     | int(11) | YES  |     | NULL    |       |
+-------+---------+------+-----+---------+-------+
2 rows in set (0.00 sec)

要想把列放到一個(gè)特定位置,可以使用兩種方法。第一種方法是使用 FIRST,讓指定列成為第一列;第二種則采用 AFTER 后跟給定列名的方式,指示新列應(yīng)該放到給定列名的后面。下面分別利用 ALTER TABLE 語句對(duì)列進(jìn)行操作,每執(zhí)行完一行后,我們可以使用 SHOW COLUMNS 來查看一下各自的效果。

ALTER TABLE testalter_tbl DROP i;
ALTER TABLE testalter_tbl ADD i INT FIRST;
ALTER TABLE testalter_tbl DROP i;
ALTER TABLE testalter_tbl ADD i INT AFTER c;

標(biāo)識(shí)符 FIRST 和 AFTER 只能和 ADD 子句一起使用。這也意味著,如果要重新定位一列,就必須先用 DROP 刪除它,然后再用 ADD 將它添加到新的位置。

改變一列的定義或名稱

要想改變列的定義,需要使用 MODIFYCHANGE 子句,并配合使用 ALTER 命令。例如,把列 c 從 CHAR(1) 變?yōu)?CHAR(10):

mysql> ALTER TABLE testalter_tbl MODIFY c CHAR(10);

CHANGE 的語法稍有不同。必須把所要改變的列名放到 CHANGE 關(guān)鍵字的后面,然后指定新的列定義。相關(guān)范例如下所示:

mysql> ALTER TABLE testalter_tbl CHANGE i j BIGINT;

同理,如果想利用 CHANGE 將 j 從 BIGINT 轉(zhuǎn)為 INT,并且不改變列名,則語句如下:

mysql> ALTER TABLE testalter_tbl CHANGE j j INT;

ALTER TABLE 對(duì) Null 及默認(rèn)值屬性的作用

在利用 MODIFY 或 CHANGE 修改列時(shí),還可以指定該列是否能有 NULL 值,以及它的默認(rèn)值。事實(shí)上,如果我們不這樣處理,MySQL 會(huì)自動(dòng)為這些屬性指定相關(guān)值。

例如,NOT NULL 列默認(rèn)值為100:

mysql> ALTER TABLE testalter_tbl 
    -> MODIFY j BIGINT NOT NULL DEFAULT 100;

如果不使用上述命令,則MySQL 會(huì)在所有這些列中填充 NULL 值。

改變列的默認(rèn)值

使用 ALTER 命令可以改變?nèi)魏瘟械哪J(rèn)值,如下例所示:

mysql> ALTER TABLE testalter_tbl ALTER i SET DEFAULT 1000;
mysql> SHOW COLUMNS FROM testalter_tbl;
+-------+---------+------+-----+---------+-------+
| Field | Type    | Null | Key | Default | Extra |
+-------+---------+------+-----+---------+-------+
| c     | char(1) | YES  |     | NULL    |       |
| i     | int(11) | YES  |     | 1000    |       |
+-------+---------+------+-----+---------+-------+
2 rows in set (0.00 sec)

使用 DROP 子句與 ALTER 命令,可以去除任何列中的默認(rèn)限制。

mysql> ALTER TABLE testalter_tbl ALTER i DROP DEFAULT;
mysql> SHOW COLUMNS FROM testalter_tbl;
+-------+---------+------+-----+---------+-------+
| Field | Type    | Null | Key | Default | Extra |
+-------+---------+------+-----+---------+-------+
| c     | char(1) | YES  |     | NULL    |       |
| i     | int(11) | YES  |     | NULL    |       |
+-------+---------+------+-----+---------+-------+
2 rows in set (0.00 sec)

改變表類型

結(jié)合使用 TYPE 子句與 ALTER 命令,可以使用表類型。在下面范例中,將表 testalter_tbl 的表類型變?yōu)?MYISAM。

通過 SHOW TABLE STATUS 語句可以顯示當(dāng)前的表類型。

mysql> ALTER TABLE testalter_tbl TYPE = MYISAM;
mysql>  SHOW TABLE STATUS LIKE 'testalter_tbl'\G
*************************** 1. row ****************
           Name: testalter_tbl
           Type: MyISAM
     Row_format: Fixed
           Rows: 0
 Avg_row_length: 0
    Data_length: 0
Max_data_length: 25769803775
   Index_length: 1024
      Data_free: 0
 Auto_increment: NULL
    Create_time: 2007-06-03 08:04:36
    Update_time: 2007-06-03 08:04:36
     Check_time: NULL
 Create_options:
        Comment:
1 row in set (0.00 sec)

對(duì)表進(jìn)行重命名

使用 ALTER TABLE 語句的 RENAME 選項(xiàng)可以對(duì)表進(jìn)行重命名。下面范例將表 testalter_tbl 重新命名為 alter_tbl。

mysql> ALTER TABLE testalter_tbl RENAME TO alter_tbl;

還可以使用 ALTER 命令來創(chuàng)建并刪除 MySQL 文件中的索引。下一節(jié)再介紹這種用法。