MYSQL结构修改
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结构修改的更多相关文章
- 【转】Mysql千万级数据表结构修改
当需要对表进行ddl操作如加索引.增删列时,数据量小时直接在线修改表结构影响不大当表达到百万.千万数据就不能直接在线修改表结构 下面是具体的过程:1.备份数据select * from ih_orde ...
- mysql千万级数据表结构修改
当需要对表进行ddl操作如加索引.增删列时,数据量小时直接在线修改表结构影响不大当表达到百万.千万数据就不能直接在线修改表结构 下面是具体的过程:1.备份数据select * from ih_orde ...
- MySql表结构修改详解
修改表的语法=========================增加列[add 列名]=========================①alter table 表名 add 列名 列类型 列参数[加的 ...
- MySql 表结构修改、约束条件、表关系
表结构修改(alter) 查看表的结构:desc 表名; 修改表名:alter table 表名 rename to 新表名; 修改字段名:alter table 表名 change 旧字段名 新字段 ...
- Mysql - 数据库操作
之前介绍了数据库的增删改查, 发现忘记了数据库的一些基本操作, 比如建库, 建表, 改表等等. 那这里就来小结一下数据库sql形式的基本操作. 一.库操作 1. 建库 在建库之前, 可能需要看一下, ...
- Mysql 中 show full processlist
processlist命令的输出结果显示了有哪些线程在运行,可以帮助识别出有问题的查询语句,两种方式使用这个命令. 1. 进入MySQL/bin目录下输入mysqladmin processlist; ...
- [MySQL Reference Manual] 18 复制
18 复制 18 复制 18.1 复制配置 18.1.1 基于Binary Log的数据库复制配置 18.1.2 配置基于Binary log的复制 18.1.2.1 设置复制master的配置 18 ...
- MySQL show processlist命令详解
show processlist; 命令的输出结果显示了有哪些线程在运行,可以帮助识别出有问题的查询语句,两种方式使用这个命令. 方式1:进入mysql/bin目录下输入mysqladmin proc ...
- MySQL中如何查看“慢查询”,如何分析执行SQL的效率?
一.MySQL数据库有几个配置选项可以帮助我们及时捕获低效SQL语句 1,slow_query_log这个参数设置为ON,可以捕获执行时间超过一定数值的SQL语句. 2,long_query_time ...
随机推荐
- Pycharm 快捷键大全 2019.2.3
在Pycharm中打开Help->Keymap Reference可查看默认快捷键帮助文档,文档为PDF格式,位于安装路径的help文件夹中,包含MAC操作系统适用的帮助文档. 下图为2019. ...
- idea中的java web项目(添加jar包介绍)和java maven web项目目录结构
java web项目 web项目下web根目录名称是可以更改的 idea中新建java web项目,默认src为Sources Root,当然也可以手动改,在Sources Root下右键只能新建Pa ...
- VUE--插值的操作
一.vue常见的指令 v-once:保留第一次渲染结果 v-html :把html代码解析,只显示内容 v-pre :原样输出 v-cloak :解决文本闪烁问题 v-text :显示文本 二.v-b ...
- Map集合(双列集合)
Map集合(双列集合)Map集合是键值对集合. 它的元素是由两个值组成的,元素的格式是:key=value. Map集合形式:{key1=value1 , key2=value2 , key3=val ...
- 移动端自动化测试Appium 从入门到项目实战Python版☝☝☝
移动端自动化测试Appium 从入门到项目实战Python版 (一个人学习或许会很枯燥,但是寻找更多志同道合的朋友一起,学习将会变得更加有意义✌✌) 说到APP自动化测试,Appium可是说是非常流 ...
- Vue-cli父子组件之间传参
一.父传子( 先写父组件 父组件 <template> <子组件 :子组件的变量名='父组件的变量'> </子组件> //子组件的变量名前的冒号千万别丢了有和没有是 ...
- Scanner接收字符
char num = input.next().charAt(0); //截取指定位置的字符,下标从0开始 System.out.println("helloworld".char ...
- java高并发_博客-网址-资料 推荐
大概说一下自己作为入门学习java高并发的博客地址,很不错在自己的博客里记录一下:如果能有刷到我的博客的骚年,又刚好想了解java高并发,强烈推荐看看 地址:http://www.itsoku.com ...
- lcx 内网转发
把放置到已经控制的内网主机 执行 内网主机输入命令lcx.exe -slave 外网ip 外网端口 内网ip 内网端口lcx.exe -slave 30.1.85.55 2222 127.0.0.1 ...
- 互联网基础协议 - HTTP
HTTP的简介 超文本传输协议(HTTP,HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络协议.所有的WWW文件都必须遵守这个标准. HTTP是一个基于TCP/ ...