天天看點

如何修改資料庫

1)修改表明

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

範例

1

<code>alter</code> <code>table</code> <code>t1 rename t4;</code>

2)修改字段的資料類型

alter table &lt;table name&gt; modify &lt;column name&gt; &lt;data type&gt;;

當表中已有資料是,慎用(特表資料量大)。

<code>alter</code> <code>table</code> <code>t1 </code><code>modify</code> <code>name</code> <code>varchar</code><code>(20);</code>

3)修改字段名

alter table &lt;table name&gt; change &lt;old column name&gt; &lt;new column name&gt;

<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 &lt;table name&gt; add &lt;new column name&gt; &lt;new data type&gt; [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 &lt;table name&gt; drop &lt;column name&gt;;

<code>alter</code> <code>table</code> <code>t1 </code><code>drop</code> <code>location;</code>

6)修改字段排列位置

alter table &lt;table name&gt; modify &lt;column name1&gt; &lt;data type&gt; first|after &lt;column name2&gt;

當表中資料量很大時,慎用 

<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 &lt;table name&gt; engine=&lt;new engine&gt;;

當表中的資料量很大時,慎用

<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 &lt;table name&gt; drop foreign key &lt;foreign key name&gt;;

删除所有的外鍵之後,才能删除對應的主鍵是以在的表。

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,如需轉載請自行聯系原作者