2019-01-15

修改表名

  ALTER TABLE 表名

                      RENAME 新表名;

增加字段

  ALTER TABLE 表名

                      ADD 字段名  数据类型 [完整性约束条件…],

                          ADD 字段名  数据类型 [完整性约束条件…];

                            (追加)

    ALTER TABLE 表名

                        ADD 字段名  数据类型 [完整性约束条件…]  FIRST;

                            (首列)

     ALTER TABLE 表名

                    ADD 字段名  数据类型 [完整性约束条件…]  AFTER 字段名;

                              (中间)

删除字段

  ALTER TABLE 表名

  DROP 字段名;

修改字段

  ALTER TABLE 表名

                      MODIFY  字段名 数据类型 [完整性约束条件…];

  ALTER TABLE 表名

                      CHANGE 旧字段名 新字段名 旧数据类型 [完整性约束条件…];

  ALTER TABLE 表名

                      CHANGE 旧字段名 新字段名 新数据类型 [完整性约束条件…];

                                        示例:

修改表名

ALTER TABLE t1 RENAME  t2;

增加字段

mysql> create table student10 (id int);

mysql> alter table student10

    -> add name varchar(20) not null,

    -> add age int not null default 22;


mysql> alter table student10

    -> add stu_num int not null after name;                         //添加name字段之后

mysql> alter table student10                       

    -> add sex enum('male','female') default 'male' first;         //添加到最前面

删除字段

mysql> alter table student10

        -> drop sex;

mysql> alter table service

        -> drop mac;

删除主键[primary key auto_increment]

删除主键时,要先清理掉自动增长:

1、创建表

create table t4( id int auto_increment primary key,name varchar(50));

2、插入数据

mysql> insert into t4 values (1,'aa');

Query OK, 1 row affected (0.01 sec)

mysql> insert into t4 values (1,'aa');

ERROR 1062 (23000): Duplicate entry '1' for key 'PRIMARY'

mysql>

mysql> insert into t4 (name) values ('bb');

Query OK, 1 row affected (0.03 sec)

mysql> select * from t4;

+----+------+

| id | name |

+----+------+

|  1 | aa  |

|  2 | bb  |

+----+------+

3、删除主键

a. 删除自增约束

mysql> alter table student10 modify id int not null;

b. 删除主键

mysql> alter table student10                               

        -> drop primary key;

(如果没有自动增长直接可以用drop primary key 删除主键。)

修改字段类型modify

mysql> alter table student10

        -> modify age tinyint  not null default 22;              //注意保留原有的约束条件


mysql> alter table student10

        -> modify id int not null primary key ;     //修改字段类型、约束、主键

(或者使用add增加单列主键

mysql> alter table student1

        -> add primary key(id);)

增加约束(针对已有的主键增加auto_increment)

1、准备一个有主键,但没有自增的表

mysql> create table t6 (id int primary key  ,name varchar(50) );

Query OK, 0 rows affected (0.04 sec)

2、为该表增加自增

错误示范:

mysql> alter table t6

modify id int not null

primary key

auto_increment;        //错误,该字段已经是primary key

ERROR 1068 (42000): Multiple primary key defined

正确示范:

mysql> alter table t6

modify id int not null

???

auto_increment;

Query OK, 0 rows affected (0.01 sec)

Records: 0  Duplicates: 0  Warnings: 0

增加复合主键

合并服务器

mysql> alter table student10  add primary key(host_ip,port);

修改存储引擎

mysql> alter table service  engine=innodb;

//engine=myisam|memory|....

innodb提供事物支持及主外键高级功能

MyISAM不支持事物处理,强调高性能。

memory仅内存

你可能感兴趣的:(2019-01-15)