1)修改表明
alter table <old tablename> rename <net tablename>;
範例
1
<code>alter</code> <code>table</code> <code>t1 rename t4;</code>
2)修改字段的資料類型
alter table <table name> modify <column name> <data type>;
當表中已有資料是,慎用(特表資料量大)。
<code>alter</code> <code>table</code> <code>t1 </code><code>modify</code> <code>name</code> <code>varchar</code><code>(20);</code>
3)修改字段名
alter table <table name> change <old column name> <new column name>
<code>alter</code> <code>table</code> <code>t1 change </code><code>name</code> <code>uname </code><code>varchar</code><code>(20);</code>
4)添加字段
當表中資料量很大時,慎用
alter table <table name> add <new column name> <new data type> [check] [first|after old_column_name]
2
3
<code>alter</code> <code>table</code> <code>t1 </code><code>add</code> <code>`location` </code><code>varchar</code><code>(20) </code><code>-- 字段增加到最後列</code>
<code>alter</code> <code>table</code> <code>t1 </code><code>add</code> <code>`age` </code><code>int</code> <code>not</code> <code>null</code> <code>after</code> <code>uname; </code><code>-- uname後面增加</code>
<code>alter</code> <code>table</code> <code>t1 </code><code>add</code> <code>`colnum ` </code><code>int</code> <code>first</code><code>; </code><code>-- 第一列增加一個字段</code>
5)删除字段
alter table <table name> drop <column name>;
<code>alter</code> <code>table</code> <code>t1 </code><code>drop</code> <code>location;</code>
6)修改字段排列位置
alter table <table name> modify <column name1> <data type> first|after <column name2>
當表中資料量很大時,慎用
<code>alter</code> <code>table</code> <code>t1 </code><code>modify</code> <code>name</code> <code>varchar</code><code>(20) </code><code>after</code> <code>uid;</code>
<code>alter</code> <code>table</code> <code>t1 </code><code>modify</code> <code>location </code><code>varchar</code><code>(30) </code><code>after</code> <code>uname;</code>
7)更改表的存儲引擎
alter table <table name> engine=<new engine>;
當表中的資料量很大時,慎用
<code>alter</code> <code>table</code> <code>t1 engine=innodb;</code>
<code>alter</code> <code>table</code> <code>t1 engine=MYISAM;</code>
8)删除标的外鍵限制
alter table <table name> drop foreign key <foreign key name>;
删除所有的外鍵之後,才能删除對應的主鍵是以在的表。
4
5
<code>drop</code> <code>table</code> <code>t2;</code>
<code>ERROR 1217 (3000):Cannot </code><code>delete</code> <code>or</code> <code>update</code> <code>a parent row: a </code><code>foreign</code> <code>key</code> <code>constraint</code> <code>fails;</code>
<code>alter</code> <code>table</code> <code>t3 </code><code>drop</code> <code>foreign</code> <code>key</code> <code>fk_1;</code>
<code>show </code><code>create</code> <code>table</code> <code>t3\G;</code>
總結:
1)關系型資料庫中突出強調利用資料之間的關系設計表,用表作為資料容器。
2)表設計要綜合考慮多種因素,參考三範式合理規劃。
3)存儲引擎作用于表,不是作用于庫。
4)大表慎用alter語句。
本文轉自 tanzhenchao 51CTO部落格,原文連結:http://blog.51cto.com/cmdschool/1732727,如需轉載請自行聯系原作者