MYSQL alter 命令详解

ALTER

当我们需要修数据表的名字或者修改数据表的字段时,就需要使用alter命令。

一:删除,添加,或者修改表字段(字段名,字段类型)。

删除表字段语法:alter table 表名 drop 字段名; 下面是示例!

mysql> alter table test drop i;
Query OK, 0 rows affected (0.04 sec)
Records: 0  Duplicates: 0  Warnings: 0

mysql> show columns from test;
+-------+----------+------+-----+---------+-------+
| Field | Type     | Null | Key | Default | Extra |
+-------+----------+------+-----+---------+-------+
| name  | char(50) | YES  |     | NULL    |       |
+-------+----------+------+-----+---------+-------+
1 row in set (0.00 sec)

添加表字段语法: alter table 表名 add 字段名 子弹类型; 

mysql> alter table test add age int;
Query OK, 0 rows affected (0.01 sec)
Records: 0  Duplicates: 0  Warnings: 0

mysql> show columns from test;
+-------+----------+------+-----+---------+-------+
| Field | Type     | Null | Key | Default | Extra |
+-------+----------+------+-----+---------+-------+
| name  | char(50) | YES  |     | NULL    |       |
| age   | int(11)  | YES  |     | NULL    |       |
+-------+----------+------+-----+---------+-------+
2 rows in set (0.00 sec)

如果你想让你添加的字段到最前面或者具体某个字段之后,那么可以用参数,比如first,after,类似如下命令:

mysql> alter table test add level int first; #将新增的字段level放在最前面

mysql> alter table test add num int after level;    #将新增的num字段放在level字段之后

如果需要修改字段类型及名称,可以用modify或者change,

修改表字段类型语法:alter table 表名 modify 字段名 字段类型 (这里是要修改的字段名);

mysql> alter table test modify name char(30); #将name字段类型修改为char(30)
Query OK, 0 rows affected (0.00 sec)
Records: 0  Duplicates: 0  Warnings: 0

mysql> show columns from test;
+-------+----------+------+-----+---------+-------+
| Field | Type     | Null | Key | Default | Extra |
+-------+----------+------+-----+---------+-------+
| level | int(11)  | YES  |     | NULL    |       |
| num   | int(11)  | YES  |     | NULL    |       |
| name  | char(30) | YES  |     | NULL    |       |
| age   | int(11)  | YES  |     | NULL    |       |
+-------+----------+------+-----+---------+-------+
4 rows in set (0.00 sec)

修改字段名称语法:alter table 表名 change 原字段名 新字段名 字段类型;

mysql> alter table test change level jibie int;    #将level字段名修改为jibie,类型为int型;
Query OK, 0 rows affected (0.01 sec)
Records: 0  Duplicates: 0  Warnings: 0

mysql> show columns from test;
+-------+----------+------+-----+---------+-------+
| Field | Type     | Null | Key | Default | Extra |
+-------+----------+------+-----+---------+-------+
| jibie | int(11)  | YES  |     | NULL    |       |
| num   | int(11)  | YES  |     | NULL    |       |
| name  | char(30) | YES  |     | NULL    |       |
| age   | int(11)  | YES  |     | NULL    |       |
+-------+----------+------+-----+---------+-------+
4 rows in set (0.00 sec)

二:修改字段默认值和表名

修改字段默认值语法: alter talve 表名 alter 字段名 set default 值;

mysql> alter table test  alter jibie  set  Default 1000;     #将test表中的jibie字段的默认值修改为1000
Query OK, 0 rows affected (0.01 sec)
Records: 0  Duplicates: 0  Warnings: 0
mysql> show columns from test;
+-------+----------+------+-----+---------+-------+
| Field | Type     | Null | Key | Default | Extra |
+-------+----------+------+-----+---------+-------+
| jibie | int(11)  | YES  |     | 1000    |       |
| num   | int(11)  | YES  |     | NULL    |       |
| name  | char(30) | YES  |     | NULL    |       |
| age   | int(11)  | YES  |     | NULL    |       |
+-------+----------+------+-----+---------+-------+
4 rows in set (0.01 sec)

如果不需要默认值,您也可以用drop来删除它

语法:alter table 表名 alter 字段名 drop default;

mysql> ALTER TABLE test ALTER jibie DROP DEFAULT;  #把test表中的jibie子段的默认值删除掉
Query OK, 0 rows affected (0.00 sec)
Records: 0  Duplicates: 0  Warnings: 0
mysql> show columns from test;
+-------+----------+------+-----+---------+-------+
| Field | Type     | Null | Key | Default | Extra |
+-------+----------+------+-----+---------+-------+
| jibie | int(11)  | YES  |     | NULL    |       |
| num   | int(11)  | YES  |     | NULL    |       |
| name  | char(30) | YES  |     | NULL    |       |
| age   | int(11)  | YES  |     | NULL    |       |
+-------+----------+------+-----+---------+-------+
4 rows in set (0.00 sec)

修改表名语法:alter table 表名 rename to 新表名;

mysql> alter table test rename to dabai; #修改表名为dabai
Query OK, 0 rows affected (0.00 sec)

mysql> show tables;
+-----------------+
| Tables_in_dabai |
+-----------------+
| dabai           |
+-----------------+
1 row in set (0.00 sec)

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值