mysql增删改字段,重命名替换字段

在mysql中,用SQL语句增删改字段,重命名替换字段

语法

ALTER TABLE 表 {ADD ADD{COLUMN 字段类型 [ (字长)] [NOT NULL]    [CONSTRAINT 索引 ] |
                ALTER COLUMN 字段类型 [(字长)] |
                rename COLUMN to COLUMNxx |
                change COLUMN to COLUMNxx 字段类型 [(字长)]|
                CONSTRAINT 多重字段索引 } |
                DROP DROP{COLUMN 字段 I CONSTRAINT 索引名 } }

ALTER TABLE 语句分为以下几个部分:

部分 说明 

  • table 指定修改的表。 
  • field  指定在表内增加或删除的字段。 
  • type 字段的数据类型。 
  • size 字段的字符长度 (文本及二进制字段)。 
  • index 字段索引。了解更多有关如何构造本索引的信息,请看 CONSTRAINT子句。  
  • multifieldindex 增加至表中的多重字段索引的定义。了解更多有关如何构造本索引的信息,请看 CONSTRAINT子句。 
  • indexname 删除的多重字段索引的名称。 


说明

使用 ALTER TABLE 语句,可用多种不同方法更改当前已存在的表:你可以: 

使用 ADD COLUMN 在表中添加新的字段。需要指定字段名、数据类型、还可以 (对文本和二进制字段)指定长度。

例如,下列语句在员工表中增加一 25 个字符的、名为 Notes 的文本字段: 

ALTER TABLE Employees ADD COLUMN Notes TEXT(25)

也可以定义此字段的索引。关于单一字段索引的详细信息,请参阅CONSTRAINT 子句主题。 

如果对一字段指定 NOT NULL,则在这字段中添加的新记录必须有有效的数据。 

使用ALTER COLUMN改变一个当前字段的数据类型,需要指定字段名、新数据类型、还可以 (对文本和二进制字段)指定长度。

例如,下列语句把雇员表中一个字段的数据类型, 被称为ZipCode(最初被定义为整数),改变成一个10字符文本字段: 

ALTER TABLE Employees ALTER COLUMN ZipCode TEXT(10)
  • 使用 ADD CONSTRAINT 添加多重字段索引。关于多重字段索引的详细信息,请参阅 CONSTRAINT 子句主题。 
  • 使用 DROP COLUMN 删除字段。只要指定欲删除的字段名即可。 
  • 使用 DROP CONSTRAINT 删除多重字段索引。只要在 CONSTRAINT 保留字后面指定索引名即可。 

注意 

  • 不能同时添加或删除一个以上的字段或索引。 
  • 你可以使用 CREATE INDEX 语句在一个表中增加一个单字段或多重字段,你还可以使用 ALTER TABLE 或 DROP 语句删除一个由ALTER TABLE或CREATE INDEX建立的索引。 
  • 可以在单一字段上使用 NOT NULL,或在用于单一字段或多重字段(名为 CONSTRAINT) 的 CONSTRAINT 子句中使用 NOT NULL。但是,一个字段只能使用一次 NOT NULL 限制。尝试多次应用此限制将导致运行错误。

 重命名替换字段

CREATE TABLE t1(a INT, b VARCHAR(30), c FLOAT);
ALTER TABLE t1 RENAME COLUMN a TO defg;
# Rename multiple column
ALTER TABLE t1 RENAME COLUMN defg TO ijkl,
               RENAME COLUMN b TO mno,
               RENAME COLUMN c TO pqr;

# Mix different ALTER operations
ALTER TABLE t1 CHANGE COLUMN ijkl a INT,
               RENAME COLUMN mno TO b, 
               RENAME COLUMN pqr to c;

完结!

相关推荐