老莫的笔记本  
  
请选择 进入手机版 | 继续访问电脑版
查看: 1186|回复: 0

MYSQL 的 ALTER 命令

[复制链接]

662

主题

878

帖子

5131

积分

超级版主

Rank: 8Rank: 8

积分
5131
发表于 2018-7-27 23:13:37 | 显示全部楼层 |阅读模式
先来个概念,这玩意是干啥的:
1.用途 删除、添加、修改表名称 或者表的字段名称:
先删一个瞅瞅:
  1. ALTER TABLE testalter_tbl  DROP i;
复制代码
上述代码解析:ALTER 命令以及DROP 子句来删除表中的 i 字段;  提示: 如果表中只有一个字段 是删不掉的。

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

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

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


修改数据表类型 可以使用ALTER 以及 TYPE 子句来完成。【查看表的类型可以使用 SHOW TABLE STATUS】
贴一段代码
  1. mysql> ALTER TABLE testalter_tbl ENGINE = MYISAM;
  2. mysql>  SHOW TABLE STATUS LIKE 'testalter_tbl'\G
  3. *************************** 1. row ****************
  4.            Name: testalter_tbl
  5.            Type: MyISAM
  6.      Row_format: Fixed
  7.            Rows: 0
  8. Avg_row_length: 0
  9.     Data_length: 0
  10. Max_data_length: 25769803775
  11.    Index_length: 1024
  12.       Data_free: 0
  13. Auto_increment: NULL
  14.     Create_time: 2007-06-03 08:04:36
  15.     Update_time: 2007-06-03 08:04:36
  16.      Check_time: NULL
  17. Create_options:
  18.         Comment:
  19. 1 row in set (0.00 sec)
复制代码
修改表名怎么改?  【利用 RENAME 子句来实现】
  1. ALTER TABLE testalter_tbl RENAME TO alter_tbl;
复制代码
其他用途?
1.修改存储引擎: 修改为MUJSAM
  1. alter table tableName engine=myisam;
复制代码

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

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



回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表