当前位置: 代码迷 >> MySQL >> mysql 习题之 Alter 用法总结
  详细解决方案

mysql 习题之 Alter 用法总结

热度:3045   发布时间:2013-02-26 00:00:00.0
mysql 练习之 Alter 用法总结

alert 用法总结:


ALTER DATABASE语法

ALTER DATABASE用于更改数据库的全局特性。这些特性储存在数据库目录中的db.opt文件中。要使用ALTER DATABASE,您需要获得数据库ALTER权限。

CHARACTER SET子句用于更改默认的数据库字符集。COLLATE子句用于更改默认的数据库整序。

数据库名称可以忽略,此时,语句对应于默认数据库。也可以使用ALTER SCHEMA


ALTER TABLE语法

ALTER TABLE用于更改原有表的结构。例如,您可以增加或删减列,创建或取消索引,更改原有列的类型,或重新命名列或表。您还可以更改表的评注和表的类型。

1:删除列

ALTER TABLE 【表名字】 DROP 【列名称】

2:增加列

ALTER TABLE 【表名字】 ADD 【列名称】 INT NOT NULL  COMMENT '注释说明'

3:修改列的类型信息

ALTER TABLE 【表名字】 CHANGE 【列名称】【新列名称(这里可以用和原来列同名即可)】 BIGINT NOT NULL  COMMENT '注释说明'


如果您想要更改列的类型而不是名称, CHANGE语法仍然要求旧的和新的列名称,即使旧的和新的列名称是一样的。例如:

mysql> ALTER TABLE t1 CHANGE b b BIGINT NOT NULL;

您也可以使用MODIFY来改变列的类型,此时不需要重命名:

mysql> ALTER TABLE t1 MODIFY b BIGINT NOT NULL;

如果您使用CHANGEMODITY缩短列长时,列中存在有索引,并且缩短后的列长小于索引长度,则MySQL会自动缩短索引的长度。

·         当您使用CHANGEMODIFY更改列的类型时,MySQL会尽量把原有的列值转化为新的类型。

·         您可以使用FIRSTAFTER col_name在一个表行中的某个特定位置添加列。默认把列添加到最后。您也可以在CHANGEMODIFY语句中使用FIRSTAFTER


4:重命名列

ALTER TABLE 【表名字】 CHANGE 【列名称】【新列名称】 BIGINT NOT NULL  COMMENT '注释说明'

5:重命名表

ALTER TABLE 【表名字】 RENAME 【表新名字】

6:删除表中主键

Alter TABLE 【表名字】 drop primary key

7: 添加主键


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

ALTER TABLE sj_resource_charges ADD CONSTRAINT PK_SJ_RESOURCE_CHARGES PRIMARY KEY (resid,resfromid)

8:添加索引

ALTER TABLE sj_resource_charges add index INDEX_NAME (name);

9: 添加唯一限制条件索引

ALTER TABLE sj_resource_charges add unique emp_name2(cardnumber);

emp_name2 就是自己起的名字

alter table good add unique ugood_name(name);

10: 删除索引

alter table tablename drop index emp_name;

11 添加主键自增长

alter table good modify id int auto_increment;

12、删除唯一限制条件

alter table good add unique good_name
(name);

实际上就是删除索引。 增加唯一限制会添加一个索引。

ALTER TABLE `good`DROP INDEX `ugood_name`;


13、 删除主键自增长。

ALTER TABLE `good`MODIFY COLUMN `id`  int(11) NOT NULL FIRST ;



  相关解决方案