mysql改表结构主要是5大操作

ADD   添加字段

MODIFY 修改字段类型

CHANGE 修改字段名(也可以修改字段名)

DROP   删除字段

RENAME 修改表名

ADD添加新字段:(新字段默认添加在所有字段末尾,可以设定位置)

语法结构为:

  ALTER TABLE 库名.表名

  ADD 列名 类型(范围) 约束条件

  [ AFTER 字段名 | FRIST ]

mysql> DESC f_fri_list;
+---------------+-------------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+---------------+-------------------+------+-----+---------+----------------+
| id | int(10) unsigned | NO | PRI | NULL | auto_increment |
| type | enum('男','女') | NO | | NULL | |
| fri_id | int(10) unsigned | NO | | NULL | |
| fri_name | char(10) | NO | | NULL | |
| fri_phone_num | char(11) | YES | | NULL | |
| fri_email | varchar(20) | YES | | NULL | |
| fri_wecat | varchar(20) | YES | | NULL | |
| fri_brithday | date | YES | | NULL | |
| create_date | date | NO | | NULL | |
| create_time | time | NO | | NULL | |
+---------------+-------------------+------+-----+---------+----------------+
10 rows in set (0.00 sec)

例如我在fri_name后添加一个fri_from

mysql> ALTER TABLE f_fri_list
   -> ADD fri_from CHAR(30)
   -> AFTER fri_name;

mysql> DESC f_fri_list;
+---------------+-------------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+---------------+-------------------+------+-----+---------+----------------+
| id | int(10) unsigned | NO | PRI | NULL | auto_increment |
| type | enum('男','女') | NO | | NULL | |
| fri_id | int(10) unsigned | NO | | NULL | |
| fri_name | char(10) | NO | | NULL | |
| fri_from | char(30) | YES | | NULL | |
| fri_phone_num | char(11) | YES | | NULL | |
| fri_email | varchar(20) | YES | | NULL | |
| fri_wecat | varchar(20) | YES | | NULL | |
| fri_brithday | date | YES | | NULL | |
| create_date | date | NO | | NULL | |
| create_time | time | NO | | NULL | |
+---------------+-------------------+------+-----+---------+----------------+
11 rows in set (0.00 sec)

如果是要在列首添加一个行叫fri_ot

mysql> ALTER TABLE f_fri_list
   -> ADD fri_ot char(100)
   -> first;

mysql> DESC f_fri_list;
+---------------+-------------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+---------------+-------------------+------+-----+---------+----------------+
| fri_ot | char(100) | YES | | NULL | |
| id | int(10) unsigned | NO | PRI | NULL | auto_increment |
| type | enum('男','女') | NO | | NULL | |
| fri_id | int(10) unsigned | NO | | NULL | |
| fri_name | char(10) | NO | | NULL | |
| fri_from | char(30) | YES | | NULL | |
| fri_phone_num | char(11) | YES | | NULL | |
| fri_email | varchar(20) | YES | | NULL | |
| fri_wecat | varchar(20) | YES | | NULL | |
| fri_brithday | date | YES | | NULL | |
| create_date | date | NO | | NULL | |
| create_time | time | NO | | NULL | |
+---------------+-------------------+------+-----+---------+----------------+
12 rows in set (0.00 sec)

MODIFY修改字段类型(修改的字段类型不能与已存储的数据冲突)

语法结构为

  ALTER TABLE 库名.表名

  MODIFY 列名 类型(范围) 约束条件

  [ AFTER 字段名 | FRIST ]

除了关键字变成了MODIFY之外其他与ADD一致

例如我需要将fri_ot 类型改成 varchar类型(限定范围为200) 并放到最后一列去则

mysql> ALTER TABLE f_fri_list
   -> MODIFY fri_ot varchar(100)
   -> AFTER create_time;

