码迷,mamicode.com
首页 > 数据库 > 详细

mysql表操作之修改

时间:2018-02-15 10:33:26      阅读:229      评论:0      收藏:0      [点我收藏+]

标签:records   where   mysq   表结构   dup   删除   ade   数据类型   change   

一、修改表

语法:
1. 修改表名
      ALTER TABLE 表名 
                          RENAME 新表名;

2. 增加字段
      ALTER TABLE 表名
                          ADD 字段名  数据类型 [完整性约束条件…],
                          ADD 字段名  数据类型 [完整性约束条件…];
      ALTER TABLE 表名
                          ADD 字段名  数据类型 [完整性约束条件…]  FIRST;
      ALTER TABLE 表名
                          ADD 字段名  数据类型 [完整性约束条件…]  AFTER 字段名;
                            
3. 删除字段
      ALTER TABLE 表名 
                          DROP 字段名;

4. 修改字段
      ALTER TABLE 表名 
                          MODIFY  字段名 数据类型 [完整性约束条件…];
      ALTER TABLE 表名 
                          CHANGE 旧字段名 新字段名 旧数据类型 [完整性约束条件…];
      ALTER TABLE 表名 
                          CHANGE 旧字段名 新字段名 新数据类型 [完整性约束条件…];

实例代码

示例:
1. 修改存储引擎
mysql> alter table t1 
    -> engine=innodb;

2. 添加字段
mysql> alter table t1
    -> add name varchar(20) not null,
    -> add age int(3) not null default 22;
    
mysql> alter table t1
    -> add stu_num varchar(10) not null after name;                //添加name字段之后

mysql> alter table t1                        
    -> add sex enum(‘male‘,‘female‘) default ‘male‘ first;          //添加到最前面

3. 删除字段
mysql> alter table t1
    -> drop sex;

mysql> alter table t1
    -> drop mac;

4. 修改字段类型modify
mysql> alter table t1
    -> modify age int(3);
mysql> alter table t1
    -> modify id int(11) not null primary key auto_increment;    //修改为主键

5. 增加约束(针对已有的主键增加auto_increment)
mysql> alter table t1 modify id int(11) not null primary key auto_increment;
ERROR 1068 (42000): Multiple primary key defined

mysql> alter table t1 modify id int(11) not null auto_increment;
Query OK, 0 rows affected (0.01 sec)
Records: 0  Duplicates: 0  Warnings: 0

6. 对已经存在的表增加复合主键
mysql> alter table service2
    -> add primary key(host_ip,port);        

7. 增加主键
mysql> alter table student1
    -> modify name varchar(10) not null primary key;

8. 增加主键和自动增长
mysql> alter table student1
    -> modify id int not null primary key auto_increment;

9. 删除主键
a. 删除自增约束
mysql> alter table student10 modify id int(11) not null; 

b. 删除主键
mysql> alter table student10                                 
    -> drop primary key;

示例

header 1 | header 2
---|---
row 1 col 1 | row 1 col 2
row 2 col 1 | row 2 col 2

二、复制表

复制表结构+记录 (key不会复制: 主键、外键和索引)
mysql> create table new_service select * from service;

只复制表结构
mysql> select * from service where 1=2;        //条件为假,查不到任何记录
Empty set (0.00 sec)

mysql> create table new1_service select * from service where 1=2;  
Query OK, 0 rows affected (0.00 sec)
Records: 0  Duplicates: 0  Warnings: 0

mysql> create table t4 like employees;

mysql表操作之修改

标签:records   where   mysq   表结构   dup   删除   ade   数据类型   change   

原文地址:https://www.cnblogs.com/fqh202/p/8449253.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!