mysql表操作之修改

Posted fqh202

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql表操作之修改相关的知识,希望对你有一定的参考价值。

一、修改表

语法:
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表操作之修改的主要内容,如果未能解决你的问题,请参考以下文章

14.python与数据库之mysql:pymysqlsqlalchemy

mysql之视图

EasyClick 之 MySQL 命令行客户端使用

MySQL 之 表操作

MySql之自动同步表结构

数据库之mysql mysql 入门教程