--------------------------------------------------------------------------------------------------------
【【【修改表结构】】】
语法结构
• 基本用法
– ALTER TABLE 表名 执行动作 ;
Add 添加字段
Modify 修改字段类型
Change 修改字段名
Drop 删除字段
Rename修改表名
-------------------------------
添加新字段
基本用法
– alter table 表名
– add 字段名 类型 ( 宽度 ) 约束条件 ;
可加 after 字段名 ;
或者 first;
新添加的字段 默认是在已有字段的下面。
mysql> create table t15( name char(5) not null default"", level int(3) zerofill default 0, money tinyint (2) zerofill default 0 );
mysql> desc t15;
mysql> insert into t15(level,money) values(2,19);
mysql> select * from t15;
mysql> select * from t15;
mysql> alter table t15
-> add email varchar(30) default "stu@tedu.cn",
-> add tel char(11);
mysql> select * from t15;
mysql> alter table t15
-> add stu_id char(9) first;
mysql> select * from t15;
mysql> alter table t15
-> add sex enum("boy","girl","no") default "no" after name;
mysql> select * from t15;
mysql>
----------------------------------------------------------------------------------------------------------------------------------------
【【修改字段类型】】】 注意: 修改字段是,如果约束条件不修改 就照抄原有的约束条件,不然报错 或者更改成默认约束条件。
• 基本用法
– ALTER TABLE 表名
– modify 字段名 类型 ( 宽度 ) 约束条件 ;
可加 AFTER 字段名 ;
或者 FIRST;
mysql> desc t15;
mysql> alter table t15
-> modify
-> name char(10) not null; /###修改字段是,如果约束条件不修改 就照抄原有的约束条件,不然报错 或者更改成默认约束条件。
mysql> select * from t15;
mysql> desc t15;
mysql> alter table t15 modify tel char(11) after name;
mysql> desc t15;
mysql> select * from t15;
--------------------------------------------------------------------
删除字段
• 基本用法
– ALTER TABLE 表名
– drop 字段名 ;
表中有多条记录时,所有列此字段的值都删除了
mysql> select * from t15;
mysql> alter table t15 drop stu_id,drop tel; //可以一次删除多个字段 用,号隔开就行
mysql> select * from t15;
mysql> desc t15;
------------------------------------------------------------------------------------------------------------------------------------------------
修改字段名
• 基本用法
– ALTER TABLE 表名
– change 源字段名 新字段名 类型 ( 宽度 ) 约束条件
;
当跟新类型和约束条件时,也可修改字段类型
mysql> desc t15;
mysql> alter table t15
-> change email mail varchar(30) default "stu@tedu.cn";
mysql> select * from t15;
mysql> alter table t15 change mail Email varchar (50) default "stu@163.com";
mysql> select * from t15;
---------------------------------------------------------------------
修改表名
• 基本用法
– ALTER TABLE 表名
– Rename 新表名;
表对应的文件名,也会改变
mysql> show tables;
mysql> alter table t15 rename stuinfo;
mysql> show tables ;
+------------------+
| Tables_in_db1 |
+------------------+
| 学生信息表1 |
| t14 |
| t15 |
| t2 |
+------------------+
4 rows in set (0.00 sec)
mysql> alter table t15 rename stuinfo;
Query OK, 0 rows affected (0.11 sec)
mysql> show tables;
+------------------+
| Tables_in_db1 |
+------------------+
| 学生信息表1 |
| stuinfo |
| t14 |
| t2 |
+------------------+
4 rows in set (0.00 sec)
mysql>
---------------------