高性能mysql运维实战_运维架构师-开源数据库MySQL运维实战-007

3.5 DDL3(修改)

分类

修改表名

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 旧字段名 新字段名 新数据类型 [完整性约束条件…];

示例

1.修改表名

ALTER TABLE t1 RENAME t2;

2. 添加字段

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; //添加到最前面

3. 删除字段

mysql> alter table student10

-> drop sex;

mysql> alter table service

-> drop mac;

4.删除主键[primary key auto_increment]

a. 删除自增约束

mysql> alter table student10 modify id int not null;

b. 删除主键

mysql> alter table student10

-> drop primary key;

5.1修改字段类型modify

mysql> alter table student10

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

mysql> alter table student10

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

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

mysql> alter table student10

modify id int not null

primary key

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

ERROR 1068 (42000): Multiple primary key defined

mysql> alter table student10

modify id int not null

???

auto_increment;

Query OK, 0 rows affected (0.01 sec)

Records: 0 Duplicates: 0 Warnings: 0

6. 增加复合主键

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

7. 增加主键

mysql> alter table student1

-> add primary key(id);

8. 增加主键和自动增长

mysql> alter table student1

-> modify id int not null primary key auto_increment;

9. 修改存储引擎

mysql> alter table service engine=innodb;

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

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

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

memory仅内存

3.6 DDL4(复制删除)[扩展]

分类复制表结构+记录 (key不会复制: 主键、外键和索引)

只复制表结构

复制表结构,包括Key

删除表

示例

1 .复制表结构+记录 (key不会复制: 主键、外键和索引)

mysql> create table new_service

select * from service;

2.只复制表结构

mysql> create table new1_service select * from service where 1=2; //条件为假,查不到任何记录

3.复制表结构,包括Key

mysql> create table t4 like employees;

4.删除表

DROP TABLE 表名;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值