mysql> DESC f_fri_list;
+---------------+-------------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+---------------+-------------------+------+-----+---------+----------------+
| id | int(10) unsigned | NO | PRI | NULL | auto_increment |
| type | enum('男','女') | NO | | NULL | |
| fri_id | int(10) unsigned | NO | | NULL | |
| fri_name | char(10) | NO | | NULL | |
| fri_from | char(30) | YES | | NULL | |
| fri_phone_num | char(11) | YES | | NULL | |
| fri_email | varchar(20) | YES | | NULL | |
| fri_wecat | varchar(20) | YES | | NULL | |
| fri_brithday | date | YES | | NULL | |
| create_date | date | NO | | NULL | |
| create_time | time | NO | | NULL | |
| fri_ot | varchar(100) | YES | | NULL | |
+---------------+-------------------+------+-----+---------+----------------+
12 rows in set (0.00 sec)

CHANGE 修改字段名(也可以用来修改字段类型)

  ALTER TABLE 库名.表名

  CHANGE 源列名 新列名 类型(范围) 约束条件

例如 我需要将fri_ot 列名改为 fri_ot2

mysql> ALTER TABLE f_fri_list
  -> CHANGE fri_ot fri_ot2 varchar(100);

mysql> DESC f_fri_list;
+---------------+-------------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+---------------+-------------------+------+-----+---------+----------------+
| id | int(10) unsigned | NO | PRI | NULL | auto_increment |
| type | enum('男','女') | NO | | NULL | |
| fri_id | int(10) unsigned | NO | | NULL | |
| fri_name | char(10) | NO | | NULL | |
| fri_from | char(30) | YES | | NULL | |
| fri_phone_num | char(11) | YES | | NULL | |
| fri_email | varchar(20) | YES | | NULL | |
| fri_wecat | varchar(20) | YES | | NULL | |
| fri_brithday | date | YES | | NULL | |
| create_date | date | NO | | NULL | |
| create_time | time | NO | | NULL | |
| fri_ot2 | varchar(100) | YES | | NULL | |
+---------------+-------------------+------+-----+---------+----------------+
12 rows in set (0.00 sec)

删除字段(表中有记录时,所有记录中此字段的值都会被删除)

  ALTER TABLE 库名.表名

  DROP 列名

例如要删除fri_ot2字段

mysql> ALTER TABLE f_fri_list
   -> DROP fri_ot2;

mysql> DESC f_fri_list;
+---------------+-------------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+---------------+-------------------+------+-----+---------+----------------+
| id | int(10) unsigned | NO | PRI | NULL | auto_increment |
| type | enum('男','女') | NO | | NULL | |
| fri_id | int(10) unsigned | NO | | NULL | |
| fri_name | char(10) | NO | | NULL | |
| fri_from | char(30) | YES | | NULL | |
| fri_phone_num | char(11) | YES | | NULL | |
| fri_email | varchar(20) | YES | | NULL | |
| fri_wecat | varchar(20) | YES | | NULL | |
| fri_brithday | date | YES | | NULL | |
| create_date | date | NO | | NULL | |
| create_time | time | NO | | NULL | |
+---------------+-------------------+------+-----+---------+----------------+
11 rows in set (0.00 sec)

修改表名(表对应的文件名,也被改变)

  ALTER TABLE 表名

  RENAME 新表名

例如将f_fri_list 改成 fri_list

mysql> ALTER TABLE f_fri_list
   -> RENAME fri_list;

mysql> SHOW TABLES;
+--------------------+
| Tables_in_f_friend |
+--------------------+
| f_fri_type |
| fri_list |
+--------------------+
2 rows in set (0.00 sec)

