mysql alter 命令_MySQL_ALTER命令

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

1)修改表名:表名可以在数据库中唯一标识一个table

命令格式:ALTER TABLE 旧名 RENAME 新名;

mysql>alter table course rename courses;

Query OK,0 rows affected (0.00sec)

2)修改属性的数据类型

命令格式:ALTER TABLE 表名 MODIFY 属性名 数据类型 [完整性约束条件]

mysql>describe num;+--------+---------+------+-----+---------+----------------+

| Field | Type | Null | Key | Default | Extra |

+--------+---------+------+-----+---------+----------------+

| num_id | int(11) | NO | PRI | NULL | auto_increment |

| stu_id | int(10) | NO | PRI | NULL | |

| name | int(20) | YES | | NULL | |

+--------+---------+------+-----+---------+----------------+rowsin set (0.00sec)

mysql> alter table num modify name char(20); //改变属性的数据类型

Query OK,0 rows affected (0.05sec)

Records:0 Duplicates: 0 Warnings: 0mysql>describe num;+--------+----------+------+-----+---------+----------------+

| Field | Type | Null | Key | Default | Extra |

+--------+----------+------+-----+---------+----------------+

| num_id | int(11) | NO | PRI | NULL | auto_increment |

| stu_id | int(10) | NO | PRI | NULL | |

| name | char(20) | YES | | NULL | |

+--------+----------+------+-----+---------+----------------+rowsin set (0.00 sec)

mysql> alter table num modify sex char(10) not null default 'male'; //改变属性的完整性约束条件

Query OK,0 rows affected (0.08sec)

Records:0 Duplicates: 0 Warnings: 0mysql>describe num;+--------+----------+------+-----+---------+----------------+

| Field | Type | Null | Key | Default | Extra |

+--------+----------+------+-----+---------+----------------+

| num_id | int(11) | NO | PRI | NULL | auto_increment |

| stu_id | int(10) | NO | PRI | NULL | |

| name | char(10) | NO | | male | |

+--------+----------+------+-----+---------+----------------+

3 rows in set (0.00 sec)

3)修改属性的默认值

命令格式1:ALTER TABLE 表名 MODIFY 属性名 数据类型 DEFAULTvalue;

命令格式2:ALTER TABLE 表名 ALTER 属性名 SET DEFAULT value;

mysql>describe num;+--------+----------+------+-----+---------+----------------+

| Field | Type | Null | Key | Default | Extra |

+--------+----------+------+-----+---------+----------------+

| num_id | int(11) | NO | PRI | NULL | auto_increment |

| stu_id | int(10) | NO | PRI | NULL | |

| sex | char(10) | NO | | male | |

+--------+----------+------+-----+---------+----------------+

3 rows in set (0.00sec)

mysql> alter table num modify sex char(10) default 'female'; //修改属性的默认值

Query OK,0 rows affected (0.03sec)

Records:0 Duplicates: 0 Warnings: 0mysql>describe num;+--------+----------+------+-----+---------+----------------+

| Field | Type | Null | Key | Default | Extra |

+--------+----------+------+-----+---------+----------------+

| num_id | int(11) | NO | PRI | NULL | auto_increment |

| stu_id | int(10) | NO | PRI | NULL | |

| sex | char(10) | YES | | female | |

+--------+----------+------+-----+---------+----------------+

3 rows in set (0.00 sec)

注意:上述示例说明,在对属性做更改使,如果不指定NOT NULL参数,命令会按照“允许为空”的操作进行设置;

而且,若不指定DEFAULT参数,MySQL会自动设置该字段默认为 NULL,即便执行命令之前,其有非NULL默认值。

4)修改字段名

命令格式:ALTER TABLE 表名 CHANGE 属性名 新属性名 新数据类型

mysql>describe num;+--------+----------+------+-----+---------+----------------+

| Field | Type | Null | Key | Default | Extra |

+--------+----------+------+-----+---------+----------------+

| num_id | int(11) | NO | PRI | NULL | auto_increment |

| stu_id | int(10) | NO | PRI | NULL | |

| name | char(20) | YES | | NULL | |

+--------+----------+------+-----+---------+----------------+rowsin set (0.00sec)

mysql> alter table num change name sex char(10); //修改属性名称

Query OK,0 rows affected (0.04sec)

Records:0 Duplicates: 0 Warnings: 0mysql>describe num;+--------+----------+------+-----+---------+----------------+

| Field | Type | Null | Key | Default | Extra |

+--------+----------+------+-----+---------+----------------+

| num_id | int(11) | NO | PRI | NULL | auto_increment |

| stu_id | int(10) | NO | PRI | NULL | |

| sex | char(10) | YES | | NULL | |

+--------+----------+------+-----+---------+----------------+rowsin set (0.00 sec)

5)增加字段

命令格式:alter table 表名 ADD 属性名1 [完整性约束条件] [FIRST | AFTER 属性名2]

其中,FIRST参数表示将新加的属性设置为该表的第一个字段;AFTER 属性名2表示将新加的字段置于属性名2(已存在)之后。

mysql>describe num;+--------+----------+------+-----+---------+----------------+

| Field | Type | Null | Key | Default | Extra |

+--------+----------+------+-----+---------+----------------+

| num_id | int(11) | NO | PRI | NULL | auto_increment |

| stu_id | int(10) | NO | PRI | NULL | |

| sex | char(10) | YES | | NULL | |

+--------+----------+------+-----+---------+----------------+rowsin set (0.00sec)

mysql> alter table num add name char(20) NOT NULL FIRST; //新增一个属性

Query OK,0 rows affected (0.05sec)

Records:0 Duplicates: 0 Warnings: 0mysql>describe num;+--------+----------+------+-----+---------+----------------+

| Field | Type | Null | Key | Default | Extra |

+--------+----------+------+-----+---------+----------------+

| name | char(20) | NO | | NULL | |

| num_id | int(11) | NO | PRI | NULL | auto_increment |

| stu_id | int(10) | NO | PRI | NULL | |

| sex | char(10) | YES | | NULL | |

+--------+----------+------+-----+---------+----------------+rowsin set (0.00 sec)

6)删除字段

命令格式:ALTER TABLE 表名 DROP 属性名;

mysql>describe num;+--------+----------+------+-----+---------+----------------+

| Field | Type | Null | Key | Default | Extra |

+--------+----------+------+-----+---------+----------------+

| name | char(20) | NO | | NULL | |

| num_id | int(11) | NO | PRI | NULL | auto_increment |

| stu_id | int(10) | NO | PRI | NULL | |

| sex | char(10) | YES | | NULL | |

+--------+----------+------+-----+---------+----------------+rowsin set (0.00sec)

mysql>alter table num drop name; //删除属性name

Query OK,0 rows affected (0.09sec)

Records:0 Duplicates: 0 Warnings: 0mysql>describe num;+--------+----------+------+-----+---------+----------------+

| Field | Type | Null | Key | Default | Extra |

+--------+----------+------+-----+---------+----------------+

| num_id | int(11) | NO | PRI | NULL | auto_increment |

| stu_id | int(10) | NO | PRI | NULL | |

| sex | char(10) | YES | | NULL | |

+--------+----------+------+-----+---------+----------------+rowsin set (0.00 sec)

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值