当我们需要修改数据表名或者修改数据表字段时,就需要用到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. Codeforces Round #408 (Div. 2) C. Bank Hacking

    http://codeforces.com/contest/796/problem/C Although Inzane successfully found his beloved bone, Zan ...

  2. POJ 1833 排序

    http://poj.org/problem?id=1833 题意: 给出一个排序,求出它之后的第k个排序. 思路: 排序原理: 1.如果全部为逆序时,说明已经全部排完了,此时回到1~n的排序. 2. ...

  3. UVa 12034 比赛名次(递推)

    https://vjudge.net/problem/UVA-12034 题意: A.B两人赛马,最终名次有3种可能:并列第一:A第一B第二:B第一A第二.输入n,求n人赛马时最终名次的可能性的个数除 ...

  4. append 注意事项

    >>> t1 = [, ] >>> t2 = t1.append() >>> t1 [, , ] >>> t2 None

  5. [原][译][osgearth]Model Source Drivers模型驱动源(OE官方文档翻译)

    ModelSource 是一个能生成OpenSceneGraph节点的驱动(driver) osgEarth使用ModelSources显示矢量特征(feature)数据和加载和显示外部3d模型 Fe ...

  6. 使用方法拦截机制在不修改原逻辑基础上为 spring MVC 工程添加 Redis 缓存

    首先,相关文件:链接: https://pan.baidu.com/s/1H-D2M4RfXWnKzNLmsbqiQQ 密码: 5dzk 文件说明: redis-2.4.5-win32-win64.z ...

  7. DBMS_LOB的简单用法以及释放DBMS_LOB生成的临时CLOB内存

    dbms_lob包(一) dbms_lob包(二) 如何释放DBMS_LOB.CREATETEMPORARY的空间 Temporary LOB导致临时表空间暴满. oracle数据库中的大对象1——永 ...

  8. nodejs 前端工具总结

    htmlhint https://github.com/yaniswang/HTMLHint 使用 var HTMLHint = require("htmlhint").HTMLH ...

  9. Mysql04

    mysql: dbs 数据库系统 bdms 数据库管理系统 bda 数据库管理员 db 数据库 dba通过dbms来操作db! 关系型数据库和非关系型数据库 登录mysql mysql -h主机地址 ...

  10. Android系统服务(一)解析ActivityManagerService(AMS)

    相关文章 Android系统启动流程系列 Android应用进程系列 Android深入四大组件系列 前言 此前在Android系统启动流程.应用进程以及深入四大组件这三个系列文章中,都提及到了AMS ...