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)

最新文章

  1. Objective-C 外观模式--简单介绍和使用
  2. JMS确认机制
  3. 关于url
  4. 20145320 《Java程序设计》第10周学习总结
  5. c#中进程的使用
  6. TCP/IP入门学习(2)---OSI分层
  7. POJ 3187 穷举
  8. jQuery中bind,live,delegate与one方法的用法及区别解析
  9. web.xml加载顺序详解
  10. 我的wifi
  11. loadrunner关联及web_reg_save_param方法浅析
  12. XVII Open Cup named after E.V. Pankratiev. Grand Prix of America (NAIPC-2017)
  13. 【Django视图与网址进阶004】
  14. 详解 RestTemplate 操作
  15. MyEclipse2014破解方法
  16. HDU 1717 小数化分数2 数学题
  17. SpringBoot学习:整合shiro自动登录功能(rememberMe记住我功能)
  18. 源码编译tmux
  19. Reporting Service服务SharePoint集成模式安装配置(9、PowerPivot for SharePoint 安装配置详细)
  20. Elasticsearch聚合优化 | 聚合速度提升5倍

热门文章

  1. Java 学习笔记之 线程interrupted方法
  2. electron教程(四): 使用electron-builder或electron-packager将项目打包为可执行桌面程序(.exe)
  3. 使用 Chrome 对长网页(知乎、微信公众号文章)进行完整截图
  4. CSS 预处理语言之 Scss 篇
  5. 整理一些大厂的开源平台及github,向他们看齐...
  6. 通过搭建MySQL掌握k8s(Kubernetes)重要概念(下):参数配置
  7. javascript基础修炼(13)——记一道有趣的JS脑洞练习题
  8. A-06 最小角回归法
  9. mac 下修改 jenkins 端口以及Jenkins的启动、关闭与更新
  10. Ubuntu安装exfat工具