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

1)修改表名:表名可以在数据库中唯一标识一个table

命令格式:ALTER TABLE 旧名 RENAME 新名;

mysql> alter table course rename courses;
Query OK, rows affected (0.00 sec)

2)修改属性的数据类型

命令格式:ALTER TABLE 表名 MODIFY 属性名 数据类型 [完整性约束条件]

mysql> describe num;
+--------+---------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+--------+---------+------+-----+---------+----------------+
| num_id | int() | NO | PRI | NULL | auto_increment |
| stu_id | int() | NO | PRI | NULL | |
| name | int() | YES | | NULL | |
+--------+---------+------+-----+---------+----------------+
rows in set (0.00 sec) mysql> alter table num modify name char(20); //改变属性的数据类型
Query OK, rows affected (0.05 sec)
Records: Duplicates: Warnings: mysql> describe num;
+--------+----------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+--------+----------+------+-----+---------+----------------+
| num_id | int() | NO | PRI | NULL | auto_increment |
| stu_id | int() | NO | PRI | NULL | |
| name | char() | YES | | NULL | |
+--------+----------+------+-----+---------+----------------+
rows in set (0.00 sec)
mysql> alter table num modify sex char() not null default 'male'; //改变属性的完整性约束条件
Query OK, rows affected (0.08 sec)
Records: Duplicates: Warnings: mysql> describe num;
+--------+----------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+--------+----------+------+-----+---------+----------------+
| num_id | int() | NO | PRI | NULL | auto_increment |
| stu_id | int() | NO | PRI | NULL | |
| name | char() | NO | | male | |
+--------+----------+------+-----+---------+----------------+
rows in set (0.00 sec)

3)修改属性的默认值

命令格式1:ALTER TABLE 表名 MODIFY 属性名 数据类型 DEFAULT value;

命令格式2:ALTER TABLE 表名 ALTER 属性名 SET DEFAULT value;

mysql> describe num;
+--------+----------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+--------+----------+------+-----+---------+----------------+
| num_id | int() | NO | PRI | NULL | auto_increment |
| stu_id | int() | NO | PRI | NULL | |
| sex | char() | NO | | male | |
+--------+----------+------+-----+---------+----------------+
rows in set (0.00 sec) mysql> alter table num modify sex char() default 'female'; //修改属性的默认值
Query OK, rows affected (0.03 sec)
Records: Duplicates: Warnings: mysql> describe num;
+--------+----------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+--------+----------+------+-----+---------+----------------+
| num_id | int() | NO | PRI | NULL | auto_increment |
| stu_id | int() | NO | PRI | NULL | |
| sex | char() | YES | | female | |
+--------+----------+------+-----+---------+----------------+
rows in set (0.00 sec)

注意:上述示例说明,在对属性做更改使,如果不指定NOT NULL参数,命令会按照“允许为空”的操作进行设置;

而且,若不指定DEFAULT参数,MySQL会自动设置该字段默认为 NULL,即便执行命令之前,其有非NULL默认值。

4)修改字段名

命令格式:ALTER TABLE 表名 CHANGE 属性名 新属性名 新数据类型

mysql> describe num;
+--------+----------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+--------+----------+------+-----+---------+----------------+
| num_id | int() | NO | PRI | NULL | auto_increment |
| stu_id | int() | NO | PRI | NULL | |
| name | char() | YES | | NULL | |
+--------+----------+------+-----+---------+----------------+
rows in set (0.00 sec) mysql> alter table num change name sex char(); //修改属性名称
Query OK, rows affected (0.04 sec)
Records: Duplicates: Warnings: mysql> describe num;
+--------+----------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+--------+----------+------+-----+---------+----------------+
| num_id | int() | NO | PRI | NULL | auto_increment |
| stu_id | int() | NO | PRI | NULL | |
| sex | char() | YES | | NULL | |
+--------+----------+------+-----+---------+----------------+
rows in set (0.00 sec)

5)增加字段

命令格式:alter table 表名 ADD 属性名1 [完整性约束条件] [FIRST | AFTER 属性名2]

其中,FIRST参数表示将新加的属性设置为该表的第一个字段;AFTER 属性名2表示将新加的字段置于属性名2(已存在)之后。

mysql> describe num;
+--------+----------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+--------+----------+------+-----+---------+----------------+
| num_id | int() | NO | PRI | NULL | auto_increment |
| stu_id | int() | NO | PRI | NULL | |
| sex | char() | YES | | NULL | |
+--------+----------+------+-----+---------+----------------+
rows in set (0.00 sec) mysql> alter table num add name char() NOT NULL FIRST; //新增一个属性
Query OK, rows affected (0.05 sec)
Records: Duplicates: Warnings: mysql> describe num;
+--------+----------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+--------+----------+------+-----+---------+----------------+
| name | char() | NO | | NULL | |
| num_id | int() | NO | PRI | NULL | auto_increment |
| stu_id | int() | NO | PRI | NULL | |
| sex | char() | YES | | NULL | |
+--------+----------+------+-----+---------+----------------+
rows in set (0.00 sec)

6)删除字段

命令格式:ALTER TABLE 表名 DROP 属性名;

