MySQL_ALTER命令
当我们需要修改数据表名或者修改数据表字段时,就需要使用到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命令的更多相关文章
- Cmder--Windows下命令行利器
cmder cmder是一个增强型命令行工具,不仅可以使用windows下的所有命令,更爽的是可以使用linux的命令,shell命令. 安装包 安装包链接 下载后,直接解压即用. 修改命令提示符λ为 ...
- 【每日一linux命令4】常用参数:
下面所列的是常见的参数(选项)义: --help,-h 显示帮助信息 --version,-V ...
- .NET Core系列 : 1、.NET Core 环境搭建和命令行CLI入门
2016年6月27日.NET Core & ASP.NET Core 1.0在Redhat峰会上正式发布,社区里涌现了很多文章,我也计划写个系列文章,原因是.NET Core的入门门槛相当高, ...
- MVVM模式解析和在WPF中的实现(三)命令绑定
MVVM模式解析和在WPF中的实现(三) 命令绑定 系列目录: MVVM模式解析和在WPF中的实现(一)MVVM模式简介 MVVM模式解析和在WPF中的实现(二)数据绑定 MVVM模式解析和在WPF中 ...
- SQLServer执行命令出现“目录无效的提示”
异常处理汇总-数据库系列 http://www.cnblogs.com/dunitian/p/4522990.html 一般都是清理垃圾清理过头了,把不该删的目录删了 网上说法: 问题描述: 1.s ...
- SQLServer文件收缩-图形化+命令
汇总篇:http://www.cnblogs.com/dunitian/p/4822808.html#tsql 收缩前 图形化演示: 不仅仅可以收缩日记文件,数据库文件也是可以收缩的,只不过日记收缩比 ...
- 让 windows 下的命令行程序 cmd.exe 用起来更顺手
在 Windows 下使用 Larave 框架做开发,从 Composer 到 artisan 总是避免不了和 cmd.exe 打交道,系统默认的命令行界面却是不怎么好看,且每行显示的字符数是做了限制 ...
- [版本控制之道] Git 常用的命令总结(欢迎收藏备用)
坚持每天学习,坚持每天复习,技术永远学不完,自己永远要前进 总结日常开发生产中常用的Git版本控制命令 ------------------------------main-------------- ...
- git 命令
切换仓库地址: git remote set-url origin xxx.git切换分支:git checkout name撤销修改:git checkout -- file删除文件:git rm ...
随机推荐
- python +selenium +chrome/firefox 环境配置
http://ftp.mozilla.org/pub/firefox/releases/ 各firefox版本下载地址 http://ftp.mozilla.org/pub/firefox/relea ...
- python pymsql的用法 180903
一.1.pymysql 的下载pip3 install pymysql2.pymysql的使用import pymysqlname=input("请输入用户名:")password ...
- 第三周学习java第四章学习总结及体会!
第三周java 2第四章的学习总结: 一.主要内容(类与对象): 1.类: 2.构造方法与对象的创建: 3.类与程序的基本结构: 4.参数传值: 5.对象的组合: 6.实例成员与类成员: 7.方法重载 ...
- day22:初识面向对象
1,类可以理解为是一个模子,可以是代码精简,方便增加实例,方便修改,更加规范,能知道具体的属性,方法,但是不知道具体的值 2,对象有具体的值,属性和技能都是根据类规范的 3, 先有类才有对象 4,面向 ...
- Ultimate Guide to WeChat for Business 2019
Ultimate Guide to WeChat for Business 2019 By Iaroslav Kudritskiy (source :https://rocketbots.io/blo ...
- laradock
配置xdebug:http://m.php.cn/article/407434.html
- 第五周ip通信基础回顾
广播请求,单播响应,ARP IPV4,IP地址32位二进制代码分为8个位一组 路由器每一个接口都是一个网段 ,网段与网段区分看网络地址 同一段链路是同网段 直接广播:主机号全为1 受限广播:全为1 特 ...
- 设计、定义并实现Complex类
设计.定义并实现Complex类 #include <iostream> #include <cmath> using namespace std; class MyCompl ...
- linux查看所有用户信息
所有的用户信息在根目录/etc/中passwd文件内,而passwd的所有权限是root用户及root组用户,所有想要查看所有用户,需要root用户登录系统. root用户登录后,可以直接用查看命令c ...
- 【Python全栈-JavaScript】jQuery事件
jQuery事件 一.页面载入 当DOM载入就绪可以查询及操纵时绑定一个要执行的函数. 这是事件模块中最重要的一个函数,因为它可以极大地提高web应用程序的响应速度. 简单地说,这个方法纯粹是对向 w ...