MYSQL结构修改的更多相关文章

  1. 【转】Mysql千万级数据表结构修改

    当需要对表进行ddl操作如加索引.增删列时,数据量小时直接在线修改表结构影响不大当表达到百万.千万数据就不能直接在线修改表结构 下面是具体的过程:1.备份数据select * from ih_orde ...

  2. mysql千万级数据表结构修改

    当需要对表进行ddl操作如加索引.增删列时,数据量小时直接在线修改表结构影响不大当表达到百万.千万数据就不能直接在线修改表结构 下面是具体的过程:1.备份数据select * from ih_orde ...

  3. MySql表结构修改详解

    修改表的语法=========================增加列[add 列名]=========================①alter table 表名 add 列名 列类型 列参数[加的 ...

  4. MySql 表结构修改、约束条件、表关系

    表结构修改(alter) 查看表的结构:desc 表名; 修改表名:alter table 表名 rename to 新表名; 修改字段名:alter table 表名 change 旧字段名 新字段 ...

  5. Mysql - 数据库操作

    之前介绍了数据库的增删改查, 发现忘记了数据库的一些基本操作, 比如建库, 建表, 改表等等. 那这里就来小结一下数据库sql形式的基本操作. 一.库操作 1. 建库 在建库之前, 可能需要看一下, ...

  6. Mysql 中 show full processlist

    processlist命令的输出结果显示了有哪些线程在运行,可以帮助识别出有问题的查询语句,两种方式使用这个命令. 1. 进入MySQL/bin目录下输入mysqladmin processlist; ...

  7. [MySQL Reference Manual] 18 复制

    18 复制 18 复制 18.1 复制配置 18.1.1 基于Binary Log的数据库复制配置 18.1.2 配置基于Binary log的复制 18.1.2.1 设置复制master的配置 18 ...

  8. MySQL show processlist命令详解

    show processlist; 命令的输出结果显示了有哪些线程在运行,可以帮助识别出有问题的查询语句,两种方式使用这个命令. 方式1:进入mysql/bin目录下输入mysqladmin proc ...

  9. MySQL中如何查看“慢查询”,如何分析执行SQL的效率?

    一.MySQL数据库有几个配置选项可以帮助我们及时捕获低效SQL语句 1,slow_query_log这个参数设置为ON,可以捕获执行时间超过一定数值的SQL语句. 2,long_query_time ...

随机推荐

  1. iOS 组件化路由框架 WisdomRouterKit 的应用

    [前言] 大家好,写作是为了和读者沟通交流,欢迎各位开发者一起了解 WisdomRouterKit SDK 的功能. 关于 iOS 组件化路由方案框架: WisdomRouterKit 的功能介绍,之 ...

  2. Scala 学习笔记之集合(9) 集合常用操作汇总

    object CollectionDemo10 { def main(args: Array[String]): Unit = { var ls = List[Int](1, 2, 3) //向后增加 ...

  3. Python多任务之协程

    前言 协程的核心点在于协程的使用,即只需要了解怎么使用协程即可:但如果你想了解协程是怎么实现的,就需要了解依次了解可迭代,迭代器,生成器了: 如果你只想看协程的使用,那么只需要看第一部分内容就行了:如 ...

  4. Hexo 博客快速整合gitalk组件,给静态博客添加动态评论功能!

    什么是 hexo-plugin-gitalk

  5. mac安装flask

    1.1使用虚拟环境 输入以下命令可以检查系统是否安装了 virtualenv: $ virtualenv --version 大多数 Linux 发行版都提供了 virtualenv 包.例如,Ubu ...

  6. 一篇干货满满的 NFS 文章

    目录 NFS 1. 安装 2. 配置 3. 启动并添加到开机自启 4. NFS 客户端挂载 5 报错与解决办法 6. Win 系统安装 NFS client NFS 1. 安装 yum install ...

  7. Centos7升级Git版本

    centos 升级 Git 版本 问题描述 centos7 系统默认的 git 安装版本是 1.8,但是在项目构建中发现 git 版本过低,于是用源码编译的方式进行升级.同时该文章也适用于安装新的 g ...

  8. API---文件操作

    CreateFile() 介绍: 功能:打开或创建以下对象,并返回可访问的句柄: 控制台,通信资源,目录(只读打开),磁盘驱动器,文件,邮槽,管道. 函数原型:HANDLE CreateFile ( ...

  9. 域渗透-凭据传递攻击(pass the hash)完全总结

    总结下PtH具体形式(wmicexec.powershell.msf等) 0x01 PtH攻击原理 && 黄金白银票据 PtH攻击原理 wiki  https://en.wikiped ...

  10. Python:的web爬虫实现及原理(BeautifulSoup工具)

    最近一直在学习python,学习完了基本语法就练习了一个爬虫demo,下面总结下. 主要逻辑是 1)初始化url管理器,也就是将rooturl加入到url管理器中 2)在url管理器中得到新的new_ ...