mysql> describe num;
+--------+----------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+--------+----------+------+-----+---------+----------------+
| name | char() | NO | | NULL | |
| num_id | int() | NO | PRI | NULL | auto_increment |
| stu_id | int() | NO | PRI | NULL | |
| sex | char() | YES | | NULL | |
+--------+----------+------+-----+---------+----------------+
rows in set (0.00 sec) mysql> alter table num drop name; //删除属性name
Query OK, rows affected (0.09 sec)
Records: Duplicates: Warnings: mysql> describe num;
+--------+----------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+--------+----------+------+-----+---------+----------------+
| num_id | int() | NO | PRI | NULL | auto_increment |
| stu_id | int() | NO | PRI | NULL | |
| sex | char() | YES | | NULL | |
+--------+----------+------+-----+---------+----------------+
rows in set (0.00 sec)

MySQL_ALTER命令的更多相关文章

  1. Cmder--Windows下命令行利器

    cmder cmder是一个增强型命令行工具,不仅可以使用windows下的所有命令,更爽的是可以使用linux的命令,shell命令. 安装包 安装包链接 下载后,直接解压即用. 修改命令提示符λ为 ...

  2. 【每日一linux命令4】常用参数:

     下面所列的是常见的参数(选项)义: --help,-h                              显示帮助信息 --version,-V                        ...

  3. .NET Core系列 : 1、.NET Core 环境搭建和命令行CLI入门

    2016年6月27日.NET Core & ASP.NET Core 1.0在Redhat峰会上正式发布,社区里涌现了很多文章,我也计划写个系列文章,原因是.NET Core的入门门槛相当高, ...

  4. MVVM模式解析和在WPF中的实现(三)命令绑定

    MVVM模式解析和在WPF中的实现(三) 命令绑定 系列目录: MVVM模式解析和在WPF中的实现(一)MVVM模式简介 MVVM模式解析和在WPF中的实现(二)数据绑定 MVVM模式解析和在WPF中 ...

  5. SQLServer执行命令出现“目录无效的提示”

    异常处理汇总-数据库系列  http://www.cnblogs.com/dunitian/p/4522990.html 一般都是清理垃圾清理过头了,把不该删的目录删了 网上说法: 问题描述: 1.s ...

  6. SQLServer文件收缩-图形化+命令

    汇总篇:http://www.cnblogs.com/dunitian/p/4822808.html#tsql 收缩前 图形化演示: 不仅仅可以收缩日记文件,数据库文件也是可以收缩的,只不过日记收缩比 ...

  7. 让 windows 下的命令行程序 cmd.exe 用起来更顺手

    在 Windows 下使用 Larave 框架做开发,从 Composer 到 artisan 总是避免不了和 cmd.exe 打交道,系统默认的命令行界面却是不怎么好看,且每行显示的字符数是做了限制 ...

  8. [版本控制之道] Git 常用的命令总结(欢迎收藏备用)

    坚持每天学习,坚持每天复习,技术永远学不完,自己永远要前进 总结日常开发生产中常用的Git版本控制命令 ------------------------------main-------------- ...

  9. git 命令

    切换仓库地址: git remote set-url origin xxx.git切换分支:git checkout name撤销修改:git checkout -- file删除文件:git rm  ...

随机推荐

  1. 白盒测试实践-day02

    一.任务进展情况 小组分工完成后,了解findbugs的使用过程,以及junit的测试步骤. 二.存在的问题 由于对单元测试不是太了解,导致无法进行测试. 三.解决方法 看mooc上面的视频,了解测试 ...

  2. VS开发入门三:c#的类的修饰符和成员的修饰符

    初学者经常会犯下的错误就是,修饰符一大堆,而且类和其成员很多修饰符是一样的容易混用 这里总结下 C#修饰符之类修饰符(个 助记 PIPA SS ):public.internal. partial(多 ...

  3. jdbc.properties+web.xml

    1. jdbc.properties #\u8FDE\u63A5\u8BBE\u7F6E[左边是properties被IDE编码后的结果] jdbc.driverClassName=com.mysql ...

  4. Selenium 3----窗口截图+关闭浏览器

    窗口截图 get_screenshot_as_file() 自动化用例是由程序执行的,因此有时候打印的错误信息并不十分明确.如果在脚本执行出错的时候能对当前窗口截图保存,那么通过图片就可以非常直观地看 ...

  5. oracle中的listener.ora和tnsnames.ora

    一.oracle的客户端与服务器端 oracle在安装完成后服务器和客户端都需要进行网络配置才能实现网络连接.    服务器端配置监听器,客户端配置网络服务名. 服务器端可配置一个或多个监听程序 . ...

  6. socks-proxy---with ssh

    socks-proxy---with sshhttps://blog.csdn.net/scien2011/article/details/54562501

  7. MarkDown语言

    参考: 参考:https://typora.io/ 参考:https://caret.io/ Markdown是一种轻量级标记语言,创始人为約翰·格魯伯(英语:John Gruber). 它允许人们“ ...

  8. STA 463 Simple Linear Regression Report

    STA 463 Simple Linear Regression ReportSpring 2019 The goal of this part of the project is to perfor ...

  9. Python 字符串的索引

    字符串是字符的有序集合,可以通过其位置来获得具体的元素.在 python 中,字符串中的字符是通过索引来提取的,索引从 0 开始. python 可以取负值,表示从末尾提取,最后一个为 -1,倒数第二 ...

  10. js对重复数组去重

    var arr=[1,1,1,1,2,2,2,3,3,4,1,4,5,7,8,7,7] let m = {} arr.filter(item => m[item] >= 1 ? false ...