添加或删除列
添加列:
命令格式:ALTER TABLE TABLE_NAME ADD [COLUMN] COL_NAME COLUMN_DEFINITION [FIRST | AFTER COL_NAME]。
举个例子:
首先随意创建一个数据表
CREATE TABLE TEST(
ID SMALLINT UNSIGNED PRIMARY KEY AUTO_INCREMENT
);
先在我们在该表中插入一列,参照上面的格式,命令如下:
ALTER TABLE TEST ADD NAME VARCHAR(10) NOT NULL;
上面的命令格式中,方括号中的内容可以省略,表示执行某些默认的操作,第二个方括号中的FIRST 和 AFTER COL_NAME表示插入在首列,或插入在某列的后面,如果不写的话,默认插入在最后面。
插入成功后查看一下结果:
这时NAME列已经插入到了末尾。
插入多列时,命令与上述格式相似,但是不能指定插入的具体位置。格式如下:
ALTER TABLE TABLE_NAME ADD [COLUMN] (COL_NAME COLUMN_DEFINITION,…);
这里不做演示。
删除列:
命令格式:
ALTER TABLE TABLE_NAME DROP [COLUMN] COL_NAME;
删除命令相对简单,不需要那么多附加属性, 直接加入你要删除的那一列的列名就可以。
删除多列时,命令如下:
ALTER TABLE TABLE_NAME DROP [COLUMN] COL_NAME, DROP [COLUMN] COL_NAME …;
想要删除多少个,就加多少个DROP以及列名就可以了。
比如我把上表中的ID列删了,输入命令ALTER TABLE TEST DROP ID;
添加约束:
添加主键约束:
命令格式:
ALTER TABLE TABLE_NAME ADD [CONSTRAINT [SYMBOL]] PRIMAYR KEY [INDEX_TYPE] (INDEX_COL_NAME,…);
首先创建一个新表,如下。
先在通过上述命令为ID添加主键约束。
命令如下:ALTER TABLE USER ADD CONSTRAINT PK_ID PRIMARY KEY (ID);
其中CONSTRAINT PK_ID表示为该主键约束添加一个新的称呼,称呼为PK_ID,可以根据喜好自定义。
更爱成功后查看属性。
添加唯一约束:ALTER TABLE TABLE_NAME ADD [CONSTRAINT [SYMBOL]] UNIQUE [INDEX|KEY] [INDEX_NAME] [INDEX_TYPE] (INDEX_COL_NAEM,…);
例如为上表中的PID添加唯一约束
添加外键约束:ALTER TABLE TABLE_NAME ADD [CONSTRAINT [SYMBOL]] FORIGEN KEY [INDEX_NAME] (INDEX_COL_NAME,…) REFERENCE_DEFINITION;
例如将USER表的PID与TEST表的ID建立外键约束,注意两者的变量类型必须一致。
添加默认约束:ALTER TABLE TABLE_NAME ALTER [COLUMN] COL_NAME (SET DEFAULT VAR | DROP DEFAULT);
例如为TEST表中的MATH添加DEFAULT约束,将SET DEFAULT 改为DROP DEFAULT 即可移除默认约束列。