MySQL修改表结构操作命令总结

 更新时间:2014年12月02日 09:36:20   投稿:junjie  
这篇文章主要介绍了MySQL修改表结构操作命令总结,包含如删除列、添加列、修改列、添加主键、删除主键、添加唯一索引、添加普通索引等内容,需要的朋友可以参考下

表的结构如下:

复制代码 代码如下:

mysql> show create table person;
| person | CREATE TABLE `person` (
  `number` int(11) DEFAULT NULL,
  `name` varchar(255) DEFAULT NULL,
  `birthday` date DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8 |

删除列:

复制代码 代码如下:

ALTER TABLE person DROP COLUMN birthday;

添加列:

复制代码 代码如下:

ALTER TABLE person ADD COLUMN birthday datetime;

修改列,把number修改为bigint:

复制代码 代码如下:

ALTER TABLE person MODIFY number BIGINT NOT NULL;

或者是把number修改为id,类型为bigint:

复制代码 代码如下:

ALTER TABLE person CHANGE number id BIGINT;

添加主键:

复制代码 代码如下:

ALTER TABLE person ADD PRIMARY KEY (id);

删除主键:

复制代码 代码如下:

ALTER TABLE person DROP PRIMARY KEY;

添加唯一索引:

复制代码 代码如下:

ALTER TABLE person ADD UNIQUE name_unique_index (`name`);

为name这一列创建了唯一索引,索引的名字是name_unique_index.

添加普通索引:

复制代码 代码如下:

ALTER TABLE person ADD INDEX birthday_index (`birthday`);

删除索引:

复制代码 代码如下:

ALTER TABLE person DROP INDEX birthday_index;
ALTER TABLE person DROP INDEX name_unique_index;

禁用非唯一索引

复制代码 代码如下:

ALTER TABLE person DISABLE KEYS;

ALTER TABLE...DISABLE KEYS让MySQL停止更新MyISAM表中的非唯一索引。

激活非唯一索引

复制代码 代码如下:

ALTER TABLE person ENABLE KEYS;

ALTER TABLE ... ENABLE KEYS重新创建丢失的索引。

把表默认的字符集和所有字符列(CHAR, VARCHAR, TEXT)改为新的字符集:

复制代码 代码如下:

ALTER TABLE person CONVERT TO CHARACTER SET utf8;

修改表某一列的编码

复制代码 代码如下:

ALTER TABLE person CHANGE name name varchar(255) CHARACTER SET utf8;

仅仅改变一个表的默认字符集

复制代码 代码如下:

ALTER TABLE person DEFAULT CHARACTER SET utf8;

修改表名

复制代码 代码如下:

RENAME TABLE person TO person_other;

移动表到其他数据库

复制代码 代码如下:

RENAME TABLE current_db.tbl_name TO other_db.tbl_name;

相关文章

  • Windows下安装MySQL 5.7.17压缩版中遇到的坑

    Windows下安装MySQL 5.7.17压缩版中遇到的坑

    最近发现原来好端端的MySQL突然间不能用了,无奈只能重新下载了最新的MySQL 5.7.17 Community 压缩版 for Windows 64-bit。但在安装过程中遇到了一些意外的问题,通过查找相关资料也解决了,所以想着总结出来,方便需要的朋友们可以参考借鉴,下面来一起看看吧。
    2017-01-01
  • Mysql使用简单教程(三)

    Mysql使用简单教程(三)

    这篇文章主要介绍了Mysql使用简单教程(三) 的相关资料,需要的朋友可以参考下
    2016-05-05
  • 浅谈MySQL数据查询太多会OOM吗

    浅谈MySQL数据查询太多会OOM吗

    本文主要介绍了浅谈MySQL数据查询太多会OOM吗?文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-08-08
  • Mysql的Table doesn't exist问题及解决

    Mysql的Table doesn't exist问题及解决

    这篇文章主要介绍了Mysql的Table doesn't exist问题及解决,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-12-12
  • MySQL5.7更改密码时出现ERROR 1054 (42S22)的解决方法

    MySQL5.7更改密码时出现ERROR 1054 (42S22)的解决方法

    这篇文章主要为大家详细介绍了MySQL5.7更改密码时出现ERROR 1054 (42S22)的解决方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-10-10
  • 深入理解MySQL主从复制线程状态转变

    深入理解MySQL主从复制线程状态转变

    这篇文章主要给大家介绍了关于MySQL主从复制线程状态转变的相关资料,文中介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-02-02
  • 浅析drop user与delete from mysql.user的区别

    浅析drop user与delete from mysql.user的区别

    本篇文章是对drop user与delete from mysql.user的区别进行了详细的分析介绍,需要的朋友参考下
    2013-06-06
  • 在Mysql上创建数据表实例代码

    在Mysql上创建数据表实例代码

    这篇文章主要介绍了如何在Mysql上创建数据表,需要的朋友可以参考下
    2014-03-03
  • Mac 将mysql路径加入环境变量的方法

    Mac 将mysql路径加入环境变量的方法

    这篇文章主要介绍了Mac如何将mysql路径加入环境变量,有需要的朋友好按照下面的步骤操作即可
    2014-07-07
  • mySQL中LEN()与DATALENGTH()的区别

    mySQL中LEN()与DATALENGTH()的区别

    LEN返回指定字符串表达式的字符数,其中不包含尾随空格。DATALENGTH返回用于表示任何表达式的字节数。
    2011-03-03

最新评论