且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

如何修改数据库

更新时间:2022-09-09 17:52:09

1)修改表明

alter table <old tablename> rename <net tablename>;

范例

1
alter table t1 rename t4;

2)修改字段的数据类型

alter table <table name> modify <column name> <data type>;

当表中已有数据是,慎用(特表数据量大)。

1
alter table t1 modify name varchar(20);

3)修改字段名

当表中已有数据是,慎用(特表数据量大)。

alter table <table name> change <old column name> <new column name>

1
alter table t1 change name uname varchar(20);

4)添加字段

当表中数据量很大时,慎用

alter table <table name> add <new column name> <new data type> [check] [first|after old_column_name]

1
2
3
alter table t1 add `location` varchar(20) -- 字段增加到最后列
alter table t1 add `age` int not null after uname; -- uname后面增加
alter table t1 add `colnum ` int first-- 第一列增加一个字段

5)删除字段

alter table <table name> drop <column name>;

当表中数据量很大时,慎用

1
alter table t1 drop location;

6)修改字段排列位置

alter table <table name> modify <column name1> <data type> first|after <column name2>

当表中数据量很大时,慎用 

1
2
alter table t1 modify name varchar(20) after uid;
alter table t1 modify location varchar(30) after uname;

7)更改表的存储引擎

alter table <table name> engine=<new engine>;

当表中的数据量很大时,慎用

1
2
alter table t1 engine=innodb;
alter table t1 engine=MYISAM;

8)删除标的外键约束

alter table <table name> drop foreign key <foreign key name>;

删除所有的外键之后,才能删除对应的主键所以在的表。

1
2
3
4
5
drop table t2;
ERROR 1217 (3000):Cannot delete or update a parent row: a foreign key constraint fails;
alter table t3 drop foreign key fk_1;
show create table t3\G;
drop table t2;

总结:

1)关系型数据库中突出强调利用数据之间的关系设计表,用表作为数据容器。

2)表设计要综合考虑多种因素,参考三范式合理规划。

3)存储引擎作用于表,不是作用于库。

4)大表慎用alter语句。










本文转自 tanzhenchao 51CTO博客,原文链接:http://blog.51cto.com/cmdschool/1732727,如需转载请自行联系原作者