当我们需要修改数据表名或者修改数据表字段时,就需要用到Mysql alter命令。

查看表结构:

-- 以下2个命令是通用的
show columns from test_alter_tbl;
desc test_alter_tbl;

1.删除、添加、修改表字段

create table `test_alter_tbl` (`id` int(3),`name` varchar(20));
desc test_alter_tbl;
-- 删除某列
alter table test_alter_tbl drop name;
desc test_alter_tbl;
-- 增加某列,默认追加为最后一列
alter table test_alter_tbl add name2 varchar(20);
desc test_alter_tbl;
-- 在指定位置增加某列
alter table test_alter_tbl add personDesc varchar(20) after id;
desc test_alter_tbl;
-- 将插入的列设置为第一列
alter table test_alter_tbl add grade int(2) first;
desc test_alter_tbl;

注意:

  • 1.数据表中只剩1个字段时,不能使用drop来删除字段
  • 2.添加字段时,没有before关键字。只有after、first
  • 3.如果想重置某字段,就要先删除再将列插入到原位置

2.修改字段类型及名称

修改字段类型,使用modify 列名 类型;

修改字段名称,使用change 列名 新列名 类型;

alter table test_alter_tbl change name2 varchar(10);
alter table test_alter_tbl change name2 name varchar(20);

3.alter table对null值和默认值的影响

  • 当修改字段时,可以指定是否接收null值,也可以指定默认值。alter table 表 modify 列名 类型 not null default value;
  • 修改字段默认值,列的默认值默认为null: alter table 表 alter 列名 set default value;
  • 删除字段的默认值: alter table 表 alter 列名 drop default;
  • 也可用于删除其他信息,如外键别名: alter table 表 drop foreign key 外键别名;
  • 修改数据表类型: alter table 表 engine = myisam;
-- 修改字段的类型并设置默认值
alter table test_alter_tbl modify name varchar(10) not null default "tom";
desc test_alter_tbl;
-- 设置字段的默认值
alter table test_alter_tbl alter name set default "jerry";
desc test_alter_tbl;
-- 删除默认值
alter table test_alter_tbl alter name drop default;
desc test_alter_tbl;
-- 修改数据表类型
alter table test_alter_tbl engine = myisam;
-- 使用客户端查看
show table status like 'test_alter_tbl';
-- 使用mysql查看
show table status like 'test_alter_tbl'\G

4.修改表名

修改数据表的名称,可以使用rename语句: alter table 表 rename to 新表名;

show tables;
alter table test_alter_tbl rename to test_alter_csj;
show tables;

mysql-8 alter命令的更多相关文章

  1. MySql之ALTER命令用法详细解读(转)

    林炳文Evankaka原创作品.转载请注明出处http://blog.csdn.net/evankaka 本文详细解读了MySql语法中Alter命令的用法,这是一个用法比较多的语法,而且功能还是很强 ...

  2. Mysql学习总结(6)——MySql之ALTER命令用法详细解读

    MySql语法中Alter命令的用法,这是一个用法比较多的语法,而且功能还是很强大的. [sql] view plaincopy USE learning;(自己要提前建好) CREATE TABLE ...

  3. MySQL ALTER命令

    当我们需要修改数据表名或者修改数据表字段时,就需要使用到MySQL ALTER命令. 开始本文教程前让我们先创建一张表,表名为:testalter_tbl. root@host# mysql -u r ...

  4. Mysql基础之 ALTER命令

    ALTER命令: 作用:当我们修改数据库的列属性.列名称.表名等,要使用ALTER命令 教程: 1.首先是我们创建一个数据库以及一张表 mysql> create table exercise( ...

  5. 二十四、MySQL ALTER命令

    MySQL ALTER命令 当我们需要修改数据表名或者修改数据表字段时,就需要使用到MySQL ALTER命令. 开始本章教程前让我们先创建一张表,表名为:testalter_tbl. root@ho ...

  6. MySQL ALTER命令-修改数据表名或者修改数据表字段

    需要修改数据表名或者修改数据表字段时,就需要使用到MySQL ALTER命令. 删除,添加或修改表字段 如下命令使用了 ALTER 命令及 DROP 子句来删除表的 i 字段: ALTER TABLE ...

  7. 吴裕雄--天生自然MySQL学习笔记:MySQL ALTER命令

    需要修改数据表名或者修改数据表字段时,就需要使用到MySQL ALTER命令. root@host# mysql -u root -p password; Enter password:******* ...

  8. mysql数据库常规命令操作

    1.MySQL数据库导出命令 1.导出整个数据库 mysqldump -u 用户名 -p 数据库名 > 导出的文件名     mysqldump -u wcnc -p smgp_apps_wcn ...

  9. CentOS系统操作mysql的常用命令

    MySQL名字的来历MySQL是一个小型关系型数据库管理系统,MySQL被广泛地应用在Internet上的中小型网站中.由于其体积小.速度快.总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了 ...

  10. 工作常用的linux/mysql/php/工具命令

    工作常用的linux/mysql/php/工具命令: 1. tar备份目录 tar zcvf ****.tar.gz ****/ tar 备份跳过目录 tar --exclude=test1 3. s ...

随机推荐

  1. [学习笔记]ST表

    ST表 给定一个数列$a,O(nlogn)$预处理,$O(1)$查询数列在区间$[l,r]$的最值. 本文介绍求最大值. 实现 预处理 $st[i][j]$表示$max\{a_k\}(k\in[i,i ...

  2. 递归--练习4--noi666放苹果

    递归--练习4--noi666放苹果 一.心得 写出状态后勇敢假设 二.题目 666:放苹果 总时间限制:  1000ms 内存限制:  65536kB 描述 把M个同样的苹果放在N个同样的盘子里,允 ...

  3. Tornado源码分析 --- Etag实现

    Etag(URL的Entity Tag): 对于具体Etag是什么,请求流程,实现原理,这里不进行介绍,可以参考下面链接: http://www.oschina.net/question/234345 ...

  4. UVA-11280 Flying to Fredericton (dijkstra)

    题目大意:一张有向图,n个节点,m条边,有边权.求从起点到终点在最多经过s个中间节点(不包括始末点)时的最小权和. 题目分析:因为起点和终点是固定的,只需一次dijkstra打出表dis[u][k], ...

  5. LINUX QQ

    查询龙井QQ http://www.longene.org/forum/viewtopic.php?f=6&t=4700

  6. Leetcode 51

    //看了一次解析后,一次AC,用一个pos记录行列.class Solution { public: vector<vector<string>> solveNQueens(i ...

  7. New Concept English Two 26 70

    $课文68  纠缠不休 712. I crossed the street to avoid meeting him, but he saw me and came running towards m ...

  8. Git Error: warning: refname 'origin/branch-name' is ambiguous.

    When this happened, it created the file .git/refs/heads/origin/branch-name. So, I just deleted the f ...

  9. 第1课 学习C++的意义

    C++是C语言的加强,它们之间并不是对立的关系. 学习C++的优势: 现代软件产品的架构图: 操作系统抽象层:可有可无,但是作为一个移植性好的软件一定需要这一层.这一层的作用就是把操作系统提供的接口做 ...

  10. BZOJ4978: [Lydsy1708月赛]泛化物品(乱搞)

    4978: [Lydsy1708月赛]泛化物品 Time Limit: 5 Sec  Memory Limit: 256 MBSubmit: 220  Solved: 70[Submit][Statu ...