周大胖子 发表于 2018-7-27 23:13:37

MYSQL 的 ALTER 命令

先来个概念,这玩意是干啥的:
1.用途 删除、添加、修改表名称 或者表的字段名称:
先删一个瞅瞅:
ALTER TABLE testalter_tblDROP i;上述代码解析:ALTER 命令以及DROP 子句来删除表中的 i 字段;提示: 如果表中只有一个字段 是删不掉的。

再加一个字段瞅瞅:
ALTER TABLE testalter_tbl ADD i INT;上述代码解析: ALTER 命令 使用 ADD子句向数据表中添加列【 i 字段】。并定义了类型
接上面这个 说说这个新增字段,也就是新增列是可以选择位置的 选择位置的方式:
1. 使用关键字FIRST 设置为第一列
2.AFTER 字段名 (设定在某个字段之后)
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;
小提示: 【就这么大字的小提示】 FIRST / AFTRE 关键字只占用ADD子句,所以如果想重置数据表字段的位置,就需要先使用DROP删除字段 然后使用ADD 来添加字段设置位置。

再贴个修改字段类型 或者名称的代码:抵用MODIFY 或 CHANGE 子句;
1.吧类型换掉
ALTER TABLE testalter_tbl MODIFY c CHAR(10);2.使用CHANGE 子句,语法有很大的不同,在CHANGE 关键字之后,紧跟着的是要修改的字段名,然后是指定新字段名和类型:
ALTER TABLE testalter_tbl CHANGE i j BIGINT;ALTER TABLE testalter_tbl CHANGE j j INT;

ALTER TABLE 对 NULL 值 和默认值的影响:
mysql> ALTER TABLE testalter_tbl
    -> MODIFY j BIGINT NOT NULL DEFAULT 100;上述代码解析: 指定字段j 为 NOTNULL 且默认值为100。   【如果不设置默认值,MYSQL 会自动设置该字段默认为NULL】那么如何修改字段默认值?
ALTER TABLE testalter_tbl ALTER i SET DEFAULT 1000;删除默认值
ALTER TABLE testalter_tbl ALTER i DROP DEFAULT;


修改数据表类型 可以使用ALTER 以及 TYPE 子句来完成。【查看表的类型可以使用 SHOW TABLE STATUS】
贴一段代码
mysql> ALTER TABLE testalter_tbl ENGINE = 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)修改表名怎么改?【利用 RENAME 子句来实现】
ALTER TABLE testalter_tbl RENAME TO alter_tbl;
其他用途?
1.修改存储引擎: 修改为MUJSAM
alter table tableName engine=myisam;

2.删除外键约束: KEYNAME 是外键名
alter table tableName drop foreign key keyName;

2. 修改字段的相对位置这个就算了 ——不我还贴一个吧
alter table tableName modify name1 type1 first|after name2;



页: [1]
查看完整版本: MYSQL 的 ALTER 命令