修改表结构ALTER TABLE常用方法

引言

 一般在工作中建表操作是不常用的, 而对表的修改操作却常常涉及, 如何处理/修改已存在大量数据的表通常是个老大难的问题.

  各种报错信息层出不穷, 却对自己的操作深信不疑, 或者是担心误操作而导致数据丢失.

  因此, 修改表结构, 看似简单实则处处细节

修改表结构

  修改表结构大致有如下基本语法

 
 1 -- 1. 修改表名
 2     ALTER TABLE 表名 
 3         RENAME 新表名;
 4         
 5 -- 2. 增加字段
 6     ALTER TABLE 表名
 7         ADD 字段名  数据类型 [完整性约束条件…],
 8         ADD 字段名  数据类型 [完整性约束条件…];
 9                                     
10 -- 3. 删除字段
11     ALTER TABLE 表名 
12         DROP 字段名;
13         
14 -- 4. 修改字段
15     ALTER TABLE 表名 
16         MODIFY  字段名 数据类型 [完整性约束条件…];
17     ALTER TABLE 表名 
18         CHANGE 旧字段名 新字段名 旧数据类型 [完整性约束条件…];
19     ALTER TABLE 表名 
20         CHANGE 旧字段名 新字段名 新数据类型 [完整性约束条件…];
21         
22 -- 5.修改字段排列顺序/在增加的时候指定字段位置
23     ALTER TABLE 表名
24         ADD 字段名  数据类型 [完整性约束条件…]  FIRST;
25     ALTER TABLE 表名
26         ADD 字段名  数据类型 [完整性约束条件…]  AFTER 字段名;
27     ALTER TABLE 表名
28         CHANGE 字段名  旧字段名 新字段名 新数据类型 [完整性约束条件…]  FIRST;
29     ALTER TABLE 表名
30         MODIFY 字段名  数据类型 [完整性约束条件…]  AFTER 字段名;
31                     
ALTER TABLE的语法

示例

 1.利用ALTER TABLE处理NULL和UNIQUE约束

 1 CREATE TABLE t(
 2     id INT UNIQUE, 
 3     name CHAR(10) NOT NULL
 4 );
 5 
 6 -- 去掉NULL约束
 7 ALTER TABLE t 
 8 MODIFY name CHAR(10) NULL;
 9 
10 -- 添加NULL约束
11 ALTER TABLE t 
12 MODIFY name CHAR(10) NOT NUll;
13     
14 -- 去掉UNIQUE约束
15 ALTER TABLE t 
16 DROP INDEX id;
17 
18 -- 添加UNIQUE约束
19 ALTER TABLE t 
20 MODIFY id INT UNIQUE;
利用ALTER TABLE处理NULL和UNIQUE约束

 2.利用ALTER TABLE处理主键

 
 1 CREATE TABLE t(
 2     id INT UNIQUE, 
 3     name CHAR(10) NOT NULL
 4 );
 5 
 6 -- 去掉NULL约束
 7 ALTER TABLE t 
 8 MODIFY name CHAR(10) NULL;
 9 
10 -- 添加NULL约束
11 ALTER TABLE t 
12 MODIFY name CHAR(10) NOT NUll;
13 
14 -- 去掉UNIQUE约束
15 ALTER TABLE t 
16 DROP INDEX id;
17 
18 -- 添加UNIQUE约束
19 ALTER TABLE t 
20 MODIFY id INT UNIQUE;
利用ALTER TABLE处理主键

 3.利用ALTER TABLE为表添加外键

 
 1 CREATE TABLE press(
 2     id INT(11) NOT NULL,
 3     name CHAR(10) DEFAULT NULL,
 4     PRIMARY KEY (id)
 5 );
 6 
 7 CREATE TABLE book(
 8     id INT(11) DEFAULT NULL,
 9     bk_name CHAR(12) DEFAULT NULL,
10     press_id INT(11) NOT NULL,
11 );
12 
13 -- 为book表添加外键
14 ALTER TABLE book 
15 ADD CONSTRAINT [foreign key name] FOREIGN KEY(press_id) REFERENCES press(id);
16 
17 -- 删除外键
18 ALTER TABLE book 
19 DROP FOREIGN KEY [foreign key name];
20 
21 -- 注: [内容] 为可选填内容, 除保留字外, 符合语法规范均可
利用ALTER TABLE为表添加外键

其他示例

猜你喜欢

转载自www.cnblogs.com/dmcs95/p/10779136.html
今日推荐