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语句。