mysql命令更改表结构:添加、删除、修改字段、调整字段顺序

本文详细介绍了使用MySQL命令进行表结构操作的方法,包括添加、删除、修改字段、调整字段顺序等常见需求,并提供了主键、索引等高级操作的具体实现。

原文出处:http://www.phpernote.com/mysql/1120.html


常用的通过mysql命令来更改表结构的一些sql语句,包括添加、删除、修改字段、调整字段顺序。

添加字段:

alter table `user_movement_log` Add column GatewayId int not null default 0 AFTER `Regionid`; (在哪个字段后面添加)

删除字段:

alter table `user_movement_log` drop column Gatewayid;

调整字段顺序:

ALTER TABLE `user_movement_log` CHANGE `GatewayId` `GatewayId` int not null default 0 AFTER RegionID;

//主键

alter table tabelname add new_field_id int(5) unsigned default 0 not null auto_increment ,add primary key (new_field_id);

//增加一个新列

alter table t2 add d timestamp;
alter table infos add ex tinyint not null default '0';

//删除列

alter table t2 drop column c;

//重命名列

alter table t1 change a b integer;

//改变列的类型

alter table t1 change b b bigint not null;
alter table infos change list list tinyint not null default '0';

//重命名表

alter table t1 rename t2;

加索引

mysql> alter table tablename change depno depno int(5) not null;
mysql> alter table tablename add index 索引名 (字段名1[,字段名2 …]);
mysql> alter table tablename add index emp_name (name);

加主关键字的索引

mysql> alter table tablename add primary key(id);

加唯一限制条件的索引

mysql> alter table tablename add unique emp_name2(cardnumber);

删除某个索引

mysql>alter table tablename drop index emp_name;

修改表:

增加字段:

mysql> ALTER TABLE table_name ADD field_name field_type;

修改原字段名称及类型:

mysql> ALTER TABLE table_name CHANGE old_field_name new_field_name field_type;

删除字段:

mysql> ALTER TABLE table_name DROP field_name;


### 如何在 MySQL 数据库中调整字段的位置 在 MySQL 中,`ALTER TABLE` 语句可以用于修改表结构,其中包括调整字段的位置。具体来说,可以通过 `AFTER` 或者 `FIRST` 关键字来指定新字段位置。 以下是详细的说明以及示例: #### 使用 AFTER 调整字段顺序 如果希望将某个字段移动到另一个字段之后,则可以在 `CHANGE COLUMN` 或 `MODIFY COLUMN` 的基础上加上 `AFTER` 子句[^5]。例如: ```sql ALTER TABLE 表名 CHANGE 字段名 新字段名 类型 AFTER 参考字段; ``` - **表名**:目标数据表的名字。 - **字段名**:当前要调整字段名字。 - **新字段名**:可以保持原样或者更改为新的名字。 - **类型**:该字段的数据类型。 - **参考字段**:表示将此字段放置在此字段之后。 #### 使用 FIRST 将字段移到最前 如果想把某字段放到表中的第一位,可以用 `FIRST` 替代 `AFTER`[^4]。语法如下: ```sql ALTER TABLE 表名 MODIFY 字段名 类型 FIRST; ``` 这里需要注意的是,当仅需改变字段的位置而不需要重命名时,推荐使用 `MODIFY` 而不是 `CHANGE`,因为后者会强制要求提供一个新的字段名称即使它与旧的一致。 #### 实际案例演示 假设有一个名为 `employees` 的表格,其初始定义如下所示: ```sql CREATE TABLE employees ( id INT PRIMARY KEY, first_name VARCHAR(50), last_name VARCHAR(50), birth_date DATE ); ``` 现在我们想要重新安排这些列使得 `last_name` 出现于 `first_name` 前面。操作方法为先移除再插入合适的地方,但由于直接支持位置变更功能存在简化方式即利用上述提到的技术手段完成任务: ```sql -- 把 'last_name' 放置在 'id' 后面也就是首位 ALTER TABLE employees MODIFY last_name VARCHAR(50) FIRST; -- 接着让 'birth_date' 移动至 'first_name' 后方紧邻处 ALTER TABLE employees MODIFY birth_date DATE AFTER first_name; ``` 执行以上两条指令后得到最终布局应该是这样的次序排列——`id`, `last_name`, `first_name`, 和最后才是 `birth_date`. #### 注意事项 尽管能够灵活地控制各栏位间的相对摆放关系,但在实际应用过程中应当谨慎对待大规模生产环境下的此类改动行为,因为它可能引发性能下降或者其他预料之外的结果比如索引失效等问题[^3]。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值